make tun var and fixes
This commit is contained in:
@@ -77,6 +77,8 @@ 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
|
curl -fsSL https://ghettoloader.duckdns.org/hesoyam/sing-warp-socks5/raw/branch/main/quick-install.sh | sudo bash
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Использование
|
## Использование
|
||||||
|
|
||||||
SOCKS5 прокси доступен на `localhost:2080` без авторизации.
|
SOCKS5 прокси доступен на `localhost:2080` без авторизации.
|
||||||
|
|||||||
+69
-59
@@ -275,11 +275,76 @@ TUNEOF
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
RULEEOF
|
RULEEOF
|
||||||
|
)
|
||||||
|
RULE_SET_RULE_PART=$(cat <<'RULEEOF'
|
||||||
|
,
|
||||||
|
{
|
||||||
|
"rule_set": [
|
||||||
|
"antifilter_allyouneed",
|
||||||
|
"antizapret",
|
||||||
|
"cloudfront_ip_MetaCubeX",
|
||||||
|
"github_ip_you-oops-dev",
|
||||||
|
"github_karingx",
|
||||||
|
"telegram_MetaCubeX",
|
||||||
|
"refilter_ipsum"
|
||||||
|
],
|
||||||
|
"outbound": "wireguard-out"
|
||||||
|
}
|
||||||
|
RULEEOF
|
||||||
|
)
|
||||||
|
ROUTE_RULE_SET_SECTION=$(cat <<'DEFSEOF'
|
||||||
|
"rule_set": [
|
||||||
|
{
|
||||||
|
"tag": "antifilter_allyouneed",
|
||||||
|
"type": "local",
|
||||||
|
"format": "binary",
|
||||||
|
"path": "/opt/sing-box-warp/rules/antifilter_allyouneed.srs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "antizapret",
|
||||||
|
"type": "local",
|
||||||
|
"format": "binary",
|
||||||
|
"path": "/opt/sing-box-warp/rules/antizapret.srs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "cloudfront_ip_MetaCubeX",
|
||||||
|
"type": "local",
|
||||||
|
"format": "binary",
|
||||||
|
"path": "/opt/sing-box-warp/rules/cloudfront_ip_MetaCubeX.srs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "github_ip_you-oops-dev",
|
||||||
|
"type": "local",
|
||||||
|
"format": "binary",
|
||||||
|
"path": "/opt/sing-box-warp/rules/github_ip_you-oops-dev.srs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "github_karingx",
|
||||||
|
"type": "local",
|
||||||
|
"format": "binary",
|
||||||
|
"path": "/opt/sing-box-warp/rules/github_karingx.srs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "telegram_MetaCubeX",
|
||||||
|
"type": "local",
|
||||||
|
"format": "binary",
|
||||||
|
"path": "/opt/sing-box-warp/rules/telegram_MetaCubeX.srs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "refilter_ipsum",
|
||||||
|
"type": "local",
|
||||||
|
"format": "binary",
|
||||||
|
"path": "/opt/sing-box-warp/rules/refilter_ipsum.srs"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
DEFSEOF
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
echo "TUN disabled (SOCKS5 only)" >&2
|
echo "TUN disabled (SOCKS5 only)" >&2
|
||||||
TUN_INBOUND_PART=""
|
TUN_INBOUND_PART=""
|
||||||
TUN_ROUTE_RULE_PART=""
|
TUN_ROUTE_RULE_PART=""
|
||||||
|
RULE_SET_RULE_PART=""
|
||||||
|
ROUTE_RULE_SET_SECTION=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$I1" ] || [ -n "$I2" ]; then
|
if [ -n "$I1" ] || [ -n "$I2" ]; then
|
||||||
@@ -383,10 +448,10 @@ $I2_LINE
|
|||||||
"ip_is_private": true,
|
"ip_is_private": true,
|
||||||
"outbound": "direct"
|
"outbound": "direct"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"inbound": "mixed-in",
|
"inbound": "mixed-in",
|
||||||
"outbound": "wireguard-out"
|
"outbound": "wireguard-out"
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
"protocol": "dns",
|
"protocol": "dns",
|
||||||
"action": "hijack-dns"
|
"action": "hijack-dns"
|
||||||
@@ -407,64 +472,9 @@ $I2_LINE
|
|||||||
"ip.sb"
|
"ip.sb"
|
||||||
],
|
],
|
||||||
"outbound": "wireguard-out"
|
"outbound": "wireguard-out"
|
||||||
},
|
}$RULE_SET_RULE_PART
|
||||||
{
|
|
||||||
"rule_set": [
|
|
||||||
"antifilter_allyouneed",
|
|
||||||
"antizapret",
|
|
||||||
"cloudfront_ip_MetaCubeX",
|
|
||||||
"github_ip_you-oops-dev",
|
|
||||||
"github_karingx",
|
|
||||||
"telegram_MetaCubeX",
|
|
||||||
"refilter_ipsum"
|
|
||||||
],
|
|
||||||
"outbound": "wireguard-out"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rule_set": [
|
|
||||||
{
|
|
||||||
"tag": "antifilter_allyouneed",
|
|
||||||
"type": "local",
|
|
||||||
"format": "binary",
|
|
||||||
"path": "/opt/sing-box-warp/rules/antifilter_allyouneed.srs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tag": "antizapret",
|
|
||||||
"type": "local",
|
|
||||||
"format": "binary",
|
|
||||||
"path": "/opt/sing-box-warp/rules/antizapret.srs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tag": "cloudfront_ip_MetaCubeX",
|
|
||||||
"type": "local",
|
|
||||||
"format": "binary",
|
|
||||||
"path": "/opt/sing-box-warp/rules/cloudfront_ip_MetaCubeX.srs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tag": "github_ip_you-oops-dev",
|
|
||||||
"type": "local",
|
|
||||||
"format": "binary",
|
|
||||||
"path": "/opt/sing-box-warp/rules/github_ip_you-oops-dev.srs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tag": "github_karingx",
|
|
||||||
"type": "local",
|
|
||||||
"format": "binary",
|
|
||||||
"path": "/opt/sing-box-warp/rules/github_karingx.srs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tag": "telegram_MetaCubeX",
|
|
||||||
"type": "local",
|
|
||||||
"format": "binary",
|
|
||||||
"path": "/opt/sing-box-warp/rules/telegram_MetaCubeX.srs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tag": "refilter_ipsum",
|
|
||||||
"type": "local",
|
|
||||||
"format": "binary",
|
|
||||||
"path": "/opt/sing-box-warp/rules/refilter_ipsum.srs"
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
|
$ROUTE_RULE_SET_SECTION
|
||||||
"final": "direct",
|
"final": "direct",
|
||||||
"default_domain_resolver": "default",
|
"default_domain_resolver": "default",
|
||||||
"auto_detect_interface": true
|
"auto_detect_interface": true
|
||||||
|
|||||||
+116
-20
@@ -5,8 +5,90 @@ set -e
|
|||||||
INSTALL_DIR="/opt/sing-box-warp"
|
INSTALL_DIR="/opt/sing-box-warp"
|
||||||
CONFIG_DIR="/etc/sing-box-warp"
|
CONFIG_DIR="/etc/sing-box-warp"
|
||||||
CACHE_DIR="/var/cache/sing-box-warp"
|
CACHE_DIR="/var/cache/sing-box-warp"
|
||||||
|
SERVICE_NAME="sing-box-warp"
|
||||||
SING_BOX_VERSION="1.13.2-extended-1.6.2"
|
SING_BOX_VERSION="1.13.2-extended-1.6.2"
|
||||||
SING_BOX_URL="https://ghettoloader.duckdns.org/hesoyam/sing-box-extended-mirror/releases/download/v${SING_BOX_VERSION}/sing-box-${SING_BOX_VERSION}-linux-amd64.tar.gz"
|
SING_BOX_URL="https://ghettoloader.duckdns.org/hesoyam/sing-box-extended-mirror/releases/download/v${SING_BOX_VERSION}/sing-box-${SING_BOX_VERSION}-linux-amd64.tar.gz"
|
||||||
|
REINSTALL=0
|
||||||
|
|
||||||
|
is_existing_install() {
|
||||||
|
if [ -f "/etc/systemd/system/${SERVICE_NAME}.service" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if systemctl list-unit-files "${SERVICE_NAME}.service" --no-legend 2>/dev/null | grep -q "${SERVICE_NAME}"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [ -d "$INSTALL_DIR" ] && [ -n "$(ls -A "$INSTALL_DIR" 2>/dev/null)" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [ -f "$CONFIG_DIR/warp.conf" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_existing_service() {
|
||||||
|
local running=0
|
||||||
|
|
||||||
|
if systemctl is-active --quiet "$SERVICE_NAME" 2>/dev/null; then
|
||||||
|
running=1
|
||||||
|
echo "Service ${SERVICE_NAME} is running, stopping..."
|
||||||
|
elif systemctl list-unit-files "${SERVICE_NAME}.service" --no-legend 2>/dev/null | grep -q "${SERVICE_NAME}"; then
|
||||||
|
echo "Service ${SERVICE_NAME} is installed but not running, stopping..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
systemctl stop "$SERVICE_NAME" 2>/dev/null || true
|
||||||
|
systemctl disable "$SERVICE_NAME" 2>/dev/null || true
|
||||||
|
|
||||||
|
if pgrep -f "sing-box run -c ${INSTALL_DIR}/config.json" >/dev/null 2>&1; then
|
||||||
|
echo "Stopping remaining sing-box processes..."
|
||||||
|
pkill -f "sing-box run -c ${INSTALL_DIR}/config.json" 2>/dev/null || true
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$running" -eq 1 ] || systemctl is-failed --quiet "$SERVICE_NAME" 2>/dev/null; then
|
||||||
|
systemctl reset-failed "$SERVICE_NAME" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
clean_existing_files() {
|
||||||
|
echo "Removing previous installation files..."
|
||||||
|
|
||||||
|
rm -rf "${INSTALL_DIR:?}"/*
|
||||||
|
rm -f "$INSTALL_DIR/config.json" "$INSTALL_DIR/generate-config.sh" 2>/dev/null || true
|
||||||
|
rm -rf "$INSTALL_DIR/rules"
|
||||||
|
|
||||||
|
rm -f "$CONFIG_DIR/enable-tun" 2>/dev/null || true
|
||||||
|
rm -rf "${CACHE_DIR:?}"/*
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare_reinstall() {
|
||||||
|
if ! is_existing_install; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
REINSTALL=1
|
||||||
|
echo ""
|
||||||
|
echo "=== Existing installation detected ==="
|
||||||
|
stop_existing_service
|
||||||
|
clean_existing_files
|
||||||
|
systemctl daemon-reload 2>/dev/null || true
|
||||||
|
echo "Ready for clean reinstall."
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
echo "Generating config..."
|
||||||
|
WARP_CONF="$CONFIG_DIR/warp.conf" \
|
||||||
|
OUTPUT_CONFIG="$INSTALL_DIR/config.json" \
|
||||||
|
ENABLE_TUN_FILE="$CONFIG_DIR/enable-tun" \
|
||||||
|
"$INSTALL_DIR/generate-config.sh"
|
||||||
|
|
||||||
|
echo "Starting ${SERVICE_NAME}..."
|
||||||
|
systemctl enable "$SERVICE_NAME"
|
||||||
|
systemctl start "$SERVICE_NAME"
|
||||||
|
sleep 2
|
||||||
|
systemctl status "$SERVICE_NAME" --no-pager || true
|
||||||
|
}
|
||||||
|
|
||||||
echo "=== Sing-Box WARP Quick Installer ==="
|
echo "=== Sing-Box WARP Quick Installer ==="
|
||||||
echo ""
|
echo ""
|
||||||
@@ -16,6 +98,8 @@ if [ "$EUID" -ne 0 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
prepare_reinstall
|
||||||
|
|
||||||
echo "Creating directories..."
|
echo "Creating directories..."
|
||||||
mkdir -p "$INSTALL_DIR"
|
mkdir -p "$INSTALL_DIR"
|
||||||
mkdir -p "$CONFIG_DIR"
|
mkdir -p "$CONFIG_DIR"
|
||||||
@@ -45,9 +129,11 @@ echo "Without TUN, only SOCKS5 proxy on port 2080 is available."
|
|||||||
read -p "Enable TUN mode? (y/n) " -n 1 -r < /dev/tty
|
read -p "Enable TUN mode? (y/n) " -n 1 -r < /dev/tty
|
||||||
echo
|
echo
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
ENABLE_TUN=1
|
||||||
echo "1" > "$CONFIG_DIR/enable-tun"
|
echo "1" > "$CONFIG_DIR/enable-tun"
|
||||||
echo "TUN mode enabled."
|
echo "TUN mode enabled."
|
||||||
else
|
else
|
||||||
|
ENABLE_TUN=0
|
||||||
echo "0" > "$CONFIG_DIR/enable-tun"
|
echo "0" > "$CONFIG_DIR/enable-tun"
|
||||||
echo "TUN mode disabled (SOCKS5 only)."
|
echo "TUN mode disabled (SOCKS5 only)."
|
||||||
fi
|
fi
|
||||||
@@ -56,7 +142,10 @@ echo ""
|
|||||||
echo "Downloading sing-box..."
|
echo "Downloading sing-box..."
|
||||||
NEED_DOWNLOAD=1
|
NEED_DOWNLOAD=1
|
||||||
|
|
||||||
if command -v sing-box >/dev/null 2>&1; then
|
if [ "$REINSTALL" -eq 1 ]; then
|
||||||
|
echo "Reinstall: updating sing-box binary..."
|
||||||
|
NEED_DOWNLOAD=1
|
||||||
|
elif command -v sing-box >/dev/null 2>&1; then
|
||||||
INSTALLED_VERSION=$(sing-box version 2>/dev/null | head -n 1 || true)
|
INSTALLED_VERSION=$(sing-box version 2>/dev/null | head -n 1 || true)
|
||||||
if echo "$INSTALLED_VERSION" | grep -q "$SING_BOX_VERSION"; then
|
if echo "$INSTALLED_VERSION" | grep -q "$SING_BOX_VERSION"; then
|
||||||
NEED_DOWNLOAD=0
|
NEED_DOWNLOAD=0
|
||||||
@@ -141,16 +230,23 @@ net.ipv4.ip_forward=1
|
|||||||
EOF
|
EOF
|
||||||
sysctl -p /etc/sysctl.d/99-sing-box-warp.conf
|
sysctl -p /etc/sysctl.d/99-sing-box-warp.conf
|
||||||
|
|
||||||
mkdir -p /opt/sing-box-warp/rules
|
if [ "$ENABLE_TUN" = "1" ]; then
|
||||||
wget -O /opt/sing-box-warp/rules/antifilter_allyouneed.srs https://ghettoloader.duckdns.org/hesoyam/ruwake-panel-lists/raw/branch/main/antifilter_allyouneed.srs
|
RULES_BASE="https://ghettoloader.duckdns.org/hesoyam/ruwake-panel-lists/raw/branch/main"
|
||||||
wget -O /opt/sing-box-warp/rules/antizapret.srs https://ghettoloader.duckdns.org/hesoyam/ruwake-panel-lists/raw/branch/main/antizapret.srs
|
echo "Downloading routing rule sets..."
|
||||||
wget -O /opt/sing-box-warp/rules/github_ip_you-oops-dev.srs https://ghettoloader.duckdns.org/hesoyam/ruwake-panel-lists/raw/branch/main/github_ip_you-oops-dev.srs
|
rm -rf "$INSTALL_DIR/rules"
|
||||||
wget -O /opt/sing-box-warp/rules/github_karingx.srs https://ghettoloader.duckdns.org/hesoyam/ruwake-panel-lists/raw/branch/main/github_karingx.srs
|
mkdir -p "$INSTALL_DIR/rules"
|
||||||
wget -O /opt/sing-box-warp/rules/cloudfront_ip_MetaCubeX.srs https://ghettoloader.duckdns.org/hesoyam/ruwake-panel-lists/raw/branch/main/cloudfront_ip_MetaCubeX.srs
|
wget -O "$INSTALL_DIR/rules/antifilter_allyouneed.srs" "$RULES_BASE/antifilter_allyouneed.srs"
|
||||||
wget -O /opt/sing-box-warp/rules/telegram_MetaCubeX.srs https://ghettoloader.duckdns.org/hesoyam/ruwake-panel-lists/raw/branch/main/telegram_MetaCubeX.srs
|
wget -O "$INSTALL_DIR/rules/antizapret.srs" "$RULES_BASE/antizapret.srs"
|
||||||
wget -O /opt/sing-box-warp/rules/refilter_ipsum.srs https://ghettoloader.duckdns.org/hesoyam/ruwake-panel-lists/raw/branch/main/refilter_ipsum.srs
|
wget -O "$INSTALL_DIR/rules/github_ip_you-oops-dev.srs" "$RULES_BASE/github_ip_you-oops-dev.srs"
|
||||||
|
wget -O "$INSTALL_DIR/rules/github_karingx.srs" "$RULES_BASE/github_karingx.srs"
|
||||||
chmod -R 775 /opt/sing-box-warp/rules
|
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"
|
||||||
|
chmod -R 775 "$INSTALL_DIR/rules"
|
||||||
|
else
|
||||||
|
echo "Skipping rule sets download (TUN disabled)."
|
||||||
|
rm -rf "$INSTALL_DIR/rules"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Reloading systemd..."
|
echo "Reloading systemd..."
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
@@ -167,15 +263,15 @@ echo ""
|
|||||||
echo "SOCKS5 proxy: localhost:2080"
|
echo "SOCKS5 proxy: localhost:2080"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
read -p "Start service now? (y/n) " -n 1 -r < /dev/tty
|
if [ "$REINSTALL" -eq 1 ]; then
|
||||||
echo
|
echo "Reinstall complete, starting service..."
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
start_service
|
||||||
systemctl enable sing-box-warp
|
else
|
||||||
systemctl start sing-box-warp
|
read -p "Start service now? (y/n) " -n 1 -r < /dev/tty
|
||||||
echo ""
|
echo
|
||||||
echo "Service started! Checking status..."
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
sleep 2
|
start_service
|
||||||
systemctl status sing-box-warp --no-pager
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user