Установка WireProxy
В этой статье мы рассмотрим процесс создания SOCKS5-прокси с использованием Wireproxy, а также способы подключения к нему через расширение FoxyProxy для браузера Firefox.
Wireproxy — это клиент WireGuard, который выступает в роли прокси-сервера SOCKS5/HTTP или туннеля. Это решение может быть особенно полезным в случаях, когда необходимо подключиться к определенным сайтам через пир WireGuard, но нет желания или возможности настраивать новый сетевой интерфейс по различным причинам.
Основные причины, по которым Wireproxy может быть предпочтительным выбором:
-
Использование WireGuard в качестве средства проксирования трафика.
-
Отсутствие необходимости получения прав администратора для изменения настроек WireGuard.
Wireproxy обеспечивает полную изоляцию от сетевых интерфейсов устройства, что позволяет использовать его без необходимости конфигурирования с правами администратора.
Основные функции Wireproxy:
-
Статическая маршрутизация TCP для клиента и сервера.
-
Поддержка прокси SOCKS5/HTTP (на данный момент поддерживается только CONNECT).
Разработчики Wireproxy также работают над добавлением новых возможностей, включая поддержку UDP в SOCKS5 и статическую маршрутизацию UDP.
Установка Wireproxy
Wireproxy — это кроссплатформенная утилита, поддерживающая множество операционных систем, включая Linux, macOS и Windows. Есть два основных способа установки Wireproxy: сборка проекта из исходного кода с использованием Go и загрузка готовой собранной версии для соответствующей платформы. Ниже представлены пошаговые инструкции для каждого из этих методов.
Выбор метода установки зависит от ваших предпочтений и требований: если вам важно использовать последнюю версию исходного кода, предпочтительнее сборка из исходников. Для стабильности и удобства подойдет предварительно скомпилированная версия.
Установка предварительно скомпилированной версии (на примере Windows)
-
Перейдите на страницу релизов на Гитхабе и скачайте файл архив для вашей операционной системы. Так как в примере рассматривается установка в Windows, загрузите
wireproxy_windows_amd64.tar.gz. -
Распакуйте архив и поместите
wireproxy.exeв удобное место, например, создайте папкуwireproxyна рабочем столе. -
Откройте командную строку Windows или PowerShell и перейдите в созданную папку с помощью команды
cd Desktop\wireproxy. -
Выполните команду
wireproxy.exe -vдля проверки корректной работы утилиты.
Сборка из исходного кода с использованием Go (на примере Linux)
Предварительные требования:
- Убедитесь, что на вашем устройстве установлена версия Go не ниже 1.20. Это можно проверить командой
go version. - Если Go не установлен в вашей системе, вы можете воспользоваться этой инструкцией для установки на Ubuntu 22.04 или этой для установки Go в Windows.
Процесс сборки:
-
Откройте терминал и выполните команды для клонирования репозитория Wireproxy:
git clone https://github.com/octeep/wireproxy
cd wireproxy
2. В директории проекта выполните команду make для запуска процесса компиляции.
3. После завершения сборки выполните ./wireproxy -v, чтобы убедиться в корректной работе утилиты.
Настройка Wireproxy
После успешной установки Wireproxy на ваше устройство следующим шагом является настройка утилиты.
Чтобы начать, вам необходим файл конфигурации для подключения к WireGuard. Вы можете создать новый сервер и настроить WireGuard вручную, следуя, например, этой инструкции Timeweb Cloud.
Другой вариант – использовать раздел «Маркетплейс» при создании сервера и выбрать «Wireguard-GUI»:
В общем виде, файл конфигурации WireGuard будет выглядеть примерно так:
[Interface]
PrivateKey = [Ваш_личный_ключ]
Address = 10.0.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = [Публичный_ключ_сервера]
Endpoint = [IP_сервера:порт]
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
Конфигурационный файл Wireguard необходимо поместить в папку wireproxy, созданную ранее. В примере конфигурационный файл Wireguard имеет имя wg.conf.
В директории wireproxy создайте файл wp.conf, в котором будет описана конфигурация для создания SOCKS5-прокси:
WGConfig = ./wg.conf
[Socks5]
BindAddress = 127.0.0.1:25344
Username = timeweb
Password = timeweb
-
В параметре
WGConfigуказывается путь к вашему конфигу WireGuard. -
BindAddressопределяет локальный адрес и порт для прокси. -
UsernameиPassword— это логин и пароль для подключения к прокси (эти параметры не обязательны).
Чтобы проверить правильность конфигурации, выполните команду ниже.
Для Linux:
./wireproxy -c wp.conf -n
wireproxy.exe -c wp.conf -n
Это позволит убедиться, что конфигурация описана правильно, без запуска самого прокси.
Для запуска Wireproxy выполните команду:
./wireproxy -c wp.conf
Для Windows:
wireproxy.exe -c wp.conf
Для фонового запуска используйте параметр -d:
./wireproxy -c wp.conf -d #Linux
wireproxy.exe -c wp.conf -d #Windows
Подключение к Wireproxy через браузерное расширение
Для использования Wireproxy через браузер, можно воспользоваться специализированными расширениями для управления прокси-серверами. В этом примере мы рассмотрим настройку подключения к прокси в браузере Firefox с использованием расширения FoxyProxy, но аналогичные шаги могут быть выполнены и в других браузерах, например, в Google Chrome с помощью расширения Proxy SwitchyOmega.
Установка и настройка FoxyProxy в Firefox
Перейдите по ссылке Foxy Proxy для Firefox и установите расширение в ваш браузер.
После установки нажмите на иконку Foxy Proxy и выберите 'Options' для перехода в меню настроек.
В меню настроек нажмите на 'Add' для добавления новой конфигурации прокси.
В разделе 'Proxy Type' выберите 'SOCKS5'.
В поле 'Proxy IP' введите '127.0.0.1', а в поле 'Port' укажите '25344'. Если в конфигурации Wireproxy заданы логин и пароль, введите их в соответствующие поля 'Username' и 'Password'.
После внесения всех настроек нажмите на кнопку 'Save' для сохранения конфигурации.
Ещё раз нажмите на иконку Foxy Proxy и выберите созданную конфигурацию для подключения к прокси-серверу.
Для проверки работы прокси перейдите на сайт 2ip.ru и убедитесь, что IP-адрес изменился. Это подтвердит, что ваш трафик теперь проходит через настроенный Wireproxy.
Для более гибкой настройки работы с прокси, FoxyProxy предлагает функцию паттернов. Это позволяет настроить использование прокси-серверов только для определённых сайтов. Чтобы задать паттерны, откройте меню расширения FoxyProxy и выберите 'Options'. В уже созданном подключении нажмите на кнопку 'Patterns'.
Затем, чтобы активировать использование паттернов, кликните на иконку расширения FoxyProxy и выберите опцию 'Use Enable Proxies By Patterns and Order'.
После этих настроек подключение к прокси будет осуществляться только для сайтов, указанных в ваших паттернах.
Заключение
В этой статье мы рассмотрели процесс установки и настройки Wireproxy, инструмента для создания SOCKS5/HTTP-прокси через WireGuard. Отличительной особенностью Wireproxy является его способность работать в пользовательском пространстве, что упрощает настройку и использование, особенно для пользователей, не имеющих прав администратора. Мы также описали интеграцию Wireproxy с браузерными расширениями для управления прокси, добавляющую удобство в использовании.
Автозапуск WireProxy
Running wireproxy with systemd
If you're on a systemd-based distro, you'll most likely want to run Wireproxy as a systemd unit.
The provided systemd unit assumes you have the wireproxy executable installed on /opt/wireproxy/wireproxy and a configuration file stored at /etc/wireproxy.conf. These paths can be customized by editing the unit file.
Setting up the unit
-
Copy the
wireproxy.servicefile from this directory to/etc/systemd/system/, or use the following cURL command to download it:sudo curl https://raw.githubusercontent.com/pufferffish/wireproxy/master/systemd/wireproxy.service > /etc/systemd/system/wireproxy.service -
If necessary, customize the unit.
Edit the parts with
ExecStartPre=andExecStart=to point to the executable and the configuration file. For example, if wireproxy is installed on/usr/binand the configuration file is located in/opt/myfiles/wireproxy.confdo the following change:ExecStartPre=/usr/bin/wireproxy -n -c /opt/myfiles/wireproxy.conf ExecStart=/usr/bin/wireproxy -c /opt/myfiles/wireproxy.conf2.2 Drop root privileges (optional, but recommended)
Without any modifications, this Wireproxy service will run as root. You might want to drop those privileges. One way to do this is to simply create a system account for Wireproxy (or just use your own user account to run it instead).
sudo useradd --comment "Wireproxy tunnel" --system wireproxyThen uncomment these lines from the wireproxy.service:
#User=wireproxy #Group=wireproxyCaveats:
- Make sure
wireproxyuser can read the wireproxy configuration file. - Also note that unprivileged user cannot bind to ports below 1024 by default.
- Make sure
-
Reload systemd and enable the unit.
sudo systemctl daemon-reload sudo systemctl enable --now wireproxy.service -
Make sure it's working correctly.
Finally, check out the unit status to confirm
wireproxy.servicehas started without problems. You can use commands likesystemctl status wireproxy.serviceand/orsudo journalctl -u wireproxy.service.
Additional notes
If you want to disable the extensive logging that's done by Wireproxy, simply add -s parameter to ExecStart=. This will enable the silent mode that was implemented with pull/67.