(封面是一个睡觉的小狗,没有任何含义,只是觉得乖)
前几天
整了台新电脑,把里面 Win10
格式化了,直接装的 Ubuntu 18.04
,之后就出现了问题。
总的说来是连不上无线网。有 wlp1s0
,但是连不上无线网。所以一直都是通过 USB
网络共享来遨游互联网(
今天下午又搞了三个小时,让我感到最恼火的是 ip link set wlp1s0 up
这个指令的返回是 invalid arguments
,着实想不通。
所以我想了个办法
我另一台电脑上有一个 Ubuntu 18.04
的虚拟机,安装使用的镜像和前面那个是一样的。由于我对 VMware
的网络设置进行了一些修改,导致其上不了网。我对我虚拟机上不了网的了解仅仅停留在 它上不了网,再加上之前一直没有心情整,这下刚好n试试到底是不是相同的问题。
之后是普通的两个指令 ip a
和 ifconfig
的返回:
看下 network-manager
这个服务,还是正常的:
然后我尝试了 sudo ifup ens33
:
的确是起来了。我也注意到原本的 ens33
就是 state DOWN
,而非我那个什么 noop state
。所以在这里就已经比我那个物理机要高多了,我那个机器执行了这一步,也还是 noop
。
(我也没搜是什么意思)
接下来是
要对 Ubuntu
虚拟机配置,而非物理机。
现在的问题是,它不知道它自己是谁,由于是虚拟机,所以我得按照外面 VMware
的设置来自己配下 ip
……
改成这个样子:
重启服务后就有了,现在看起来十分地正常,那么是表面正常还是真的能用,开一下浏览器就行了:
182.61.200.6
是我在学院图书馆 ping www.baidu.com
应该得到的 ip
,这里是能 ping
,但是无法直接用域名。
哦,没有 DNS Server
的配置,那我就加一个 8.8.8.8
:
但是
我之后 reboot
了一下,但是发现电脑对 --set-dns=8.8.8.8
这句话一点记性都没有,查看 status
还是看不到 DNS Server
。
我也尝试了网上的一些方法,比如手动改 /etc/resolve.conf
:
尽管后面又可以正常进行域名解析了:
但是在重启之后还是清掉了:
其实
我也知道,不应该这么手动改。
上面都写了,这个文件不建议直接动,它是由 systemd-resolved
动态维护的,想来开机的时候肯定是要重新生成。
我也发现这个 resolve.conf
链到了 /run
的子目录下的一个配置文件,说明它本来就是个运行时文件,我通过命令,或许是可以直接动 systemd-resolved
内部;通过这里修改,或许会触发程序的一个什么什么钩子,然后给我更新 dns server
的列表:
所在的文件夹中,有一个 stub-resolve.conf
和 resolve.conf
,就目前来说,两个文件的区别仅仅是少了两行注释,这里就不贴出来了。
在 DNS
那一系列概念里面,stub
正如我高中所学的那点英文中的含义一样,是 “主干,根” 的意思。当我试图通过一个域名进行网站的访问的时候,DNS stub
就会去找 /etc/hosts
里面找对应的 IP
,如果没有才去问 DNS Server
。
也就是说,这里的两个配置文件是和 DNS stub
以及正经的 DNS
有关的(或许?),我怎么说也不应该自己碰这两个自动生成的东西。
那么现在
改 /etc
下的 resolve.conf
是绝对不可行的,因为它是个运行时文件,只好换其他的思路了。我也在网上搜了许多改 dns
的方法,但大多一看就觉得不靠谱……
今天下午我在倒腾我那个物理机的时候,经常看到一个叫做 systemd
的文件夹,里面好像也有个 resolve.conf
。我是今天晚上才知道 resolve.conf
是和 dns
挂钩的(还是因为可以通过 systemd-resolved
来设置 dns server
的 ip
)
我就试着改了下这个配置文件:
之后通过重启来重启 systemd
,然后我就惊了,右上角不知道什么时候冒出来了好久不见的 有线连接 图标,同时我怀着激动的心情打开浏览器,打算开始遨游互联网:
同时看一下我们的 status
:
Global
上面直接加了个 DNS Servers: 8.8.8.8
的键值对,这毫无疑问是起飞了。
终于
时隔两个月,我第一次用我的 Ubuntu
虚拟机像个正常人一样上网。
我枯了,宁呢?