Medium через IPv6 прокси: публикация статей и обход блокировок
Содержание
- Почему IPv6, а не IPv4
- Как работает публикация через прокси
- Настройка браузера для работы с Medium
- Работа с API Medium напрямую
- Черновики и редактор
- Кейс: бан по IP при публикации
- Кейс: А/Б тестирование заголовков
- Показатели задержек
- Проверка репутации IP
- Настройка локального прокси для всей системы
- Частые ошибки
- Альтернативы Medium
- Безопасность аккаунта
- Итог
Medium блокирует целые подсети. Особенно после 2022 года, когда ужесточили модерацию по гео-признаку. Если ваш IP попал в бан-лист — редактор статей превращается в тыкву: пишете пост, жмёте "Publish", а вместо публикации — бесконечный спиннер и ошибка 403.
Дело не в контенте. Medium использует Cloudflare и собственные скоринг-системы. Они анализируют репутацию IP-адреса. Российские диапазоны, прокси-сервисы и даже домашние IP с динамикой от провайдеров вроде Ростелекома — в зоне риска.
Почему IPv6, а не IPv4
IPv4-адресов мало. Провайдеры и хостинги выдают их тысячам клиентов одновременно. Один спамер в подсети — и весь диапазон летит в бан. С IPv6 таких проблем меньше: пространство огромное, /64 подсеть — это 18 квинтиллионов адресов. Репутация чище.
Второй момент — та же Cloudflare. Она обрабатывает IPv6-трафик через отдельные скоринг-модели. Пока что они мягче. Не потому что технология лучше, а потому что IPv6-трафика мало и статистика накопления репутации работает иначе.
Как работает публикация через прокси
Medium — это SPA на React. Клиент общается с API через REST и WebSocket. Когда вы публикуете статью, происходит POST запрос на `/api/posts`. В заголовках — токен авторизации, который привязан к вашему аккаунту, а не к IP.
Значит, менять IP не страшно. Аккаунт не пострадает. Главное — чтобы запросы шли с адреса, который не вызывает подозрений.
Пример простого теста доступности:
```bash
curl -I https://medium.com --proxy socks5://[user:password@]proxy.lexic.ml:1080
```
Если в ответе `HTTP/2 200` и заголовки `cf-ray` — соединение установлено. Если видите `403 Forbidden` или `301` на капчу — прокси в бане, меняйте.
Настройка браузера для работы с Medium
Через системные настройки прокси — плохая идея. Браузер будет гонять весь трафик, включая рекламные и аналитические запросы. Medium это видит и может заподозрить неладное. Лучше использовать расширения типа FoxyProxy или SwitchyOmega.
Настройка SwitchyOmega:
- Профиль: SOCKS5
- Сервер: proxy.lexic.ml
- Порт: 1080
- Включить для `medium.com`, `*.medium.com`, `*.mediummedia.com`
Почему SOCKS5, а не HTTP? SOCKS5 работает на уровне TCP, передаёт весь трафик без модификации. HTTP-прокси может переписывать заголовки, ломать WebSocket-соединения. А Medium активно использует WebSocket для уведомлений о сохранении черновика.
Работа с API Medium напрямую
Если вам нужно публиковать статьи программно — через скрипт или CI/CD — браузер не нужен. У Medium есть официальный API, но он требует интеграцию через приложение. Зато есть неофициальный способ: эмуляция запросов из браузера.
```python
import requests
proxies = {
'https': 'socks5h://user:password@proxy.lexic.ml:1080'
}
headers = {
'Authorization': 'Bearer YOUR_MEDIUM_TOKEN',
'Content-Type': 'application/json',
'Origin': 'https://medium.com',
'Referer': 'https://medium.com/new-story'
}
data = {
"title": "Test article",
"contentFormat": "markdown",
"content": "# Hello from IPv6 proxy",
"publishStatus": "draft"
}
response = requests.post(
'https://medium.com/api/posts',
json=data,
headers=headers,
proxies=proxies,
timeout=30
)
print(response.status_code)
print(response.json())
```
Обратите внимание на `socks5h` — это важно. Буква `h` означает, что DNS-запросы тоже идут через прокси. Иначе ваш реальный DNS-резолвер узнает, что вы ходите на Medium. Не критично, но для чистоты эксперимента лучше так.
Черновики и редактор
Редактор Medium — это отдельное приложение на `medium.com/new-story`. Оно загружает кучу скриптов, шрифтов и изображений. Если часть ресурсов блокируется — редактор работает, но с задержками. Картинки могут не загружаться, автосохранение — отваливаться.
Решение: включить прокси для всех доменов Medium, а не только для основного. В SwitchyOmega добавьте правила:
```
medium.com
*.medium.com
cdn-images-1.medium.com
miro.medium.com
```
`miro.medium.com` — это CDN для изображений. Без него картинки в статьях будут битыми.
Кейс: бан по IP при публикации
Пример из практики. Пользователь писал статью через домашний IP провайдера "Дом.ру". Черновик сохранялся нормально, но при нажатии "Publish" — ошибка 403. В консоли браузера — запрос к `/api/posts` с ответом `{"errors":[{"message":"Forbidden"}]}`.
Причина: IP-адрес пользователя попал в список Cloudflare, потому что ранее с этого же адреса кто-то создавал фейковые аккаунты. Решение — смена IP через IPv6 прокси. После переключения на SOCKS5-прокси публикация прошла с первого раза.
Кейс: А/Б тестирование заголовков
Medium позволяет редактировать статью после публикации. Но для A/B тестов это неудобно — читатели видят изменения. Опытные авторы используют трюк: публикуют одну статью с разными заголовками с разных аккаунтов, а потом оставляют лучший вариант.
Проблема: Medium банит аккаунты, созданные с одного IP. Нужны разные IP. IPv6 прокси решает задачу: вы можете получить несколько адресов из разных подсетей. Главное — не переборщить. Если с одного прокси создать 10 аккаунтов за час, бан прилетит всем.
Показатели задержек
Средняя задержка до Medium через IPv6 прокси — 80-120 мс при условии, что сервер прокси находится в Европе. Через IPv4 с российского хостинга — 150-200 мс. Разница не критична для публикации текста, но важна при загрузке редактора: он тянет около 2 МБ скриптов.
Таблица сравнения:
| Параметр | IPv4 напрямую | IPv6 прокси |
|----------|---------------|-------------|
| Средний ping | 45 мс | 95 мс |
| Скорость загрузки редактора | 3.2 сек | 4.1 сек |
| Вероятность бана | высокая | низкая |
| Стабильность WebSocket | хорошая | хорошая |
Проверка репутации IP
Перед публикацией стоит проверить, не в бане ли ваш IP. Сделать это можно через сервисы вроде `whatismyipaddress.com/blacklist-check`. Но они проверяют только публичные блэклисты. Cloudflare ведёт свои списки, и они не публичные.
Косвенный признак бана — капча при заходе на `medium.com`. Если видите "Verify you are human" — это плохой знак. Иногда помогает смена User-Agent, но чаще — только смена IP.
Настройка локального прокси для всей системы
Если не хотите возиться с расширениями — поднимите прокси на уровне системы. На Linux это делается через переменные окружения:
```bash
export https_proxy=socks5h://user:password@proxy.lexic.ml:1080
export http_proxy=socks5h://user:password@proxy.lexic.ml:1080
```
На Windows — через `netsh winhttp set proxy`. Но помните: системный прокси влияет на все приложения. Если у вас запущен Telegram или другой мессенджер — он тоже пойдёт через прокси. Это может вызвать подозрения у антифрод-систем.
Частые ошибки
**Ошибка 1: Использование HTTP-прокси вместо SOCKS5.** Medium видит заголовок `Via` и может заблокировать запрос. SOCKS5 таких заголовков не добавляет.
**Ошибка 2: Публикация с прокси, который уже в бане.** Проверяйте свежесть IP. Хорошие сервисы дают адреса, которые не использовались для спама.
**Ошибка 3: Слишком частые запросы.** Medium ограничивает количество публикаций в час. Если вы публикуете 10 статей подряд — ждите временный бан аккаунта.
Альтернативы Medium
Если прокси не помогают или хочется больше контроля — есть альтернативы: Ghost, Hashnode, Dev.to. У них своя модерация, но к IP они лояльнее. Особенно Ghost — вы ставите его на свой сервер и публикуете что угодно.
Но Medium даёт аудиторию. Встроенная система рекомендаций приносит трафик, который не получить на собственном блоге. Поэтому прокси остаются актуальным инструментом.
Безопасность аккаунта
Никогда не публикуйте с прокси, который используете для других сервисов. Если прокси засветится в спаме на GitHub или Twitter — Medium может вычислить вас по паттернам поведения. Лучше выделить отдельный IP именно для Medium.
Включите двухфакторную аутентификацию. Это защитит аккаунт, даже если пароль утечёт. Medium поддерживает TOTP — настройка занимает минуту.
Итог
IPv6 прокси — рабочий инструмент для публикации на Medium из регионов с блокировками. Технология не идеальна: бывают задержки, иногда попадаются грязные IP. Но альтернативы — бан аккаунта или потеря аудитории — выглядят хуже.
Настройка занимает 10 минут. Результат — стабильный доступ к редактору и публикациям независимо от гео-ограничений.