SOCKS5 прокси-сервер на Go с минимальным функционалом, написанный специально для работы с несколькими сетевыми адаптерами (например, несколькими VPN туннелями) на одной машине.
- Interface Binding: Каждый SOCKS5 порт привязывается к конкретному сетевому адаптеру (Ethernet, Wi-Fi, VPN/tun).
- Interface Validation: Автоматическая проверка существования сетевых интерфейсов или локальных IP-адресов перед стартом (предотвращает запуск прокси "в никуда").
- Multi-Server: Возможность запускать неограниченное количество независимых прокси-серверов на разных портах.
- DoH/DoT DNS: Поддержка DNS-over-HTTPS и DNS-over-TLS индивидуально для каждого порта. Запросы DNS выходят строго через тот же адаптер, что и основной трафик.
- IPv6 Filtering: Автоматическая блокировка IPv6 запросов (отключаемая) для предотвращения утечек и ускорения работы в IPv4-сетях.
- Log Rotation: Логирование с автоматической ротацией файлов по датам и удалением старых записей.
- Скачайте готовую сборку для вашей системы из раздела Releases.
- Распакуйте архив и настройте
config.iniна основе ваших сетевых адаптеров. - Запустите исполняемый файл.
Если вы хотите собрать проект самостоятельно:
- Склонируйте репозиторий.
- Перейдите в папку
buildsи запустите соответствующий скрипт:
Windows:
.\builds\build.ps1Linux:
chmod +x builds/build.sh
./builds/build.shПрограмма использует INI-файл для настройки. Присутствует одна глобальная секция [SocksToEth] и неограниченное количество секций для каждого SOCKS5 прокси-сервера (например, [Proxy1], [Proxy2]).
log_dir(по умолчанию: Logs) — папка для хранения логов.log_max_backups(по умолчанию: 30) — сколько дней хранить старые логи перед их автоматическим удалением.verbose_log(по умолчанию: false) — включить детальное логирование в файл (дублирует туда все DNS-запросы).skip_interface_check(по умолчанию: false) — отключить проверку существования сетевого адаптера перед запуском. Полезно, если нужный VPN-туннель появляется в системе позже, чем стартует прокси.
listen_port(Обязательно) — локальный порт для запуска SOCKS5 сервера (например, 1080).interface(Обязательно) — имя сетевого адаптера (например,Ethernet,tun0) или его точный локальный IP-адрес. Весь исходящий TCP-трафик и DNS-запросы пойдут исключительно через него.ipv6_enable(по умолчанию: false) — разрешить обработку IPv6-трафика. Если выключено — AAAA-запросы блокируются для ускорения работы чисто IPv4-сетей.dns_crypto— адрес зашифрованного DNS-сервера, эксклюзивного для этого прокси: DoH (https://...) или DoT (tls://...:853).dns_basic— обычный DNS-сервер (в формате IP:PORT, например8.8.8.8:53). Игнорируется, если заданdns_crypto.
Программа автоматически определяет режим запуска. При запуске через менеджер служб — работает как служба, при обычном запуске — в интерактивном режиме.
Windows:
sc create gosoeth binPath= "C:\путь\к\gosoeth.exe" start= auto
sc start gosoethУдаление: sc delete gosoeth
Linux (systemd):
sudo cp gosoeth /usr/local/bin/
sudo mkdir -p /etc/gosoeth
sudo cp config.ini /etc/gosoeth/
sudo cp builds/gosoeth.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now gosoethСтатус: sudo systemctl status gosoeth
- Go 1.26+
- Библиотеки:
armon/go-socks5,miekg/dns,ini.v1,http2.