我有一个带有ip 192.168.1.1的openwrt路由器。我要做的是在LAN中设置一个代理服务器(192.168.1.249),并从两个设备(192.168.1.244,192.168.1.131)拦截所有通信。我使用的方法是将代理服务器设置为默认网关,并在openwrt路由器上配置了以下内容。
iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp -s 192.168.1.131
iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp -s 192.168.1.244
# Set default gateway as the proxy server in table 2
ip route add default via 192.168.1.249 table 2
# Forward traffic with mark 3 to table 2
ip rule add fwmark 3 table 2经过我的测试,对于这两个设备的所有WAN通信,代理服务器可以拦截并转发它们,这是很好的。但是,我发现这两个设备也相互通信,这些LAN通信似乎没有被转发到代理服务器。原因何在?如何将这些通信量转发到代理服务器?
测试:为了确定配置iptables是否有用,我添加了一条测试规则:
iptables -t mangle -A PREROUTING -j DROP -s 192.168.1.131在我的opinoin中,如果此规则有效,则ip 244的设备将不会接收来自ip 131的设备的任何通信量,这证明iptables可以用于LAN通信。但是,我使用131设备将tcp流量发送到244设备,并且工作正常。我怀疑配置iptables不能帮助我将这些LAN流量转发到我的代理服务器。我说的对吗?
发布于 2021-01-08 22:03:21
我假设您的IP子网是192.168.1.0/24,这意味着所有以192.168.1开头的IP地址都在同一个L2广播域中,即连接到同一个交换机。
在同一个IP子网中的设备通过第二层“连接”直接通信,没有第三层路由发生。
IPTables是一种在不同子网之间对路由数据包执行防火墙的机制。它看不到同一个子网主机彼此发送的任何通信量。
如果您想在两台主机之间安装防火墙,有几个选项:
192.168.1.0/24和192.168.2.0/24),并在两个子网之间建立路由器路由。https://serverfault.com/questions/1049022
复制相似问题