Skip to content

v1.3.0 — Residential IP Mode: --no-warp Direct Exit

Latest

Choose a tag to compare

@iPythoning iPythoning released this 04 Apr 08:10

What's New

--no-warp flag for static residential IPs

Static residential IPs don't need Cloudflare WARP — they're already clean. This release adds a --no-warp (also --residential / --direct) flag that skips WARP entirely and routes traffic directly via your server IP.

# Standard (VPS/datacenter — WARP exit)
bash <(curl -sL https://raw.githubusercontent.com/iPythoning/SUIWARP/main/setup.sh)

# Residential IP — direct exit, no WARP
bash <(curl -sL https://raw.githubusercontent.com/iPythoning/SUIWARP/main/setup.sh) --no-warp

What changes with --no-warp

Component Default (WARP) --no-warp (Residential)
wireproxy / wgcf Installed (~4MB) Skipped
S-UI routing final: warp final: direct
ShadowTLS outbound WARP socks5 Direct
systemd dependency wireproxy-warp.service None
Exit IP Cloudflare AS13335 Your server IP

When to use each mode

  • VPS / datacenter IP → default (WARP hides your datacenter IP behind Cloudflare)
  • Static residential IP--no-warp (residential is already premium; WARP would downgrade it to Cloudflare datacenter)

Full Changelog

  • feat: SKIP_WARP variable + argument parser (--no-warp | --residential | --direct)
  • feat: Step 5 skipped in residential mode (no wireproxy/wgcf install)
  • feat: Step 6 routes final: direct in residential mode
  • feat: ShadowTLS shadowtls.json uses direct outbound in residential mode
  • feat: suiwarp-shadowtls.service removes Wants=wireproxy-warp.service in residential mode
  • feat: Summary shows "Direct Exit: IP (residential — no WARP)" vs "WARP Exit"
  • docs: README updated with mode comparison table and architecture diagrams

Upgrade existing residential IP server

# Update S-UI routing to direct (one-liner)
python3 -c "
import sqlite3, json
DB = '/usr/local/s-ui/db/s-ui.db'
conn = sqlite3.connect(DB)
config = {'log': {'level': 'warn'}, 'dns': {'servers': [{'tag': 'cloudflare', 'address': 'tls://1.1.1.1', 'detour': 'direct'}], 'strategy': 'prefer_ipv4'}, 'route': {'rules': [{'protocol': ['dns'], 'action': 'hijack-dns'}, {'ip_is_private': True, 'outbound': 'direct'}], 'final': 'direct'}, 'experimental': {}}
conn.execute('UPDATE settings SET value=? WHERE key=?', (json.dumps(config, indent=2), 'config'))
conn.commit(); conn.close(); print('Done')
"
systemctl stop wireproxy-warp && systemctl disable wireproxy-warp
systemctl restart s-ui