|
|
现象-openwrt无法上网,局域网内其他设备正常:
openwrt安装完tailscale后,打开adguard home网页时提示“检查更新失败。请检查互联网连接。”,之后尝试了点击openwrt的系统-软件包-更新列表,失败,有“opkg_download: Failed to download ”等提示,判断是openwrt无法正常连网了。此时连接openwrt的电脑是能正常上网的。
在网络-网络诊断里尝试ping immortalwrt.org,提示“ping: bad address 'immortalwrt.org'”;点击nslookup,提示“;; connection timed out; no servers could be reached”,说明openwrt连DNS都无法解析了。
由于还安装了adguard home、mosdns等服务,我一度以为是这些服务或者Dnsmasq的问题,折腾了半天。后来甚至尝试把这些服务一个一个卸载掉(包括tailscale),问题还是没有解决。
后来在网上搜教程,检查了一下系统的/etc/resolv.conf,发现里面内容竟然是这样:
- # resolv.conf(5) file generated by tailscale
- # For more info, see https://tailscale.com/s/resolvconf-overwrite
- # DO NOT EDIT THIS FILE BY HAND -- CHANGES WILL BE OVERWRITTEN
- nameserver 100.100.100.100
- search tailxxxxxx.ts.net lan
复制代码 原来是openwrt的解析配置文件被tailscale改写了,域名解析服务器被改成了100.100.100.100,如下可见。如果使用nslookup www.baidu.com 127.0.0.1命令,即设置解析服务器为本机就能解析出正确的ip了。
至于tailscale为什么要覆写该文件,可以参考其官方文档:https://tailscale.com/kb/1235/resolv-conf,里面还说明了可以使用“tailscale set --accept-dns=false”命令来取消覆写功能。
- root@ImmortalWrt:~# nslookup www.baidu.com
- Server: 100.100.100.100
- Address: 100.100.100.100:53
- ** server can't find www.baidu.com: SERVFAIL
- ** server can't find www.baidu.com: SERVFAIL
复制代码 解决办法:
恢复原始的/etc/resolv.conf文件,即重新创建并软链接到/tmp/resolv.conf(即Dnsmasq的解析配置文件):
- rm /etc/resolv.conf
- ln -s /tmp/resolv.conf /etc/resolv.conf
复制代码 ————————————————————————————————————————————————————————
困惑:
- 在网上搜教程解决问题的时候并没有看到有关tailscale会导致路由系统无法上网的情况,为什么我会遇到这种问题,是哪设置错了吗,我也是找教程安装的tailscale:
- opkg update
- opkg install tailscale
- tailscale up --advertise-routes=10.0.0.0/24,10.0.1.0/24 --accept-routes
复制代码- 为什么tailscale要默认提供MagicDNS(100.100.100.100),一个无法解析正常网站的DNS服务器?或者也可能是我的打开方式不对?
|
|