侧边栏壁纸
博主头像
ayou

中年互联网混子,现居苏州,曾经技术型宅男一个,
爱好吃,爱好睡,体制外,爱岗敬业,
遵纪守法,头发短,见识短,伪Geek,毫无城府。

  • 累计撰写 1623 篇文章
  • 累计收到 13 条评论

openwrt内网设备无法通过外网域名/ip访问的解决

2024-9-18 / 0 评论 / 1194 阅读

默认情况下,直接在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使用。

评论一下?

OωO
取消