Files
sing-warp-socks5/README.md
T
2026-09-17 11:31:43 +03:00

182 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Sing-Box WARP Project (Additional Proton out)
> Author remark:
>> вы спросите - нахуя такие сложности? А потому что нативный warp не поддерживает amneziaWG ключи для обфускации WireGuard. А ебаться в саму амнезию нет желания. К тому же sing-box сразу может поднять локальный сокс что упрощает просовывание этого варпа во всякого рода панели.
>
>> UPD: Теперь в рф захотели блокировать github и появилась проблема установки панелей. Данное решение покрывает проблемы со скачиванием любых репозиториев или иного self-host софта с github и попутно покрывает ряд других блокнутых ресурсов при включении TUN во время установки. TUN режим лучше использовать только на время установок софта.
>
>> UPD: Добавлена поддержка ProtonVPN конфигураций совместно с warp или отдельно.
Проект для запуска sing-box с WARP через systemd.
## Структура проекта
- `quick-install.sh` — установка и настройка systemd-сервиса
- `generate-config.sh` — генератор `config.json` из WireGuard AWG
- `warp.conf.example` — пример WARP-конфигурации
- `proton.conf.example` — пример второй (Proton) WireGuard-конфигурации
## Как это работает
1. При установке отдельно спрашивается добавление WARP и добавление Proton — каждый опционален
2. WARP-конфиг (AWG 3.0) → `/etc/sing-box-warp/warp.conf`, Proton-конфиг (обычный WireGuard или `wg://`) → `/etc/sing-box-warp/proton.conf`
3. `generate-config.sh` парсит доступные конфиги и пишет `/opt/sing-box-warp/config.json`
4. SOCKS5 WARP доступен на порту `2080`, Proton — на `3080` (создаётся только тот, что добавлен)
5. Опционально TUN для сплит-маршрутизации
### Схема маршрутизации
Скрипт работает в трёх режимах: **только WARP**, **только Proton** или **WARP + Proton**.
Нужно выбрать хотя бы один — если отказаться от обоих, установка завершается без действий.
- SOCKS-инпуты жёстко привязаны к своим выходам: `2080 → warp-out`, `3080 → proton-out`.
Каждый инпут создаётся только если соответствующий конфиг добавлен.
- Всё остальное (TUN-трафик, списки маршрутизации `.srs`, сайты проверки IP, proxy-DNS) идёт в
«дефолтный» выход.
- Если добавлены **оба** — дефолт выбирается при установке: **WARP** или **Proton**.
- Если добавлен **только один** — он и становится дефолтом автоматически, вопрос не задаётся.
## Установка
Сгенерируйте конфиг на https://warp-generation.github.io (https://t.me/warp_generator_bot) (AWG 2.0 - 3 вариант, если не заработает переустановите с 2 вариант), затем:
```none
curl -fsSL https://gitea.digitalforest.my/hesoyam/sing-warp-socks5/raw/branch/main/quick-install.sh | sudo bash
```
Скрипт последовательно спросит про WARP и про Proton — можно добавить оба, только один или,
если отказаться от обоих, установка завершится без изменений.
Сначала — WARP. Ответьте `y` и вставьте текстом содержимое AWG-конфига (Enter, затем Ctrl+D), либо `n`, чтобы пропустить.
```none
Add WARP configuration? (y/n)
```
Затем — Proton. Брать протон тут https://account.protonvpn.com/downloads (нужен аккаунт).
Ответьте `y` и вставьте WireGuard-конфиг (формат `[Interface]`/`[Peer]` как у Proton VPN, либо `wg://`, Ctrl+D для завершения), либо `n`, чтобы пропустить.
```none
Add Proton configuration? (y/n)
```
Далее спрашивается включение TUN. Включите, если с сервера недоступны заблокированные ресурсы (GitHub и т.п.). Без TUN — только SOCKS5.
```none
Enable TUN mode? (y/n)
```
Если добавлены **оба** конфига — скрипт спросит, куда направлять весь не-SOCKS трафик (дефолтный выход).
Если добавлен только один — он становится дефолтом автоматически, без вопроса.
SOCKS-инпуты при этом всегда остаются: `2080 → WARP`, `3080 → Proton`.
```none
=== Default route ===
1) WARP (warp-out)
2) Proton (proton-out)
Select default route [1/2]
```
Повторный запуск инсталлера останавливает старый сервис, переустанавливает файлы и запускает заново.
## Формат warp.conf
```ini
[Interface]
PrivateKey = {privkey}
Address = 172.16.0.2, 2606:4700:110:890e:48c0:b073:6ebe:d347
DNS = 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001
MTU = 1280
S1 = 0
S2 = 0
Jc = 4
Jmin = 40
Jmax = 70
H1 = 1
H2 = 2
H3 = 3
H4 = 4
I1 = {string}
[Peer]
PublicKey = {pubkey}
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = engage.cloudflareclient.com:2408
PersistentKeepalive = 25
```
## Формат proton.conf (опционально)
Обычный WireGuard-конфиг (например, экспорт из Proton VPN) или `wg://`-ссылка.
```ini
[Interface]
PrivateKey = {privkey}
Address = 10.2.0.2/32
DNS = 10.2.0.1
[Peer]
PublicKey = {pubkey}
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 149.50.211.159:51820
PersistentKeepalive = 25
```
## Использование
SOCKS5 без авторизации (создаётся только тот инпут, чей конфиг добавлен):
- WARP — `localhost:2080`
- Proton — `0.0.0.0:3080`
```none
curl --proxy socks5://localhost:2080 ip-api.com # через WARP
curl --proxy socks5://localhost:3080 ip-api.com # через Proton
```
С TUN трафик по спискам `.srs` идёт через дефолтный выход (WARP или Proton); SOCKS5 при этом остаётся доступным.
```none
curl ip-api.com
```
## Управление сервисом
```none
sudo systemctl enable sing-box-warp
sudo systemctl start sing-box-warp
sudo systemctl status sing-box-warp
sudo journalctl -u sing-box-warp -f
sudo systemctl restart sing-box-warp
```
## Обновление конфигурации
Отредактируйте нужные файлы в `/etc/sing-box-warp/` (нужен хотя бы один из `warp.conf` / `proton.conf`):
- `warp.conf` — конфиг WARP (удалите файл, чтобы отключить WARP)
- `proton.conf` — конфиг Proton (удалите файл, чтобы отключить Proton)
- `enable-tun` — `1`/`0` для TUN
- `default-route` — `warp` или `proton` (куда идёт весь не-SOCKS трафик; при одном эндпоинте берётся он)
затем:
```none
sudo /opt/sing-box-warp/generate-config.sh
sudo systemctl restart sing-box-warp
```
## Полная переустановка
Заново запустить скрипт `quick-install.sh`.
## Полное удаление
```none
sudo rm -rf /opt/sing-box-warp
sudo rm -rf /etc/sing-box-warp
sudo rm -rf /etc/systemd/system/sing-box-warp.service
sudo rm -rf /var/cache/sing-box-warp
sudo rm /usr/bin/sing-box /usr/local/bin/sing-box
```