edit README and fixes
This commit is contained in:
-27
@@ -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"]
|
||||
@@ -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`.
|
||||
|
||||
@@ -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
@@ -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",
|
||||
|
||||
@@ -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)."
|
||||
|
||||
Reference in New Issue
Block a user