Files
sing-warp-socks5/README.md
T

171 lines
7.0 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 во время установки.
> Список ресурсов будет дополняться.
Проект для запуска sing-box с WARP через systemd.
## Структура проекта
- `quick-install.sh` — установка и настройка systemd-сервиса
- `generate-config.sh` — генератор `config.json` из WireGuard AWG3.0
- `warp.conf.example` — пример WARP-конфигурации
- `proton.conf.example` — пример второй (Proton) WireGuard-конфигурации
## Как это работает
1. При установке вводится WARP-конфиг (AWG 3.0) → сохраняется в `/etc/sing-box-warp/warp.conf`
2. Опционально вводится второй конфиг (Proton VPN, обычный WireGuard или `wg://`) → `/etc/sing-box-warp/proton.conf`
3. `generate-config.sh` парсит конфиги и пишет `/opt/sing-box-warp/config.json`
4. SOCKS5 WARP доступен на порту `2080`; при добавлении Proton — второй SOCKS5 на `3080`
5. Опционально TUN для сплит-маршрутизации
### Схема маршрутизации
Скрипт работает в двух режимах: **только WARP** или **WARP + Proton**.
- SOCKS-инпуты жёстко привязаны к своим выходам: `2080 → warp-out`, `3080 → proton-out`.
- Всё остальное (TUN-трафик, списки маршрутизации `.srs`, сайты проверки IP, proxy-DNS) идёт в
«дефолтный» выход. Дефолт выбирается при установке: **WARP** или **Proton** (вопрос задаётся
только если Proton добавлен).
- Если Proton не добавлен — второй SOCKS-инпут (`3080`) и `proton-out` не создаются, дефолт всегда WARP.
## Установка
Сгенерируйте конфиг на https://warp-generation.github.io (https://t.me/warp_generator_bot) (AWG 2.0 - 3 вариант, если не заработает переустановите с 2 вариант), затем:
```bash
curl -fsSL https://gitea.digitalforest.my/hesoyam/sing-warp-socks5/raw/branch/main/quick-install.sh | sudo bash
```
Вставьте текстом всё содержимое сгенерированного AWG конфига в терминал. Enter затем ctrl+D
Затем скрипт спросит про Proton. Брать протон тут https://account.protonvpn.com/downloads (Нужен аккаунт)
Ответьте `n`, чтобы оставить только WARP, или `y` и вставьте
второй WireGuard-конфиг (формат `[Interface]`/`[Peer]` как у Proton VPN, либо `wg://`), завершив ввод Ctrl+D.
```
Add Proton configuration? (y/n)
```
Далее спрашивается включение TUN. Включите, если с сервера недоступны заблокированные ресурсы (GitHub и т.п.). Без TUN — только SOCKS5.
```
Enable TUN mode? (y/n)
```
Если Proton добавлен — скрипт спросит, куда направлять весь не-SOCKS трафик (дефолтный выход).
SOCKS-инпуты при этом всегда остаются: `2080 → WARP`, `3080 → Proton`.
```
=== Default route ===
1) WARP (warp-out)
2) Proton (proton-out)
Select default route [1/2]
```
Повторный запуск инсталлера останавливает старый сервис, переустанавливает файлы и запускает заново.
## Формат warp.conf
```AWG3.0
[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`
```bash
curl --proxy socks5://localhost:2080 ip-api.com # через WARP
curl --proxy socks5://localhost:3080 ip-api.com # через Proton
```
С TUN трафик по спискам `.srs` идёт через дефолтный выход (WARP или Proton); SOCKS5 при этом остаётся доступным.
```bash
curl ip-api.com
```
## Управление сервисом
```bash
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` — конфиг WARP
- `proton.conf` — конфиг Proton (удалите файл, чтобы отключить Proton)
- `enable-tun` — `1`/`0` для TUN
- `default-route` — `warp` или `proton` (куда идёт весь не-SOCKS трафик)
затем:
```bash
sudo /opt/sing-box-warp/generate-config.sh
sudo systemctl restart sing-box-warp
```
## Полная переустановка
Заново запустить скрипт `quick-install.sh`.
## Полное удаление
```bash
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
```