当前位置: 首页 > article >正文

怎么修改虚拟机上Ubuntu的ip为静态ip

引言

  • 查看自己当前Ubuntu的版本
  • 如何修改虚拟机上Ubuntu的IP为静态ip

调试程序的时候,发现关机后再开机有时候虚拟机的ip会发生变化,所以为了不再去代码中修改通信的ip的地址,需要将虚拟机的ip改为静态ip,这样ip就不会在关机后再开机变了。
IP为什么会发生变化,可以自己查阅原因。这里只做简述:一个主要原因是IP分配方式的不同。静态IP是手动分配给设备的固定地址,不会随时间或网络条件而改变。而DHCP(动态主机配置协议)则会自动为连接到网络的设备分配IP地址,这些地址可能是临时的,并且可能会随着设备的连接、断开或网络策略的变化而变化。
需要注意的是,即使使用DHCP,某些网络配置也可能允许为特定设备保留(或称为“绑定”)静态IP地址,这样即使设备重新连接,也会获得相同的IP地址。此外,IP地址的变化还可能受到网络策略、设备配置、路由器或交换机设置等多种因素的影响。

查看自己当前Ubuntu的版本

在自己的虚拟机的菜单栏中点击下拉箭头-》设置,弹出下面的弹窗,找到关于一栏,选中关于后,会在右侧显示Ubuntu的版本。如下图所示:
在这里插入图片描述
为什么要看Ubuntu的版本,是因为Ubuntu18.04版本及更新的版本是一种设置的方法,Ubuntu18.04之前的版本是另一种设置ip的方式。本文提到的设置ip的Ubuntu版本是ubuntu20.04.4.

如何修改虚拟机上Ubuntu的IP为静态ip

  1. 查询网络接口名称
ip addr //查看网络接口信息

回车后,在输出的信息中查看网络接口名称。
我的电脑回车后,显示下面的信息:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:f0:1f:fd brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.0.168/24 brd 192.168.0.255 scope global dynamic noprefixroute ens33
       valid_lft 31890sec preferred_lft 31890sec
    inet6 2408:8806:40:e209:39ef:4821:d88d:330b/64 scope global temporary dynamic 
       valid_lft 3599sec preferred_lft 3599sec
    inet6 2408:8806:40:e209:33c0:55c4:ce24:daf2/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 3599sec preferred_lft 3599sec
    inet6 fe80::952e:73f2:2075:13e1/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

因为我要将192.168.0.168修改为静态ip,它对应的网络接口名称为ens33。
上面也可以看出广播地址:192.168.0.255。且现在输出信息中含有dynamic。是动态分配的ip地址。

  1. 查看网关
    使用指令:
 ip route //其中默认网关(通常是到0.0.0.0/0或::/0的路由)的IP地址就是您的网关。

回车后,我的电脑上显示的信息如下:
在这里插入图片描述
可以看出192.168.0.168的默认网关为192.168.0.1。
3.查看DNS服务器
使用指令:

cat /etc/resolv.conf //查看/etc/resolv.conf文件来找到当前设置的DNS服务器,nameserver行后面的IP地址就是DNS服务器的地址

回车后,出现下面的信息:
在这里插入图片描述
可以看到我的DNS服务器地址:127.0.0.53。
3. 编辑Netplan配置文件
使用文本编辑器打开Netplan的配置文件。通常,Netplan的配置文件位于/etc/netplan/目录下,并以.yaml结尾。
先去查看自己的Ubuntu上/etc/netplan/下的文件名。使用指令:

ls /etc/netplan/ //查看自己的配置文件名,因系统不同会不同

回车后输出下面的信息:
在这里插入图片描述用以下命令来查看和编辑01-network-manager-all.yaml文件。

sudo nano /etc/netplan/01-network-manager-all.yaml

回车后,会出现下面这样一个终端。我的终端刚打开之后只有三行。

network:
  version: 2
  renderer: NetworkManager

