Настройка прокси-моста 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.

Установка последней версии официальным скриптом (автоматически скачивает и размещает бинарник в систему):

# 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.

Создайте системный сервис 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).

Проверка порта:

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

Теперь поднимем локальный клиент 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
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

Локальный прокси доступен по адресу `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');

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.
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 для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!