当前位置:   article > 正文

ubuntu22.04配置静态ip问题_ubuntu22.04虚拟机启动后无静态ip地址

ubuntu22.04虚拟机启动后无静态ip地址

本博客是本人本人在配置ubuntu静态ip地址踩到的坑。
有一天,本人想通过FinalShell这个工具来访问我的虚拟机中的ubuntu,也为到时候来访问树莓派内的ubuntu系统做准备。

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

一、查看当前ip信息

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

输入:

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

输出结果:

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  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

输入:

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

输出结果:

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

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

二、修改为静态ip地址

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

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

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

01-network-manager-all.yaml
  • 1

接着:阅读该文件

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

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

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  • 1
  • 2
  • 3
  • 4

最后的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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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

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

解决方法:

# 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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

我这里将gateway4 替换成了 routes 这个网关也要记得跟着一开始gateway4后面改,就好了。
然后在编写该文件时,是通过

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

具体vim的操作,可以自行去查阅了解,这里就不再做讲解。
需要注意的是,这个文件中 不允许出现tab键,只能允许空格来实现对齐,这里推荐两个空格。具体要求可以去看看 yaml编写标准 。这里也不在赘述。

三、更新配置信息

当我们修改完网络配置信息后。
输入:sudo netplan apply

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

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

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

这是由于你开放权限太高导致的。
我们可以通过进入root,然后查看权限信息。

robot@robot-virtual-machine:/etc/netplan$ su
密码: 
root@robot-virtual-machine:/etc/netplan# 
  • 1
  • 2
  • 3

会输出以下内容:

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
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

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

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

最后再ifconfig,就能看到ip地址已经变成你写在文件内addresses 中的地址了,此时的地址为静态地址。你也可以通过再次修改yaml文件中的ip地址,更改最后一个小数点后的数,数值范围为0-255,你设置完,再netplan apply一下,再用ifconfig看,就会再次变化了。
最后记得通过su [你的用户名,我这里是robot]
即su robot 来退出root用户

四、结语

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/796793
推荐阅读
相关标签
  

闽ICP备14008679号