openwrt 127.0.0.1地址不能访问问题解决
缘起
最近这段时间在折腾openwrt
软路由,用来做一些流量的控制,基于dns的广告过滤这些事情。
但是随着软件包以及服务的增多,最近非常的不稳定,经常出现软路由openwrt自己不能上网的情况。
主要表现为:
1、ping 127.0.0.1 可以通
2、运行在127.0.0.1上的所有服务都不能正常,包括dns解析服务、nginx等
3、开机重启时是好的,但是经过一段时间运行就挂掉
折腾过程
经过各种尝试以及搜索资料,都没有找到明确的问题原因,网上127.0.0.1不能访问的,大多说的是防火墙、lo接口的问题,但是我这里ifconfig是好的。
由于各种尝试都不能解决问题,就通过排除法一一排查了,最终定位到是adblock
插件运行时产生了什么异常,导致本机端口异常。
经过分析,大致知道了出现这个问题,应该是adblock插件也会操作dnsmasq后端,存在某些异常的情况,最终会配合ipset、iptables(我有一些端口转发规则),导致本地地址运行异常。
解决方法:
关闭adblock插件,我专门在一个debian虚拟机上跑一个就好了,至此问题解决。
更新于2020.04.19
前段时间这个问题又出来了,于是又继续跟踪了下问题原因,终于被我发现真的是防火墙出问题了,但不是adblock的问题,是自动gfw走代理导致把127.0.0.1重定向到远端了。。
具体是这个bt下载的tracker服务器的问题
居然特么的这个被墙的tracker tracker.fr.eu.org指向了127.0.0.1,然后我就把自己127.0.0.1墙了。。。。。ffff我佛慈悲
$ nslookup tracker.fr.eu.org Server: 192.168.1.1Address: 192.168.1.1#53Non-authoritative answer: Name: tracker.fr.eu.org Address: 127.0.0.1
** 更新于2021.01.31** 最近又发现了一个诡异的127.0.0.1的dns不能解析问题,而且还是gfw的域名无法解析,经过一通折腾,终于发现,问题原因和去年那次基本一样:本地被错误的映射到远程去了
这次是一个v2ray的服务端域名被加入到gfw列表里了,导致出现这种死循环
于是这个死循环就生成了,想要远程dns解析,但是远端的服务端本身也是要dns解析的,且也是要远程dns解析的,解决也很简单,就是把v2ray服务端换成ip或者去除gfw里边的v2ray服务端域名
这一通折腾真的是很艰难,因为这个过程不细分析根本发现不了。。。。
总结
使用这些软路由、kvm虚拟机这些东西,总是会需要各种折腾的,有时候遇到了别人都没有遇到的坑,只能静下来慢慢分析了,总归能找到解决方法的,痛并快乐着~~~
已有3位网友发表了看法:
我的QQ是:85762917,希望得到您的解答~
1、测试dns是否正常
1)可以使用nslookup qq.com看下输出(windows下可以win + r 开个命令行输入),如果解析不了那就是dns挂了
2)可以去软路由里看下dns解析是否正常,openwrt系统的网络nslookup是在http://路由器地址/cgi-bin/luci/admin/network/diagnostics
3)如果上面步骤都不正常,那要看下整个系统的上游dns用的哪里的,假设使用的114.114.114.114,可以使用nslookup qq.com 114.114.114.114看
在dns出问题的情况,假设路由器和我博客说的一样,那么这三部肯定会出问题
2、看下网络是否通的
正常的ping 114.114.114.114就行,也是像上面一样,在电脑、软路由以及上级上试试
发表评论