注意:本博客过于久远,内容可能已经不适用
注意:正确的更改DNS的方法见博客:常见公共DNS服务&Linux和Windows下修改DNS的方法
DNS莫名其妙出错,啥也干不了
百度了一波,发现解决方案很简单,就是手动加入DNS
1
| sudo vim /etc/resolv.conf
|
加入DNS
1
| nameserver 119.29.29.29
|
当然可以自己去百度其他家的DNS,我这是DNS PUBLIC+的地址
按照百度说的我保存重启
结果发现并没有什么卵用…
仔细观摩一下文件
1
2
3
4
5
6
| # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53</pre>
|
被覆盖了
而且说明也写着“DO NOT EDIT THIS FILE BY HAND”
我按照其他的方法修改了一下编辑resolv.conf.d目录下的base文件
不过也没有效果
但是按照第二篇看的文章找到了问题所在:
重启系统后DNS设置不但不会被应用还会被覆盖,应该重启网卡来解决
1
| sudo /etc/init.d/networking restart</pre>
|
完美解决
参考:
不过刚刚重启了好像又被覆盖了,很是绝望
干脆写了个脚本,然后开机自动运行脚本得了…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #!/bin/bash
### BEGIN INIT INFO
# Provides: run.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the run.shh daemon
# Description: starts run.sh using start-stop-daemon
### END INIT INFO
sudo echo "nameserver 119.29.29.29" >> /etc/resolv.conf
sudo /etc/init.d/networking restart
|
然后复制到init.d中,再
1
| update-rc.d run.sh defaults 99
|