DD-WRT:如何允许端口转发应用于来自 LAN 内部的请求?

DD-WRT:如何允许端口转发应用于来自 LAN 内部的请求?

使用路由器的原始固件,我将端口转发从端口 80 定义为 LAN 中的服务器,并将其与外部动态 DNS 服务结合使用。

我现在已经升级到 DD-WRT,但端口转发只适用于来自外部LAN。从 LAN 内部,我只能通过其内部 IP 访问服务器。

我怎样才能让外部 IP(以及连接到动态外部 IP 的域名)也能从里面局域网?

我更愿意了解如何使用标准 DD-WRT 定义来实现它,但使用例如 iptables 也不是不可能的。

答案1

这似乎是最近 DD-WRT 版本中的一个错误。

使用 iptables:

iptables -t nat -I POSTROUTING -o br0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

(根据您的具体 LAN 更改子网)

http://hax.at/text/41

答案2

本着 UrEl 回答的精神:可以在以下位置找到一个自配置iptables脚本,只需复制粘贴即可,无需进一步修改DD-WRT 论坛

insmod ipt_mark 
insmod xt_mark 
iptables -t mangle -A PREROUTING -i ! `get_wanface` -d `nvram get wan_ipaddr` -j MARK --set-mark 0xd001 
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark 
iptables -t nat -A POSTROUTING -m mark --mark 0xd001 -j MASQUERADE 

正如 Jarett 所指出的,这必须用作防火墙脚本而不是作为启动脚本。

答案3

尝试在“安全”->“防火墙”选项卡中禁用“过滤 WAN NAT 重定向”。来自帮助描述:

过滤 WAN NAT 重定向 防止 LAN 上的主机使用路由器的 WAN 地址联系 LAN 上的服务器(已使用端口重定向进行配置)。

答案4

听起来你真正的问题是你需要两个 DNS A 记录视图。从外部看,你的动态 DNS 指向你的网络公共 IP,它将端口 80 转发到本地主机。你需要做的就是在 dnsmasq 中添加一个条目,其中包含一个 A 记录,将相同的完全限定域名指向本地主机的本地主机 ip。你可以在服务页面/其他 dnsmasq 选项中添加以下内容来执行此操作:

 address=/www.mydomain.com./xx.xx.xx.xx

只需将 xx 替换为本地 ip,将域名替换为您的域名。不要忘记结尾的点,否则它会将您的本地域名附加到它后面。

相关内容