From 3881b87f2ac38c137e66afba49d072ffd4f5894e Mon Sep 17 00:00:00 2001 From: hesoyam Date: Fri, 15 May 2026 12:07:30 +0300 Subject: [PATCH] edit README and fixes --- Dockerfile | 27 ------------- README.md | 94 +++++++++++++++++++++------------------------- docker-compose.yml | 26 ------------- generate-config.sh | 22 +++++++++-- quick-install.sh | 2 + 5 files changed, 64 insertions(+), 107 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 114945e..0000000 --- a/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM alpine:latest - -# Install required packages -RUN apk add --no-cache wget tar ca-certificates - -# Set working directory -WORKDIR /app - -# Download and extract sing-box -RUN wget https://ghettoloader.duckdns.org/hesoyam/sing-box-extended-mirror/releases/download/v1.13.2-extended-1.6.2/sing-box-1.13.2-extended-1.6.2-linux-amd64.tar.gz && \ - tar -xzf sing-box-1.13.2-extended-1.6.2-linux-amd64.tar.gz && \ - mv sing-box-1.13.2-extended-1.6.2-linux-amd64/sing-box /usr/local/bin/sing-box && \ - chmod +x /usr/local/bin/sing-box && \ - rm -rf sing-box-1.13.2-extended-1.6.2-linux-amd64.tar.gz sing-box-1.13.2-extended-1.6.2-linux-amd64 - -# Copy configuration generator script -COPY generate-config.sh /app/generate-config.sh -RUN chmod +x /app/generate-config.sh - -# Copy warp configuration -COPY warp.conf /app/warp.conf - -# Expose SOCKS5 proxy port -EXPOSE 2080 - -# Generate config and run sing-box -CMD ["/bin/sh", "-c", "/app/generate-config.sh && sing-box run -c /app/config.json"] diff --git a/README.md b/README.md index f8c29c1..40679d3 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,42 @@ # Sing-Box WARP Project > Author remark: > вы спросите - нахуя такие сложности? А потому что нативный warp не поддерживает amneziaWG ключи для обфускации WireGuard. А ебаться в саму амнезию нет желания. К тому же sing-box сразу может поднять локальный сокс что упрощает просовывание этого варпа во всякого рода панели. +> UPD: Теперь в рф захотели блокировать github и появилась проблема установки панелей. Данное решение покрывает проблемы со скачиванием любых репозиториев или иного self-host софта с github и попутно покрывает ряд других блокнутых ресурсов при включении TUN во время установки. +> Список ресурсов будет дополняться. -Проект для запуска sing-box с WARP конфигурацией. +Проект для запуска sing-box с WARP через systemd. ## Структура проекта -- `Dockerfile` - образ с sing-box -- `docker-compose.yml` - оркестрация контейнера -- `generate-config.sh` - генератор конфига из WireGuard AWG3.0 формата -- `warp.conf` - WARP конфигурация в формате WireGuard AWG3.0 +- `quick-install.sh` — установка и настройка systemd-сервиса +- `generate-config.sh` — генератор `config.json` из WireGuard AWG3.0 +- `warp.conf.example` — пример WARP-конфигурации ## Как это работает -1. Положите ваш WARP конфиг в формате AWG3.0 в файл `warp.conf` -2. При запуске контейнера `generate-config.sh` парсит конфиг и генерирует `config.json` -3. SOCKS5 прокси поднимается на порту 2080 +1. При установке вводится WARP-конфиг (AWG 3.0) → сохраняется в `/etc/sing-box-warp/warp.conf` +2. `generate-config.sh` парсит конфиг и пишет `/opt/sing-box-warp/config.json` +3. SOCKS5 доступен на порту `2080`; опционально TUN для сплит-маршрутизации + +## Установка + +Сгенерируйте конфиг на https://warp-generator.github.io/ (AWG 3.0), затем: + +```bash +curl -fsSL https://ghettoloader.duckdns.org/hesoyam/sing-warp-socks5/raw/branch/main/quick-install.sh | sudo bash +``` + +Скрипт спросит включение TUN. Включите, если с сервера недоступны заблокированные ресурсы (GitHub и т.п.). Без TUN — только SOCKS5 на `2080`. + +``` +Enable TUN mode? (y/n) +``` + +Повторный запуск инсталлера останавливает старый сервис, переустанавливает файлы и запускает заново. ## Формат warp.conf -Вставьте WireGuard конфигурацию в файл `warp.conf`: - ```AWG3.0 [Interface] PrivateKey = {privkey} @@ -46,60 +61,37 @@ Endpoint = engage.cloudflareclient.com:2408 PersistentKeepalive = 25 ``` -**Параметры:** -- `PrivateKey` - приватный ключ WireGuard -- `Address` - локальный IP адрес (IPv4) -- `MTU` - размер MTU (по умолчанию 1280) -- `S1-S4` - reserved байты для обфускации (используются первые 3) -- `Jc, Jmin, Jmax` - параметры Amnezia для junk пакетов -- `H1-H4` - magic headers для обфускации -- `PublicKey` - публичный ключ сервера -- `Endpoint` - адрес и порт сервера - -## Запуск Docker-Compose - -```bash -# Собрать и запустить -docker compose up -d - -# Просмотр логов -docker compose logs -f - -# Остановить -docker compose down -v -``` - -## (Alternative) Установка как systemd service без docker! -Скрипт попросит вставить WireGuard конфигурацию при установке -https://warp-generator.github.io/ AWG 3.0 - -``` -curl -fsSL https://ghettoloader.duckdns.org/hesoyam/sing-warp-socks5/raw/branch/main/quick-install.sh | sudo bash -``` -Скрипт спросит включения TUN, включите если например с вашего сервера не доступен гитхаб. -Без TUN будет только socks5 endpoint - -> Enable TUN mode? (y/n) - ## Использование -SOCKS5 прокси доступен на `localhost:2080` без авторизации. +SOCKS5 без авторизации: `localhost:2080` -Проверка и пример использования: ```bash curl --proxy socks5://localhost:2080 ip-api.com ``` -TUN прокидывает сплитом только 7 списков srs в warp, socks5 прокси при TUN режиме так же остается доступным. +С TUN трафик по спискам `.srs` идёт через WARP; 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 +``` + ## Обновление конфигурации -После изменения `config.json`: +Отредактируйте `/etc/sing-box-warp/warp.conf` (и при необходимости `/etc/sing-box-warp/enable-tun`), затем: + ```bash -docker-compose restart +sudo /opt/sing-box-warp/generate-config.sh +sudo systemctl restart sing-box-warp ``` + +Полная переустановка — снова запустите `quick-install.sh`. diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 70733e6..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -version: '3.8' - -services: - sing-box: - build: . - container_name: sing-box-warp - restart: unless-stopped - ports: - - "2080:2080" - cap_add: - - NET_ADMIN - sysctls: - - net.ipv4.conf.all.src_valid_mark=1 - - net.ipv6.conf.all.disable_ipv6=0 - volumes: - - ./warp.conf:/app/warp.conf:ro - - warp-cache:/app/.cache - networks: - - sing-box-network - -volumes: - warp-cache: - -networks: - sing-box-network: - driver: bridge diff --git a/generate-config.sh b/generate-config.sh index d5516da..d3de361 100644 --- a/generate-config.sh +++ b/generate-config.sh @@ -221,7 +221,6 @@ parse_from_ini() { H3=${H3:-3} H4=${H4:-4} ALLOWED_IPS=${ALLOWED_IPS:-0.0.0.0/0} - if [ -z "$SERVER" ] || [ -z "$PORT" ]; then echo "Error: Endpoint is empty" exit 1 @@ -232,6 +231,8 @@ parse_from_ini() { } write_config() { + PERSISTENT_KEEPALIVE=25 + if [ "$ENABLE_TUN" = "1" ]; then EXCLUDE_IFACE=$(detect_default_interface) || { echo "Warning: could not detect default network interface, using eth0" >&2 @@ -286,7 +287,9 @@ RULEEOF "github_ip_you-oops-dev", "github_karingx", "telegram_MetaCubeX", - "refilter_ipsum" + "refilter_ipsum", + "canonical_MetaCubeX", + "launchpad_KaringX" ], "outbound": "wireguard-out" } @@ -335,6 +338,18 @@ RULEEOF "type": "local", "format": "binary", "path": "/opt/sing-box-warp/rules/refilter_ipsum.srs" + }, + { + "tag": "canonical_MetaCubeX", + "type": "local", + "format": "binary", + "path": "/opt/sing-box-warp/rules/canonical_MetaCubeX.srs" + }, + { + "tag": "launchpad_KaringX", + "type": "local", + "format": "binary", + "path": "/opt/sing-box-warp/rules/launchpad_KaringX.srs" } ], DEFSEOF @@ -407,7 +422,8 @@ DEFSEOF "address": "$SERVER", "port": $PORT, "public_key": "$PUBLIC_KEY", - "allowed_ips": "$ALLOWED_IPS" + "allowed_ips": "$ALLOWED_IPS", + "persistent_keepalive_interval": "${PERSISTENT_KEEPALIVE}s" } ], "udp_timeout": "5m0s", diff --git a/quick-install.sh b/quick-install.sh index c927810..be3cfc7 100644 --- a/quick-install.sh +++ b/quick-install.sh @@ -242,6 +242,8 @@ if [ "$ENABLE_TUN" = "1" ]; then wget -O "$INSTALL_DIR/rules/cloudfront_ip_MetaCubeX.srs" "$RULES_BASE/cloudfront_ip_MetaCubeX.srs" wget -O "$INSTALL_DIR/rules/telegram_MetaCubeX.srs" "$RULES_BASE/telegram_MetaCubeX.srs" wget -O "$INSTALL_DIR/rules/refilter_ipsum.srs" "$RULES_BASE/refilter_ipsum.srs" + wget -O "$INSTALL_DIR/rules/canonical_MetaCubeX.srs" "$RULES_BASE/canonical_MetaCubeX.srs" + wget -O "$INSTALL_DIR/rules/launchpad_KaringX.srs" "$RULES_BASE/launchpad_KaringX.srs" chmod -R 775 "$INSTALL_DIR/rules" else echo "Skipping rule sets download (TUN disabled)."