Skip to content
Beginner / 2 min read

ChangeMyIP в Linux: меняем IP и проверяем его (настройка для начинающих)

Понятное для начинающих руководство с упором на терминал: как направлять трафик Linux через HTTP- и SOCKS5-эндпоинты ChangeMyIP, а затем убедиться, что IP действительно изменился, с помощью проверок curl и теста на утечки.

Linux SOCKS5 HTTP(S) Приватность/Анонимность

Обзор

Прокси меняет 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, и помните, что графическим приложениям нужны собственные настройки прокси.