网页可以访问linux源,但是apt-get更新时总是Failed to fetch
背景
我发现一个非常奇怪的事情:发生在我的好几个linux系统上,有kali,Ubuntu,甚至树莓派的raspi。就是他们apt-get时,总是出现Failed to fetch。。。真的是非常令人沮丧。但是通过网页访问他们的源可以成功。这!究竟是人心的扭曲,还是道德的沦丧?
但是,在某个神奇的日子,我福至心灵,把电脑连在了手机wifi上,发现!居然apt-get成功了!我转念一想,估计是没人道的公司把源屏蔽了!啊。**这!究竟是人心的扭曲,还是道德的沦丧?**虽然我知道我们公司会屏蔽一些娱乐网站,像什么lol啊,爱奇艺啊,小说网站啊,但是,连linux的源都屏蔽了,也太丧心病狂了吧!
当时满脑子都是对公司的愤恨和终于可以用apt的喜悦!没有仔细思考这背后的问题。但是!随着我的流量一步步消耗,我终于。。。还是得回到这个问题上来。
那么到底为啥,电脑网页可以访问,但是apt不行呢?为什么连上手机热点之后,又可以了呢?
我第一个想到得可能是:看下dns服务器。
查看Linux得DNS服务器的方法: /etc/resolv.conf
我当时用的是树莓派,用网线连接电脑共享网络。至于这个的原理,请参考:树莓派通过网线实现与电脑共享网络
然后我看到树莓派的dns为 192.168.96.1
会不会是这个有问题?改成114.114.114.114是不是就可以了?
之后我发现!还真是这样!截一张成功的图
好!请忽略我渣渣的网速,apt已经成功了!教程结束!请大家自行修改DNS!
哈哈,不过对于伸手党,我还是写一下如何修改DNS吧!
如何修改linux 的DNS
修改DNS这个是,对于不同的linux系统,是稍微有一些区别的。所以修改的时候注意去官网或者是官方的平台查看到底怎么修改。不要轻信别人的博客、百度经验等等。这也是我为什么不太像写这部分的原因。因为我最开始就是跟着别人改了,弄了好几天都没有成功。所以!一定要多看官方的文档 不要害怕英文,坚持就是胜利!
好,废话说完,讲讲我修改树莓派dns的思路给大家参考
- 查看当前的DNS,就是之前介绍的 cat /etc/resolv.conf 有很多教程都说在这里改DNS就可以了。但是你会发现在这里改完之后,保存之后再打开,又变回去了。这根据不同的linux有不同的原因,kali里面是因为Network-Manager启动,所以会自动调配DNS地址。需要先关闭NetworkManager。(即运行
service network-manager stop
) - 但是树莓派里面,运行以上命令之后会提示:没有NetworkManager。说明树莓派里面不是用N诶workManager管理网络的。我们查阅官方文档,可以看到管理树莓派网络的官方接口在/etc/network.interfaces里面
- 我们打开这个文件,可以看到:
大意就是说。如果要设置静态IP,参考文件/etc/dhcpcd.conf 或者是使用命令 man dhcpcd.conf - 我们当然是使用文件的格式来修改ip了,用界面多low!所以我们打开/etc/dhcpcd.conf
- 里面是这样:
- 可以看到里面有设置静态ip的例子,按照例子设置,就没问题啦!
- 设置完后reboot
总结
其实最后看是非常简单的一个过程,我开始做的时候也是不想看英文的教程,总是跟着一些博客瞎写,最后总是出问题。