【树莓派4B】三、笔记本给树莓派Ubuntu 18.04提供网络|为什么Ubuntu18.04更改/etc/resolv.conf修改nameserver重启网络被重置

一、条件:

笔记本必须是双网卡的,一个无线的一个以太网,现在的笔记本一般都是这样的。

二、笔记本端配置

打开网络共享

打开控制面板,控制面板\网络和 Internet\网络连接,如下图:
在这里插入图片描述

  1. 点击WLAN适配器->右键->属性->共享->勾选口允许其他网络用户通过此计算机的Internet连接来连接(N)->家庭网络连接(H):->以太网2(树莓派通过网线连接的网卡)

在这里插入图片描述

获取记本电脑与树莓派的接口IP地址

打卡控制台,ipconfig,如下图,因为树莓派连接的适配器是以太网2,所以对于接口的
IPv4 地址 . . . . . . . . . . . . : 26.26.26.1
子网掩码 . . . . . . . . . . . . : 255.255.255.248
在这里插入图片描述
现在笔记本端的网络就配置好了。为什么是接口192.168.137.1的呢?因为上部共享互联网的时候已把“本地连接”的IP地址自动设置成静态IP192.168.137.1了,当然这个IP地址也可以自己设置成其他自己常用的静态IP地址。

四、树莓派端Ubuntu系统的配置

这里笔记本就相当于一台路由器,为了树莓派能够通过以太网上网,就必须设置树莓派的IP地址,我设置的是静态IP。IP的设置要求是和笔记本与树莓派的接口(其实就是一个网关) 的IP在一个网段。从上面的信息来看,很容易知道树莓派的地址范围为192.168.137.1-254/24

配置Ubuntu静态IP

下面来设置树莓派4B上 Ubuntu18.04系统的IP地址为静态:

#打开相应的网络配置文件
sudo vi /etc/network/interfaces

#填入
auto eth0 
iface eth0 inet static
address 192.168.137.10      #这里设置IP,主要在上面给出的范围内即可
netmask 255.255.255.0         #这是子网掩码的设置
gateway 192.168.137.1         #这是电脑与树莓派的接口地址,即网关地址
dns-nameserver 8.8.8.8 #dns域名解析,可以更换为其他的,比如8.8.8.8 119.29.29.29
#退出并且保存
按下ESC
:wq

在这里插入图片描述

配置DNS服务器

经过上面的步骤,然后重启网络:sudo /etc/init.d/networking restart就可以上网了,但是我记得前面那个文件里面配置DNS服务器似乎是无效的,他们说上面设置完重启电脑后,/etc/resolv.conf 文件中会自动添加 nameserver 8.8.8.8,但是我实际操作的时候并不是这样,可能博客太久远,和现在的版本(Ubuntu 18.04)有些出入。这样不能解析域名,只能ping通IP地址。所以配置方式有所不同。

正确姿势:

#配置解析文件
sudo vi /etc/systemd/resolved.conf

配置如下:
在这里插入图片描述
并修改DNS一栏,设置多个DNS服务器的地址,这样就完成了 DNS的修改,保存退出,不用重启系统的,我不知道为啥有些博客说需要重启,重启一下网络服务就行了
重启网络服务sudo /etc/init.d/networking restart
其实有重启网络:sudo service networking restart,但是我用的是上面那个。我不知道区别暂时。

当然了,我还是得说说这里面的一些坑,改这个文件是因为域名不能解析,所以就去搜了一下,有些博客可能是因为他们说的系统版本是以前的或者其实是CentOS,带来了一些问题。
有不少博客说改sudo vi /etc/resolved.conf,然后在Ubuntu 18.04系统中改完这个文件以后重启一下网络服务你会发现这个文件又变回去了,如下图:
在这里插入图片描述
我就先说吧,其他版本的系统我不知道,但是在Ubuntu 18.04版本里面改的是/etc/systemd/resolved.conf,不是sudo vi /etc/resolv.conf。我后来还在专门验证过就是修改这个文件,我把DNS哪行注释掉后重启网络服务,再去ping www.bilibili.com就不通了,在还原后就通了。在这里插入图片描述

扫描二维码关注公众号,回复: 11846912 查看本文章

然后不知道的同学这时候就去搜:
修改/etc/resolv.conf又恢复到原来的状态
然后有博客说在/etc/sysconfig/network-script/ifcfg-eth0里面添加一个内容,PEERDNS=no,就可以了,但是你又会发现这个文件压根不存在,而且你也不用去新建了,因为/etc目录下面甚至没有/systemconfig目录。总之这样是没用的。这个可能是CentOS的方法,虽说都是Linux,但是又有很多差别。

当然好像还有chattr +i /etc/resolv.conf ~这个命令 -i:不得任意更动文件或目录。有没有用我不知道,自己试试吧。

这里
https://blog.csdn.net/u012432611/article/details/47702939

具体原因我也不知道,我有看到说resolv.conf文件其实是一个Link文件,如下
在这里插入图片描述
这篇博客的地址是:Ubuntu关于修改resolv.conf重启失效的问题
**原文:**下面的方法我也没有办法尝试过,但是原因我觉得有道理。
在Ubuntu中有一个 resolvconf 的服务,这个服务用来控制/etc/resolv.conf的内容。所以一旦我们重启了系统或者该服务,那么/etc/resolv.conf文件中的内容将被还原为原来的内容。所以直接修改/etc/resolv.conf并不能解决这个问题。

解决办法:

1.在网卡的配置文件中定义DNS地址:

iface eth0 inet static

address 192.168.0.10

netmask 255.255.255.0

gateway 192.168.0.1

dns-nameserver 8.8.8.8 8.8.4.4

2.修改resolvconf服务的配置文件:

vim /etc/resolvconf/resolv.conf.d/base

在其中添加或修改:

nameserver 8.8.8.8 8.8.4.4

猜你喜欢

转载自blog.csdn.net/qq_42820594/article/details/107325437