Настройка прокси-моста GOST: обход ошибок HTTP 451 и проброс SMTP
GOST (Go Simple Tunnel) — это высокопроизводительный, многофункциональный туннелирующий инструмент, написанный на языке Go. Он позволяет быстро поднимать цепочки прокси, пробрасывать порты и шифровать трафик между серверами с использованием различных протоколов (HTTP, SOCKS5, TLS, QUIC, KCP, SSH). GOST идеально решает проблемы региональных геоблокировок API-сервисов (ошибки HTTP 451), обхода строгих защитных экранов Cloudflare, а также позволяет безопасно объединять инфраструктуру из нескольких VPS в единую сеть без необходимости разворачивать громоздкие VPN-системы.
Если сервер сталкивается с региональными ограничениями или блокировками защитных экранов (например, когда Cloudflare или API-сервис возвращает статус 451 / ограничения по IP), проблему можно решить с помощью легковесного прокси-моста GOST через промежуточный зарубежный VPS.
1. Установка GOST (выполняется на обоих серверах)
Установка последней версии официальным скриптом (автоматически скачивает и размещает бинарник в систему):
# bash <(curl -fsSL https://github.com/go-gost/gost/raw/master/install.sh) --install Downloading and installing gost version v3.2.7-nightly.20260802... gost installation completed!
Проверяем установку
# gost -V gost v3.2.7-nightly.20260802 (go1.26.5 linux/amd64)
В конфигурации ниже, нет ограничения на количество одновременной работающих клиентов с сервером gost.
2. Настройка удаленого VPS (Серверная часть)
Создайте системный сервис systemd для запуска прокси с авторизацией.
nano /etc/systemd/system/gost.service
Используем свободный порт, в моем случае я выбрал порт 28080. Вставляем содержимое (замените PROXY_USER и PROXY_PASS на ваши реальные логин и пароль):
[Unit] Description=GOST Proxy Server After=network.target [Service] Type=simple ExecStart=/usr/local/bin/gost -L=http://PROXY_USER:PROXY_PASS@:28080 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
Запускаем сервис и проверяем его статус:
systemctl daemon-reload
systemctl enable gost
systemctl start gost
systemctl status gost
В статусе должно быть active (running), как в примере ниже
● gost.service - GOST Proxy Server
Loaded: loaded (/etc/systemd/system/gost.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-08-03 07:37:19 UTC; 4s ago
Не забудьте открыть порт 28080/tcp в файрволе (UFW, iptables или панели управления VPS).
2.1 Проверка работы прокси сервера
Проверка порта:
nc -zv -w 5 xxx.xxx.xxx.xxx 28080
Проверка ответа прокси через curl к внешнему API сервису:
curl -Iv -x http://PROXY_USER:PROXY_PASS@xxx.xxx.xxx.xxx:28080 https://api-free.deepl.com/v2/usage
3. Настройка основного сервера (Клиентская часть)
Теперь поднимем локальный клиент GOST на московском VPS (msk-1-vm-zq6u). Он будет принимать соединения без авторизации на 127.0.0.1:28080 и форвардить их в зашифрованный туннель на зарубежный VPS.
nano /etc/systemd/system/gost-client.service
Замените FOREIGN_VPS_IP на IP-адрес вашего зарубежного сервера, а учетные данные — на свои.
[Unit] Description=GOST Local Tunnel Client After=network.target [Service] Type=simple ExecStart=/usr/local/bin/gost -L="http://127.0.0.1:28080" -F="http://user:password@FOREIGN_VPS_IP:28080" Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
Запустите клиентский сервис:
systemctl daemon-reload
systemctl enable gost-client
systemctl start gost-client
systemctl status gost-client
3.1 Проверка работы прокси клиента
curl -Iv -x http://127.0.0.1:28080 https://api-free.deepl.com/v2/usage
Если статус ответа 405 (вместо 451) — клиентская часть настроена! Для сайта/PHP локальным прокси теперь будет адрес
http://127.0.0.1:28080
4. Интеграция в код или конфигурацию
Локальный прокси доступен по адресу `http://127.0.0.1:28080` без авторизации: Настройте отправку запросов через него:
- Для cURL (PHP):
curl_setopt($ch, CURLOPT_PROXY, 'http://127.0.0.1:28080');
- Для WordPress (`wp-config.php`):
define('WP_PROXY_HOST', '127.0.0.1');
define('WP_PROXY_PORT', '28080');
5. Проброс SMTP (на примере Zoho Mail)
GOST позволяет в рамках одного клиента пробрасывать не только HTTP-прокси, но и строгие TCP-порты. Если внешние почтовые сервисы (например, Zoho Mail) ограничивают доступ к SMTP из определенных подсетей, можно пробросить локальный порт до `smtp.zoho.eu:465`.
Для этого в клиентском сервисе (`/etc/systemd/system/gost-client.service`) достаточно добавить второй параметр `-L`:
[Unit] Description=GOST Local Tunnel Client After=network.target [Service] Type=simple ExecStart=/usr/local/bin/gost -L "http://127.0.0.1:28080" -L "tcp://127.0.0.1:10465/smtppro.zoho.eu:465" -F "http://PROXY_USER:PROXY_PASS@FOREIGN_VPS_IP:28080" Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
После перезапуска службы (systemctl restart gost-client) в настройках отправки почты (PHPMailer, SMTP-плагины) укажите:
- SMTP Host: 127.0.0.1 (или localhost)
- SMTP Port: 10465
- Шифрование: SSL/TLS
- Авторизация: Ваши реальные логин и пароль от почты Zoho.
5.1. Проверка подключения к SMTP через туннель
openssl s_client -connect 127.0.0.1:10465 -crlf
В самом конце вывода команды вы увидите приветствие SMTP-сервера:
220 mx.zoho.eu SMTP Server ready
Заключение
Описанная схема через GOST отлично подходит для проброса HTTP/HTTPS-трафика веб-приложений и API. Однако если вашей инфраструктуре требуется классический системный SOCKS-прокси с гибкой авторизацией по пользователям Linux и разделением прав доступа для сторонних программ, рекомендуем ознакомиться с руководством по настройки SOCKS-сервера на примере Dante.
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!