红袜子+袜子服务器在不同的机器上

我有以下设置:

  • Host-X(192.168.1.100)运行ssh -D,以便它可以用作袜子服务器。
  • Host-Y(192.168.1.101)运行configuration了Host-X的redsocks作为袜子。

他们与其他机器在同一个networking中。 我想在一些电脑上使用Host-Y作为网关来利用redsocks。 Host-Y上的IP转发已启用。

这是redsocksconfiguration:

base { log_info = on; log = "file:/var/log/redsocks.log"; daemon = on; redirector = iptables; } redsocks { local_ip = 0.0.0.0; local_port = 2001; ip = 192.168.1.100; port = 2000; type = socks5; } 

这些是我的iptables规则:

 iptables -t nat -N REDSOCKS iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 2001 iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDSOCKS 

我可以从日志中看到主机-Y上的红帽子信息,但是我无法在使用主机-Y作为网关的计算机上浏览Internet。 显然,有一些iptables规则丢失,我猜是发送redsocks输出stream量到袜子服务器。 任何人可以帮忙?

谢谢!

看起来如果我把最后一条规则作为第一条规则,一切正常。 所以解决方法是使用下面的iptables规则:

 iptables -t nat -N REDSOCKS iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDSOCKS iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 2001