![从 DDWRT 路由器上的单个 IP 地址转发到内部 IP 和端口](https://linux22.com/image/1371297/%E4%BB%8E%20DDWRT%20%E8%B7%AF%E7%94%B1%E5%99%A8%E4%B8%8A%E7%9A%84%E5%8D%95%E4%B8%AA%20IP%20%E5%9C%B0%E5%9D%80%E8%BD%AC%E5%8F%91%E5%88%B0%E5%86%85%E9%83%A8%20IP%20%E5%92%8C%E7%AB%AF%E5%8F%A3.png)
我正在尝试跟随本指南我有一个简单的请求,但一直无法解决。我想只接受来自特定 IP 地址到我家内部网络内的主机的请求。路由器使用的是 DD-WRT v24-sp2 (04/15/13) std - build 21286。我知道这可以在 GUI 中配置,但我需要通过脚本更新这些规则,因此我需要运行 iptables 命令。
我确实尝试在端口转发 GUI 中将单个 IP 地址设置为“源网络”,但不起作用。只有当源网络字段留空时,它才会起作用。
来自互联网 IP:123.123.123.123
内部主机 IP:192.168.1.111 内部主机端口:5555 (TCP)
这些规则有效:
iptables -t nat -I PREROUTING -p tcp -d $(nvram get wan_ipaddr) --dport 5555 -j DNAT --to 192.168.1.111:5555
iptables -I FORWARD -p tcp -d 192.168.1.111 --dport 5555 -j logaccept
这些不:
iptables -t nat -I PREROUTING -p tcp -s 123.123.123.123 -d $(nvram get wan_ipaddr) --dport 5555 -j DNAT --to 192.168.1.111:5555
iptables -I FORWARD -p tcp -s 123.123.123.123 -d 192.168.1.111 --dport 5555 -j log
答案1
我发现这些规则确实有效。FORWARD 规则中的源 IP 不是必需的,而且我试图访问我自己网络中的 IP,因此我将 WAN IP 替换为 123.123.123.123,而我本应将内部 192.168.1.1/24 网络添加到规则中。