Портабельный WireGuard клиент предоставляюший HTTP прокси сервер
WireGuard (как и иные vpn клиенты) хорош когда требуется завернуть большую часть трафика на всем устройстве, но не так удобен для оборачивания трафика в отдельных программах и/или к отдельным ресурсам.
Наиболее гибким в этом отношении является HTTP прокси (через PAC скрипты), однако браузеры не умеют даже в Basic авторизацию для HTTP прокси.
Данный проект - попытка заткнуть слабые места обоих решений. По сети гоняется защищенный WireGuard трафик, а на клиентском устройстве запускается прокси сервер доступный приложениям.
Установка не требуется. Просто скачайте версию под свою систему и запускайте хоть с флешки.
wg-proxer.exe -p 8087 wg.conf
-p 8087
локальный прокси порт-s
выключает логгирование-v
включает логгирование запросовwg.conf
ПОСЛЕДНИМ параметром указываем путь к конфигу Wireguard (имя файла может быть любое)
[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Address = 10.8.0.5/24
DNS = 8.8.8.8, 8.8.4.4
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
PresharedKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 192.168.0.0/16, 0.0.0.0/5, 213.5.120.3/32
Endpoint = x.x.x.x:2022
PersistentKeepalive = 25
ВНИМАНИЕ для полей разрешающих множественные значения допускается только синтаксис с перечислением значений через зяпятую, но не дубликаты ключей.
;;так нельзя
DNS = 8.8.8.8
DNS = 8.8.4.4
;;так можно
DNS = 8.8.8.8, 8.8.4.4
Маски на данный момент просто игнорируются.
Я не понял как прикрутить диапазон по маске. В https://github.com/octeep/wireproxy (что работает на основе той же библиотеки) автор например велел указывать маски /32 /128 и сделал вид что все работает - мы поступим также.
- Windows - проще всего использовать nssm
- Linux - Используйте systemd
- https://github.com/samhza/wg-tcp-proxy - не умеет читать WireGuard конфиги, мало параметров конфигурации
- https://github.com/shimberger/wg-http-proxy - не умеет читать WireGuard конфиги, мало параметров конфигурации
- https://github.com/zhsj/wghttp - не умеет читать WireGuard конфиги, не умеет менять AllowedIPs, MTU, PersistentKeepalive, ListenPort (но есть иные плюшки https://github.com/zhsj/wghttp/blob/master/docs/usage.md - если бы стразу нашел этот проект, то не писал бы свой)
- https://github.com/octeep/wireproxy - может все что мне требовалось, но запускает SOCKS5
- Обход блокировок РКН
- Калькулятор AllowedIPs
- Список специальных ip - если добавить в AllowedIPs то решаться проблемы с доступом к локальным ресурсам