当前位置: 代码网 > it编程>编程语言>Java > ubuntu22.04配置静态ip问题

ubuntu22.04配置静态ip问题

2024年08月06日 Java 我要评论
本文是对自己个人在配置静态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

输出结果:

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地址结束。感谢你的收看,如果对你有帮助的话,可以点个关注加点赞,希望你们能少走一点弯路。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com