你好,我正在使用 redsocks 和 iptables 端口重定向规则来设置透明代理,并且运行良好,但我需要为非代理访问、域和建立 iptables 规则,domain1.com
这domain2.com
是10.0.0.0/8
我的实际重定向规则。
iptables -t nat -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:5123
iptables -t nat -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 127.0.0.1:5124
其中 ports5123
和5124
是 redsocks 的端口
是否有可能绕过所需域和 IP 的端口重定向??
答案1
您可以在 DNAT 规则之前定义一条 ACCEPT 规则。与 iptables 中通常的情况一样,将应用第一个匹配的规则,不再应用其他规则(可能会出现类似 LOG 的异常)。因此,请像您建议的那样,在 -j DNAT 规则之前为您的内部网络定义一条带有 -j ACCEPT 的规则。
源 IP 可以在 -s 10.0.0.0/8 中定义,可以使用名称,但它将转换为 IP。IP 不会被刷新。请记住,如果您使用主机名称,DNS 必须可用!
iptables -t nat -A OUTPUT -o eth0 -s 10.0.0.0/8 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:5123
iptables -t nat -A OUTPUT -o eth0 -s 10.0.0.0/8 -p tcp -m tcp --dport 443 -j ACCEPT
iptables -t nat -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 127.0.0.1:5124