我知道有两个SOCKS代理,它们支持任何传出TCP连接的透明代理:Tor和redsocks。与HTTP代理不同,这些SOCKS代理可以透明地代理任何传出TCP连接,包括加密协议和不带元数据或标头的协议。
这两个代理都需要使用NAT来将任何传出的TCP通信重定向到代理的本地端口。例如,如果我TransPort 9040
在本地计算机上运行Tor,则需要添加如下iptables规则:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040
据我所知,这将与替换原来的目的地IP和端口127.0.0.1
和9040
,所以考虑到这是一个加密的数据流(如SSH)或一个无头(如域名注册),请问代理知道原来的目的IP和端口?