ChangeMyIP в Linux: меняем IP и проверяем его (настройка для начинающих)
Понятное для начинающих руководство с упором на терминал: как направлять трафик Linux через HTTP- и SOCKS5-эндпоинты ChangeMyIP, а затем убедиться, что IP действительно изменился, с помощью проверок curl и теста на утечки.
Обзор
Прокси меняет IP-адрес, который видит целевой сайт, потому что сайт отвечает прокси, а не вашему компьютеру. В Linux можно направлять отдельные команды на эндпоинт ChangeMyIP или задать переменные окружения, которые большинство инструментов командной строки считывают автоматически. В этом руководстве для начинающих рассматриваются оба подхода, а в конце есть шаг проверки, чтобы вы убедились, что изменение действительно произошло.
ChangeMyIP предлагает общие и выделенные прокси в дата-центрах, а также резидентные прокси с ротацией IP, доступные по HTTP и SOCKS5, а также через Shadowsocks, Trojan, DNS и WireGuard. В этом руководстве используются только HTTP и SOCKS5, что соответствует первой настройке.
Перед началом
- Активная подписка ChangeMyIP. В вашей панели управления или описании тарифа указаны хост, порт и имя пользователя/пароль прокси, которые вы будете использовать.
- Машина с Linux (настольная или серверная) с
curl. Проверьте его командойcurl --version. - Сессия терминала. Откройте новую оболочку для тестирования, чтобы потом можно было закрыть её и всё сбросить.
- Необязательно: текстовый редактор для файлов профиля оболочки, таких как
~/.bashrcили~/.zshrc.
Выберите подходящий эндпоинт для задачи
| Тип эндпоинта | Как ведёт себя IP | Типичное первое использование |
|---|---|---|
| Общий дата-центр | Один из многих IP в общем пуле; другие пользователи могут видеть тот же IP | Проверка работоспособности настройки, обычный сёрфинг |
| Выделенный дата-центр | IP, назначенный вашей учётной записи | Сохранение одной стабильной идентичности для ваших аккаунтов |
| Резидентный | Ротация IP из реальных диапазонов провайдеров | Проверка страниц с геопривязкой, сбор данных в умеренном объёме |
В описании вашего тарифа указано, какие коды стран или городов вы можете запрашивать. Пул ChangeMyIP охватывает 40+ стран и 300+ городов; используйте параметры страны и города точно так, как задокументировано для вашего тарифа, а не угадывайте их.
Шаги
Шаг 1: Загрузите учётные данные в оболочку
read -r -p "Хост и порт прокси (host:port): " CM_HOST
read -r -p "Имя пользователя прокси: " CM_USER
read -r -s -p "Пароль прокси: " CM_PASS; echo
read -s не показывает пароль на экране и не сохраняет его в истории оболочки. Эти команды ничего не записывают на диск.
Шаг 2: Запишите ваш текущий IP
echo "Прямой IP: $(curl -sS https://api.ipify.org)"
echo
Запишите это значение. Позже вы сравните его с результатом через прокси. Подойдёт любой сервис эхо-IP; здесь используется api.ipify.org, потому что он возвращает простой адрес без дополнительной разметки.
Шаг 3: Проверьте HTTP-эндпоинт
curl -sS --proxy "http://$CM_HOST" --proxy-user "$CM_USER:$CM_PASS" https://api.ipify.org
echo
Если аутентификация проходит успешно и эндпоинт доступен, напечатанный адрес будет отличаться от прямого IP из шага 2. Пока оставьте вызов явной командой curl; переменные окружения — далее.
Шаг 4: Проверьте SOCKS5-эндпоинт
curl -sS --socks5-hostname "$CM_HOST" --proxy-user "$CM_USER:$CM_PASS" https://api.ipify.org
echo
Вариант с --socks5-hostname просит прокси разрешить имя целевого хоста, поэтому ваш локальный DNS-резолвер не используется для целевого домена. Простой флаг --socks5 разрешает имя локально и обычно является неправильным выбором для конфигураций, ориентированных на приватность.
Шаг 5: Задайте переменные окружения прокси для сессии
export http_proxy="http://$CM_USER:$CM_PASS@$CM_HOST"
export https_proxy="$http_proxy"
export no_proxy="localhost,127.0.0.1,::1"
curl -sS https://api.ipify.org
echo
curl, wget, git, pip и многие другие инструменты командной строки автоматически считывают эти переменные. Список no_proxy исключает локальные адреса, например сервер разработки на порту 3000, из прокси-туннеля.
Шаг 6: Добавьте помощники включения/выключения вместо постоянных export
# Добавьте в ~/.bashrc или ~/.zshrc
proxy_on() {
: "${CM_HOST:?Сначала задайте CM_HOST, CM_USER и CM_PASS}"
export http_proxy="http://${CM_USER}:${CM_PASS}@${CM_HOST}"
export https_proxy="$http_proxy"
export no_proxy="localhost,127.0.0.1,::1"
echo "HTTP/HTTPS прокси включён"
}
proxy_off() {
unset http_proxy https_proxy no_proxy
echo "HTTP/HTTPS прокси выключен"
}
Перезагрузите файл командой source ~/.bashrc, затем вводите proxy_on, когда нужен туннель, и proxy_off, когда не нужен. Постоянно экспортированный прокси — частая причина непонятных сбоев в других инструментах.
Шаг 7: Поймите, что не покрывают переменные окружения
- Браузеры, приложения Electron и настольные службы обычно игнорируют переменные окружения оболочки. Настраивайте прокси в самом приложении или в сетевых параметрах рабочего стола.
- Фоновые демоны, такие как Docker, snapd, и некоторые менеджеры пакетов, нуждаются в собственных файлах конфигурации.
- В одной сессии оболочки может быть активен только один глобальный прокси, поэтому запускайте отдельные терминалы, если нужно одновременно сравнить два эндпоинта.
Шаг 8: Подтвердите изменение и проверьте DNS
curl -sS https://ipinfo.io/ip; echo
curl -sS https://ipinfo.io/country; echo
Значение страны должно соответствовать региону выбранного вами эндпоинта ChangeMyIP. Как при HTTP, так и при варианте с --socks5-hostname прокси разрешает имя целевого хоста, поэтому ваш локальный резолвер не используется для целевого домена. Если вы также используете локальный DNS-резолвер или прозрачный прокси, выполните тест на утечки DNS в браузере, чтобы убедиться, что ваши запросы выходят оттуда, откуда вы ожидаете.
Устранение неполадок
| Симптом | Вероятная причина | Решение |
|---|---|---|
curl: (22) ... 407 |
Отсутствуют или неверны учётные данные прокси | Перепроверьте имя пользователя и пароль и явно передайте --proxy-user |
curl: (7) Failed to connect |
Неверный хост или порт, либо блокировка файрволом | Скопируйте хост и порт из описания тарифа; убедитесь, что порт доступен |
IP не изменился после export |
Экспорт выполнен в другой оболочке, или инструмент игнорирует переменные окружения | Запустите proxy_on в текущей оболочке и сначала проверьте через curl |
Работает с curl, но не в браузере |
Браузер не считывает переменные оболочки | Укажите хост и порт в настройках прокси браузера или в сетевой панели рабочего стола |
| Некоторые сайты загружаются, другие заблокированы | IP общего дата-центра помечен целевым сайтом | Повторите попытку с резидентным эндпоинтом |
| SOCKS5 не работает, а HTTP работает | Локальное разрешение DNS или неправильный флаг SOCKS | Используйте --socks5-hostname |
| Скорость меняется между попытками | Перегрузка общего пула дата-центра | Проверьте другой эндпоинт из другого города |
Итог
Смена IP в Linux сводится к трём вещам: иметь действующие учётные данные ChangeMyIP, указать инструменту, куда направлять трафик, и проверить результат. Сначала протестируйте с curl и явными флагами, затем перейдите к переменным окружения http_proxy и https_proxy, когда это заработает, и вынесите их в помощники proxy_on и proxy_off, чтобы обычный трафик не затрагивался, когда вы не тестируете. Подтвердите новый IP и страну через сервис эхо-IP, предпочитайте --socks5-hostname, когда хотите, чтобы прокси обрабатывал DNS, и помните, что графическим приложениям нужны собственные настройки прокси.