ubuntu22.04配置静态ip问题

手lu代码哥 2024-09-08 10:37:03 阅读 80

本博客是本人本人在配置ubuntu静态ip地址踩到的坑。

有一天,本人想通过FinalShell这个工具来访问我的虚拟机中的ubuntu,也为到时候来访问树莓派内的ubuntu系统做准备。

问题1:gateway4 报错问题2:网络配置文件01-network-manager-all.yaml are too open…报错

一、查看当前ip信息

在ubuntu中,我们可以通过ifconfig命令查看当前的ip地址

输入:

<code>robot@robot-virtual-machine:~/桌面$ ifconfig

输出结果:

robot@robot-virtual-machine:~/桌面$ ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.142.129 netmask 255.255.255.0 broadcast 192.168.142.255

inet6 fe80::20c:29ff:fe94:97ce prefixlen 64 scopeid 0x20<link>

ether 00:0c:29:94:97:ce txqueuelen 1000 (以太网)

RX packets 643 bytes 451130 (451.1 KB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 954 bytes 122923 (122.9 KB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

device interrupt 19 base 0x2000

我们会在终端中打印出当前的ip地址为192.168.142.129,还有自己的网卡名称ens33。

接着我们在命令行中输入route -n

输入:

robot@robot-virtual-machine:~/桌面$ route -n

输出结果:

robot@robot-virtual-machine:~/桌面$ route -n

内核 IP 路由表

目标 网关 子网掩码 标志 跃点 引用 使用 接口

0.0.0.0 192.168.142.2 0.0.0.0 UG 100 0 0 ens33

169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33

192.168.142.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

这个地方也可以看到你的网络接口,即网卡号,即ens33,还有当前的网关 192.168.142.2 这个信息要记住,待会要用。

现在这个ip地址是DHCP自动分配的,我们每次打开虚拟机后,可能被分配的地址就会发生变化,就会让我们在通过shell工具访问ubuntu时,会极其不方便,故我们现在来将它设置为静态地址。

二、修改为静态ip地址

首先:进入到带有网络配置文件的目录下

robot@robot-virtual-machine:~/桌面$ cd /etc/netplan/

正常来说你会找到这个文件,这个文件的命名随你的版本来找,反正只要是有network,然后有yaml结尾的就行。

01-network-manager-all.yaml

接着:阅读该文件

robot@robot-virtual-machine:/etc/netplan$ sudo cat 01-network-manager-all.yaml

当我们去打开这个文件时,当一个没有对网络进行配置的新系统,会出现以下的文本。

# Let NetworkManager manage all devices on this system

network:

version: 2

renderer: NetworkManager

最后的renderer: NetworkManager 可能会因为你是桌面版和无桌面版有所不一样,无桌面版应该是 networkd。接下来就要对这个文件进行修改配置了。

在现在很多的教程中,大部分人给你的方案可能是以下这样

将以下内容替换到你的 01-network-manager-all.yaml文件里面

# Let NetworkManager manage all devices on this system

network: # 网络

version: 2 # 版本

renderer: NetworkManager # 渲染器

ethernets: # 以太网

ens33: # 这里的ens33,就是但是用route -n 看到最右边的那个

addresses: [192.168.142.129/24] # ip地址跟一开始的那个ifconfig看到那个ip地址一样就行

dhcp4: false # 关闭自动分配

dhcp6: false # 关闭自动分配

gateway4: 192.168.142.2 # 网关 # 这个网关根据自己的route -n查到的来填写

nameservers: # 域名服务器

addresses: [8.8.8.8, 114.114.114.114]

但是本人用这个是跑不通的,尝尝会报错:

`gateway4` has been deprecated, use default routes instead. See the 'Default...

解决方法:

# Let NetworkManager manage all devices on this system

network: # 网络

version: 2 # 版本

renderer: NetworkManager # 渲染器

ethernets: # 以太网

ens33:

addresses: [192.168.142.129/24]

dhcp4: false

dhcp6: false

routes:

- to: default

via: 192.168.142.2 # 默认网关

nameservers: # 域名服务器

addresses: [8.8.8.8, 114.114.114.114]

我这里将gateway4 替换成了 routes 这个网关也要记得跟着一开始gateway4后面改,就好了。

然后在编写该文件时,是通过

robot@robot-virtual-machine:/etc/netplan$ sudo vim 01-network-manager-all.yaml

具体vim的操作,可以自行去查阅了解,这里就不再做讲解。

需要注意的是,这个文件中 不允许出现tab键,只能允许空格来实现对齐,这里推荐两个空格。具体要求可以去看看 yaml编写标准 。这里也不在赘述。

三、更新配置信息

当我们修改完网络配置信息后。

输入:sudo netplan apply

robot@robot-virtual-machine:/etc/netplan$ sudo netplan apply

这里有一个坑,可能会报错:

Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.

这是由于你开放权限太高导致的。

我们可以通过进入root,然后查看权限信息。

robot@robot-virtual-machine:/etc/netplan$ su

密码:

root@robot-virtual-machine:/etc/netplan#

会输出以下内容:

robot@robot-virtual-machine:/etc/netplan# ll

total 12

drwxr-xr-x 2 root root 4096 Aug 4 06:37 ./

drwxr-xr-x 99 root root 4096 Aug 4 09:07 ../

-rw-r--r-- 1 root root 118 Aug 3 09:57 01-network-manager-all.yaml

这时,我们就需要通过chmod命令来修改当前文件的权限了。

root@robot-virtual-machine:/etc/netplan# chmod 0600 01-network-manager-all.yaml

修改后,再次运行 network apply 。就可以运行成功不会报错了。

root@robot-virtual-machine:/etc/netplan# network apply

最后再ifconfig,就能看到ip地址已经变成你写在文件内addresses 中的地址了,此时的地址为静态地址。你也可以通过再次修改yaml文件中的ip地址,更改最后一个小数点后的数,数值范围为0-255,你设置完,再netplan apply一下,再用ifconfig看,就会再次变化了。

最后记得通过su [你的用户名,我这里是robot]

即su robot 来退出root用户

四、结语

至此,配置虚拟ip地址结束。感谢你的收看,如果对你有帮助的话,可以点个关注加点赞,希望你们能少走一点弯路。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。