Answers:
似乎这是最近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更改子网)
秉承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所指出的,它必须用作防火墙脚本而不是启动脚本。
尝试在“安全性”->“防火墙”选项卡中禁用“过滤WAN NAT重定向”。从帮助说明中:
过滤WAN NAT重定向防止LAN上的主机使用路由器的WAN地址与LAN上的服务器(已使用端口重定向配置)联系。
听起来您的真正问题是您需要DNS A记录的两个视图。在外部,动态dns指向网络公共IP,该IP将端口80转发到本地主机。您需要做的就是在dnsmasq中添加一个带有A记录的条目,该记录将相同的完全限定域名指向本地主机的本地主机ip。您可以通过在“服务”页面/其他dnsmasq选项上添加以下内容来做到这一点:
address=/www.mydomain.com./xx.xx.xx.xx
只需将xx替换为本地IP,并将域名替换为您的域名。不要忘记尾随点,否则它将在您的本地域名之后附加。