默认情况下,直接在openwrt配置端口转发,会自动启用 NAT 环回。 但是在部分固件下,尤其是存在docker 和ipsec等服务的时候 就会失效。
在帮多个网友排查处理的时候 总结出来的小经验:不讲复杂的原理,只说实现方法
常见解决方法
- 修改 wan=> lan的防火墙配置 ( 旧版有效)
- 在对应的端口转发的位置 关闭重新打开启用 NAT 环回 (看脸)
- 修改/etc/sysctl.conf (部分固件有效)
- /etc/dnsmasq.hosts 即 dnsmasq 在科学软件劫持dns后概率失效 且仅限基于域名的业务
- 内网机器hosts大法 (肯定有效,但是仅限域名业务)
- 别名主机大法 (有效,但是仅限域名业务)
前面几种方法 网上都有对应的教材不用细说,在不同的源码固件下不太通用,在更新内核后也有可能失效。这里只说 最后一种方法。
最通用的解决方法
别名主机
luci
根据版本不同,入口位置不同 一般在 http:///cgi-bin/luci/admin/network/dhcp 别名主机 的位置
uci
和luci一样,但是可以直接shell运行,更简单直观。
uci add dhcp domain
uci set dhcp.@domain[-1].name='域名地址'
uci add_list dhcp.@domain[-1].ip='10.1.1.50'
uci commit dhcp
/etc/init.d/dnsmasq restart
注意 如论是别名主机 还是 hosts 都不支持泛域名,要支持泛域名只有dnsmasq。
最后
月经bug
openwrt 这个问题,在不同的版本,包括官方版都反复出现。 用的还算稳定的情况下,尽量不折腾。浪费青春。
建议
不是太特殊的情况下,建议用别名主机的来处理。如果有特殊需求,建议弃用docker ,opkg的软件还是蛮多的,部分没有的可以用可以在其他机器上用 docker导出后 在openwrt chroot使用。
评论一下?