我已将路由器型号 TP-WR940 v6 配置为主 LAN1 (192.168.1.0) 内的内部 LAN2 (192.168.0.0)。路由器像任何其他设备一样连接到 LAN1,并且在该 LAN 中具有固定 IP。
我想从 LAN1 访问连接到 LAN2(使用 Wifi)的设备,因此我在路由器配置中配置了转发。打开外部端口 10022 至 22 以使用 ssh 连接。端口 18080-8080 也一样,但我无法从 LAN1 访问这些端口。
我从 LAN2 路由器测试了 ping 操作,可以正常工作(附图),因此我很确定设备就在那里。从 LAN2 访问端口 22 也可以正常工作,但使用转发时从 LAN1 访问端口 22 则不行。
问题是:路由器如何管理转发和NAT?,我怀疑最终设备(192.168.0.102)看到了TCP的真实原始IP地址,并且受到设备防火墙的限制。
该设备在 LAN2 中使用 wifi 是否会对端口转发产生一些限制?
是否可以更改路由器转发时管理源 IP 的方式?
是否有任何可能的配置可以在不更改设备 FW 配置的情况下授予从 LAN2 的访问权限?
答案1
最后我发现该设备(使用 Ubuntu Core 的 RaspberryPi)没有正确路由数据包。
这是设备ip route list
输出:
default via 192.168.1.1 dev wlan0 proto static
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.102 metric 600
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.102
192.168.0.1 dev wlan0 proto dhcp scope link src 192.168.0.102 metric 600
删除第一个条目后,端口转发就可以正常工作了。我使用了以下命令:
ip route del default via 192.168.1.1 dev wlan0 proto static