我知道有其他与同一主题有关的问题,但我无法让它发挥作用。
我想将本地网络内从 ip1 到 ip2 的所有流量转发到内部。仅限网络内部,不包括外部。
我有一个带 OpenWRT 的路由器,我想在路由器内添加一个 iptables。我希望此转发在连接到本地网络的任何设备上都可见。
这意味着,如果我从我的电脑(通过 wifi 连接到 openwrt 路由器)打开浏览器并输入:192.168.1.42,它将被重定向到 192.168.1.198。端口 80 和 3000(最终还有其他端口)
如果我打开 192.168.1.198,我就会看到我的小型 http 服务器。
我尝试通过 ssh 连接 OpenWRT 路由器,使用各种 iptables 组合:
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.42 -j DNAT --to-destination 192.168.1.198
iptables -t nat -A OUTPUT -p tcp -d 192.168.1.42 -j DNAT --to-destination 192.168.1.198
什么都不起作用。特别是……我在哪里可以查看日志?
编辑:
我也从 OpenWRT 中的 Web 面板运气中完成了此操作。在我看来似乎正确:
当然 192.168.1.42 处什么也没有(我的意思是它是一个虚拟固定 IP)
答案1
iptables
正如您所描述的,这无法通过路由器完成。iptables
仅对通过路由器路由的数据包进行操作(名字不错,对吧?)。在同一物理网络上的两台主机之间传输的数据包的所有路由均由主机本身完成;无需通过路由器。
如果192.168.1.42
实际上不存在,您可以提供192.168.1.198
第二个“别名” IP 地址。或者甚至为第三台机器提供别名 IP,并将流量从它转发到192.168.1.198
。