centos 7 上鱿鱼的 iptable 规则

centos 7 上鱿鱼的 iptable 规则

我的代理服务器有两个接口 eth0 和 eth1。其中 eth0 连接到本地(专用)网络,而 eth1 连接到互联网。我的鱿鱼版本是 3.3.8,centos 7 是我的操作系统。我必须配置透明代理。我知道为此应该有一个单一的改变,比如

http_port 8080 intercept

我已经这样做了,但仍然无法访问互联网,并且鱿鱼 access.log 文件中没有信息。但是当我在客户端上启用代理时,鱿鱼日志开始填充。

我想我缺少一些 iptable 规则。这些规则应该是什么,以便我的客户端可以通过代理(透明模式)访问互联网。

我应用了两条规则

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

应用给定的两条规则后,我在 tcpdum 中得到了以下结果

15:56:53.858317 ARP, Request who-has localhost.localdomain tell 192.168.57.100, length 46
15:56:53.858330 ARP, Reply localhost.localdomain is-at 0a:00:27:00:00:01 (oui Unknown), length 28
15:56:53.859825 IP 192.168.57.100.55833 > localhost.localdomain.domain: 17156+ A? www.google.com. (32)
15:56:53.859866 IP localhost.localdomain > 192.168.57.100: ICMP localhost.localdomain udp port domain unreachable, length 68
15:56:53.860006 IP 192.168.57.100.55833 > localhost.localdomain.domain: 56135+ AAAA? www.google.com. (32)

答案1

试试这个 iptables 规则:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

masquerade = 允许私有IP访问互联网

--dport 80 -j redirect --to-port 8080 = 任何来自私有 IP 的访问 Web 的请求都将被重定向到我们的代理服务器的端口 8080。

相关内容