Stripping forwarding headers kept our IP and chain out of reach, but the
User-Agent went through untouched. Clients that fell back to their own name
("crawlkit-roles", "crawlkit-virk", ...) tied all ten exits together as one
actor, and one missing UA meant Go-http-client. The proxy now overwrites the
UA on every request (WEIRCON_USER_AGENT, default current Firefox) and the
egress prober uses the same string.
Also dropped: From, Sec-Ch-Ua* (would contradict a Firefox UA) and any
X-Weircon-* by prefix. New end-to-end test drives the whole handler and
checks what the target actually receives.
Claude-Session: https://claude.ai/code/session_01AUj1LSMmrowcomkn1ciAgj
40 lines
2.0 KiB
Bash
40 lines
2.0 KiB
Bash
# Lytte-adresse. 0.0.0.0 så NPM kan ramme den udefra (LAN/Tailscale).
|
|
WEIRCON_LISTEN=0.0.0.0:8080
|
|
|
|
# 10 tunneler — hver netns har sin egen IP på den interne br-weircon, port 1080.
|
|
# Hvis du øger antal tunneler i netns-up.sh / weircon-proxy@.service, så udvid her tilsvarende.
|
|
WEIRCON_PROXY_ADDRS=10.99.0.10:1080,10.99.0.11:1080,10.99.0.12:1080,10.99.0.13:1080,10.99.0.14:1080,10.99.0.15:1080,10.99.0.16:1080,10.99.0.17:1080,10.99.0.18:1080,10.99.0.19:1080
|
|
|
|
# Maks tid pr. upstream-fetch (sekunder).
|
|
WEIRCON_REQUEST_TIMEOUT_SEC=30
|
|
|
|
# Admin-endpoint til rotation (drain/undrain). Kun localhost — må ALDRIG
|
|
# eksponeres via reverse-proxy. Tom streng slår admin-serveren helt fra.
|
|
WEIRCON_ADMIN_LISTEN=127.0.0.1:8081
|
|
|
|
# Rotation-drænings-tuning (sekunder):
|
|
# TIMEOUT = maks ventetid på at in-flight requests på en slot tømmes
|
|
# SETTLE = ekstra ro-periode efter in-flight = 0 ("et par sek. før")
|
|
# WARMUP = slot holdes ude af rotation efter undrain, så WG-handshaket
|
|
# kan sætte sig ("et par sek. efter")
|
|
# MAX_HOLD= sikkerhed: slot self-healer og kommer tilbage selv hvis
|
|
# rotate.sh dør mellem drain og undrain
|
|
WEIRCON_DRAIN_TIMEOUT_SEC=25
|
|
WEIRCON_DRAIN_SETTLE_SEC=2
|
|
WEIRCON_DRAIN_WARMUP_SEC=3
|
|
WEIRCON_DRAIN_MAX_HOLD_SEC=60
|
|
|
|
# Egress-IP prober: henter den aktuelle udgangs-IP gennem hver tunnel og cacher
|
|
# den, så /status kan vise hvilken IP der sidder på hver slot (og hvilken der
|
|
# snart roteres ud). INTERVAL=0 slår probing helt fra (så er egress_ip tom i
|
|
# /status, og klienten må selv probe). URL skal returnere klientens IP som ren
|
|
# tekst (ipify, ifconfig.me/ip, egen endpoint, …).
|
|
WEIRCON_PROBE_URL=https://api.ipify.org
|
|
WEIRCON_PROBE_INTERVAL_SEC=60
|
|
WEIRCON_PROBE_TIMEOUT_SEC=10
|
|
|
|
# User-Agent som ALLE udgående kald får, uanset hvad klienten sendte (også
|
|
# proberen). Tom/udeladt = indbygget aktuel Firefox. Opdatér med jævne mellemrum;
|
|
# en årgammel browserversion er i sig selv et bot-tegn.
|
|
#WEIRCON_USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:156.0) Gecko/20100101 Firefox/156.0
|