将所有非本地流量重定向到袜子代理

将所有非本地流量重定向到袜子代理

是否可以将所有非本地流量重定向到袜子代理?

所以,例如我有:

 4 computers (clients A-D: 10.0.0.1-4 or dhcp)
 1 computer with 2 network cards (gateway-server, eth0: 10.0.0.254, eth1: 192.168.1.1)
 1 computer with 2 network cards (router, eth0: 192.168.1.254, eth1: public-ip)

我需要使所有通过我的网关服务器的计算机使用安装在网关服务器上的袜子代理,而无需配置每个客户端的浏览器。

目的是记录所有 URL 和带宽使用情况。

问题是..

  1. 是否可以?如果是这样,该怎么做?
  2. 如果不可能,有什么替代方案?

答案1

抱歉回答这个问题可能为时已晚。我是 stackexchange 的新手,今天看到了它,之前无法回答。开始工作吧...

要将所有请求从该电脑重定向到袜子代理端口,您需要一些 iptables。假设您在端口 9050 上有该代理,并且您的卡的接口名称是 eth0 (我的意思是连接到最近的互联网端的网关服务器之一),因为您没有提供数据...所以完成一些想象力:)

要启用转发并进行 NAT 伪装,您需要执行echo 1 > /proc/sys/net/ipv4/ip_forwardiptables 规则:

iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

要将内部网络客户端的所有 Web 请求重定向到您需要的代理端口:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 9050
iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 9050

根据这些规则,请求到达的端口上必须有配置良好的“东西”才能正常工作。祝你好运!或者如果我迟到了,也许你可以与我们分享你是如何处理这个问题的。

相关内容