edit README and fixes

This commit is contained in:
2026-05-15 12:07:30 +03:00
parent ef858be7bc
commit 3881b87f2a
5 changed files with 64 additions and 107 deletions
-27
View File
@@ -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"]
+43 -51
View File
@@ -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`.
-26
View File
@@ -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
+19 -3
View File
@@ -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",
+2
View File
@@ -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)."