Настройка WireProxy в Ubuntu

Jun 07, 2024 10:13

В прошлом посте разобрались с WireGuard в Ubuntu. Но при этом получили решение, которое не позволяет перенаправлять трафик для выбранных приложений и/или сайтов. Для этого нам понадобится WireProxy

Чтобы скомпилировать WireProxy в Ubuntu, выполните команды в терминале:
git clone https://github.com/octeep/wireproxy
cd wireproxy
sudo apt install golang-go
go build ./cmd/wireproxy

Далее для проверки работоспособности запустите в терминале
./wireproxy -v

Поместите конфигурационный файл WireGuard (в данном случае с именем server-country-wireguard.conf) в папку /opt/myfiles/
sudo mkdir /opt/myfiles
cp server-country-wireguard.conf /opt/myfiles

Создайте файл wireproxy.conf, в котором будет описана конфигурация для создания SOCKS5-прокси
sudo gedit /opt/myfiles/wireproxy.conf

WGConfig = /opt/myfiles/server-country-wireguard.conf

[Socks4]
BindAddress = 127.0.0.1:64422

[Socks5]
BindAddress = 127.0.0.1:64423

[http]
BindAddress = 127.0.0.1:64424
Username = alex
Password = alex

BindAddress определяет локальный адрес и порт для прокси. Username и Password - это логин и пароль для подключения к прокси (их не обязательно использовать, тем более что расширение для Google Chrome в Ubuntu выдавало у меня сообщение, что данный браузер не поддерживает авторизацию для Sock5/Sock4 Proxy).

Скопируйте wireproxy в папку /usr/bin
cp wireproxy /usr/bin

Чтобы проверить правильность конфигурации wireproxy, введите в терминале
/usr/bin/wireproxy -c /opt/myfiles/wireproxy.conf -n

Для запуска wireproxy выполните:
/usr/bin/wireproxy -c /opt/myfiles/wireproxy.conf

Для автозапуска можно использовать systemd

Создаем новый файл:
sudo gedit /etc/systemd/system/wireproxy.service

В данном конфигурационном файле указываем:
[Unit]
Description=Wireproxy socks5/http tunnel
Wants=network-online.target
After=network-online.target
#After=network.target

[Service]
#User=wireproxy
#Group=wireproxy
SyslogIdentifier=wireproxy
Type=simple
Restart=on-failure
RestartSec=30s

DynamicUser=yes

LoadCredential=conf:/opt/myfiles/wireproxy.conf
ExecStartPre=/usr/bin/wireproxy -n -c ${CREDENTIALS_DIRECTORY}/conf
ExecStart=/usr/bin/wireproxy -c ${CREDENTIALS_DIRECTORY}/conf

#LoadCredential=conf:/etc/wireproxy.conf
#ExecStartPre=/opt/wireproxy/wireproxy -n -c ${CREDENTIALS_DIRECTORY}/conf
#ExecStart=/opt/wireproxy/wireproxy -c ${CREDENTIALS_DIRECTORY}/conf

# Required if <1024 port
#AmbientCapabilities=CAP_NET_BIND_SERVICE
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
LimitNPROC=64
LockPersonality=true
MemoryDenyWriteExecute=true
NoNewPrivileges=true
PrivateDevices=true
PrivateTmp=true
PrivateUsers=true
ProcSubset=pid
ProtectClock=true
ProtectControlGroups=true
ProtectHome=true
ProtectHostname=true
ProtectKernelLogs=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectProc=invisible
ProtectSystem=strict
RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK
RestrictNamespaces=true
RestrictRealtime=true
SystemCallArchitectures=native
SystemCallFilter=@system-service

[Install]
WantedBy=multi-user.target

Далее перезапускаем
sudo systemctl daemon-reload

Добавляем в автозапуск:
sudo systemctl enable wireproxy.service

После проверяем статус работы:
sudo systemctl status wireproxy.service

При некорректной работе смотрим журнал ошибок
journalctl -u wireproxy.service

Когда локальный прокси для Wireguard работает, можем его использовать. Для этого хорошо подходят расширения Proxy SwitchyOmega, FoxyProxy для Chrome и FoxyProxy для FireFox.

Просто добавляем в настройках Proxies новый прокси сервер типа Sock5 с хостом 127.0.0.1 и номером порта из wireproxy.conf для Sock5.




После этого можно также указать домены, для которых будет применяться локальный прокси сервер (перенаправляющий трафик через Wireguard).

настройка, ubuntu

Previous post Next post
Up