Forced Proxy Validation Manual

March 20, 2026 ยท View on GitHub

This manual provides a fail-closed validation flow:

  • direct path must show your direct egress IP;
  • valid proxy must show a different proxy egress IP;
  • invalid proxy must fail (must not silently fall back to direct).

1) Prepare a working local proxy

Example (replace with your own proxy endpoint):

  • SOCKS5 at 127.0.0.1:5091
  • HTTP at 127.0.0.1:5098

2) Create test configs

Good config (proxy-good.conf):

strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000

[ProxyList]
socks5 127.0.0.1 5091

Bad config (proxy-bad.conf):

strict_chain
proxy_dns
tcp_read_time_out 5000
tcp_connect_time_out 2000

[ProxyList]
socks5 127.0.0.1 5999

3) One-shot verification commands

Windows (PowerShell)

curl.exe --max-time 15 https://ifconfig.me
.\proxychains4.exe -f .\proxy-good.conf -v curl --max-time 15 https://ifconfig.me
.\proxychains4.exe -f .\proxy-bad.conf -v curl --max-time 10 https://ifconfig.me; $LASTEXITCODE

Expected:

  • line 1 (direct) and line 2 (proxy) should be different IPs;
  • line 3 should fail and return non-zero exit code (for curl usually 7).

Linux/macOS

curl --max-time 15 https://ifconfig.me
./proxychains4 -f ./proxy-good.conf -v curl --max-time 15 https://ifconfig.me
./proxychains4 -f ./proxy-bad.conf -v curl --max-time 10 https://ifconfig.me; echo $?

Expected:

  • direct IP != proxied IP
  • bad proxy run exits non-zero

4) DNS leak protection quick check

When proxy_dns is enabled, hostname resolution inside proxied process should be fake-IP mapped.

Linux/macOS:

./proxychains4 -q -f ./proxy-good.conf python3 -c "import socket;print(socket.getaddrinfo('dns-proxychains-check.invalid',443,0,socket.SOCK_STREAM)[0][4][0])"
./proxychains4 -q -f ./proxy-good.conf python3 -c "import socket;print(socket.getaddrinfo('dns-proxychains-check.invalid',443,socket.AF_INET6,socket.SOCK_STREAM)[0][4][0])"

Expected:

  • IPv4 output starts with 224.
  • IPv6 output starts with ::ffff:224.

5) Troubleshooting

  • No proxies configured: verify [ProxyList] and -f path.
  • Direct/proxy IP same: proxy endpoint may share same egress as direct path; run bad-proxy test to verify fail-closed behavior.
  • Windows: keep proxychains4.exe and proxychains.dll in same directory.