Идея проста: на localhost поднимается SOCKS5 proxy, проталкивающий информацию
на ту сторону туннеля WireGuard. Соответственно, селективность достигается
путём использования прокси для нужных соединений.
1. Клонируем https://github.com/zhsj/wghttp
2. Ставим golang
3. Собираем
go build
При надобности используем GOOS и GOARCH для кросс-сборки.
4. Читаем
wghttp --help
и изучаем переменные окружения, используемые для конфигурации.
5. Пишем сценарий оболочки/программу, выставляющий переменные окружения в
нужные значения и запускающий прокси.
6. Пишем unit systemd или используем NSSM/WinSW, запускаем службу. Желательно
дать сервису минимально возможные права. а именно доступ к файловой системе ему
не должен быть нужен вообще.
7а. Устанавливаем браузерное дополнение FoxyProxy Standard (имеется порт для
браузеров на основе Chromium). Конфигурируем его использовать свежеподнятый
прокси для нужных сайтов.
7б или устанавливаем браузерное дополнение Proxy SwitchyOmega Конфигурируем его
использовать свежеподнятый прокси для нужных сайтов.
7в. В качестве альтернативы можно использовать pac-файлы.
8. PROFIT
PS: можно поднять в Docker.
docker-compose.yaml
services:
wghttp:
image: 'ghcr.io/zhsj/wghttp:latest'
container_name: wghttp
restart: always
ports:
- '1082:1082'
environment:
LISTEN: '0.0.0.0:1080' # SOCKS5 port optional default localhost:8080
CLIENT_IP: 10.xx.xx.x
PRIVATE_KEY: yHHxxxxxxxxxxxxxxxxxxxxxcH4Hk8=
PEER_KEY: u57MDxxxxxxxxxxxxxxxxx7Pb1CMaP0Gk=
PEER_ENDPOINT: 'xxxxxxxxxx.duckdns.org:4xxx4'
DNS: 8.8.8.8 # optional
MTU: 1450 # optional default 1280
# PRESHARED_KEY=pupxxxxxxxxxxxxxxxxxxxxxxxxxxxxem4= # optional
|