下方的图片中看到的后面其它行是我已经添加好的。
在这里插入图片描述
4. 修改配置文件
在上图打开的配置文件中,根据需求修改你的网络接口名称,并根据需要修改IP地址、子网掩码、网关和DNS服务器。
修改完如上图。
点击CTRL+O写入文件,然后出现写入的文件名,默认是打开的文件名,直接按回车键,保存好之后,点击CTRL+X退出该终端。
5. 应用修改的配置
使用下面的指令应用配置。

sudo netplan apply
  1. 验证新的ip
    使用下面的指令查看ens33名称的ip设置。
ip addr show ens33 //这里的ens33是我的网络接口名称
  1. 验证修改后的ip是否可以使用
    使用ping 来与其它的ip来ping通。
ping www.baidu.com

同时查看Ubuntu上菜单栏上的网络图标是否正常,我修改IP的配置后,网络图标上显示了一个?,ping百度的时候也出现了下面的错误。
在这里插入图片描述
是因为我将DNS服务器配置错了,我将DNS服务器配置为127.0.0.53,即
文件中的address下方的地址我只给写成了127.0.0.53。

 gateway4: 192.168.0.1  # 设置新的默认网关
      nameservers:
        addresses:
          - 127.0.0.53  # 设置DNS服务器

这样就会出现应用修改的配置后,Ubuntu上网络图标上显示了一个?。
将DNS服务器地址更改为 8.8.8.8 和 8.8.4.4(或其他您信任的 DNS 服务器地址),保存后应用配置。查看网络连接图标和 DNS 解析正常。

 gateway4: 192.168.0.1  # 设置新的默认网关
      nameservers:
        addresses:
          - 8.8.8.8  # 设置DNS服务器
          - 8.8.4.4

此时网络图标显示正常,也可以ping通百度。静态ip配置完成。
此时再去查看ip addr 就会在输出信息中看不到dynamic字样。
在这里插入图片描述
至此静态ip配置完成。
备注
1. 在修改网络配置文件后,您需要运行 sudo netplan apply 命令来应用更改。如果您没有运行这个命令,那么您的网络设置将不会更新。
2. 在应用更改后,使用 ip addr 命令检查网络接口的配置,确保新的 IP 地址已经生效。
3. 使用 ping 命令测试网络连接,例如 ping 8.8.8.8,以确保您的设备可以访问外部网络。


http://www.kler.cn/a/419504.html

相关文章:

  • 阅读笔记--知识蒸馏
  • Spring boot之BeanDefinition介绍
  • STM32的CAN波特率计算
  • Unity3D模型场景等测量长度和角度功能demo开发
  • 汉字Unicode编码相互转换API集成指南
  • C#中switch语句使用
  • SpringBoot源码解析(六):打印Banner
  • Brain.js(五):不同的神经网络类型和对比,构建神经网络时该如何选型?
  • 用 Python 从零开始创建神经网络(十三):训练数据集(Training Dataset)
  • ArcGIS对地区进行筛选提取及投影转换
  • Elasticsearch 的存储与查询
  • 数据科学家创建识别假图像的工具
  • 【Go 基础】channel
  • Qt窗口的闪烁QWebEngineView
  • 按vue组件实例类型实现非侵入式国际化多语言翻译
  • 美畅物联丨如何通过 FFmpeg 解码视频
  • STM32 HAL库开发学习5. 系统滴答定时器
  • Linux HTTP代理Squid 基本变更配置及目标白名单方式限制转发
  • Flutter 之 InheritedWidget
  • 【大模型】ChatGPT 提示词优化进阶操作实战详解
  • 新能源,半导体,医药生物等高科技企业如何高效、安全、智能管理文件数据
  • 汽车IVI中控开发入门及进阶(三十五):架构QML App Architecture Best Practices
  • Docker Buildx 与 CNB 多平台构建实践
  • 无人机地面遥控遥测技术与算法概述!
  • 文库 | 从嬴图的技术文档聊起
  • 网络性能四大关键指标:带宽、时延、抖动和丢包率