Ubuntu修改静态IP、网关和DNS的方法总结

news2024/11/27 15:46:11

Ubuntu修改静态IP、网关和DNS的方法总结

ubuntu系统(其他debian的衍生版本好像也可以)修改静态IP有以下几种方法。(搜索总结,可能也不太对)

/etc/netplan (use)

Ubuntu 18.04开始可以使用netplan配置网络,其也是默认安装的。配置文件位于/etc/netplan/xxx.yaml中,netplan默认是使用NetworkManager来配置网卡信息的。

old: -- (Ubuntu 20.04.及以前版本使用)

# 可以将其修改为如下格式,来修改网卡信息
# 需要注意缩进关系,不然就会报错
network:
    version: 2
    ethernets:
        ens33:
            dhcp4: no
            addresses: [192.168.16.136/24]
            gateway4: 192.168.16.2
            nameservers:
                addresses: [192.168.16.2]
        [网卡2的设备名称]: 
            dhcp4: no
            addresses: [192.168.16.145/24]
            gateway4: 192.168.16.2
            nameservers:
                addresses: [192.168.16.2]
                
# 然后运行,即可生效
sudo netplan apply

new: -- (Ubuntu 20.04.之后版本使用)

root@my-ubuntu-vm1:~# vi /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      #dhcp4: true
      dhcp4: false
      addresses: [192.168.31.85/24]
      optional: true
      routes:
      - to: default
        via: 192.168.31.1
      nameservers:
        addresses: [114.114.114.114]
  version: 2

# 然后运行,即可生效
sudo netplan apply
  • ethernets: 网卡数组-------------第二层
  • ens33: 网卡名字-------------第三层
  • dhcp4: 表示通过dhcp获取ip还是配置静态ip-------------第四层
  • addresses:配置ip地址与子网掩码-------------第四层
  • gateway4: 网关-------------第四层
  • nameservers: dns服务器-------------第四层
  • addresses:dns服务器的地址列表-------------第五层

这种方法修改也比较方便。

NetworkManager

Ubuntu等带有界面的linux操作系统默认安装了NetworkManager,正常可以直接通过 系统设置 操作NetworkManager的图形化界面修改网卡的静态IP、网关和DNS。如下为ubuntu的操作界面。

同时NetworkManager一般还提供nmcilnmtui的命令,可以通过终端来修改。

  • nmcil的基本操作流程
# 显示网卡连接信息
nmcli connection show
# 短格式
nmcli con show
# 例如会返回如下信息
NAME        UUID                                  TYPE      DEVICE 
有线连接 1  ee4dce9e-bf8f-3c4b-85d5-dd5a4ac0a2f1  ethernet  ens33  

# 显示网卡的具体信息
# NAME有中文的时候需要加''
# nmcli con show '有线连接 1'
nmcli con show [NAME]|[UUID]

# 修改都需要 sudo 权限
# 修改对应网卡的信息
# 修改网卡的模式,自动/手动
nmcli con modify [NAME]|[UUID] ipv4.method auto|manual
# 设置为自动获取IP
nmcli con modify '有线连接 1' ipv4.method auto
# 修改IP地址
nmcli con modify [NAME]|[UUID] ipv4.addresses [ip/mask]
# 修改网关
nmcli con modify [NAME]|[UUID] ipv4.gateway [gateway]
# 修改DNS
nmcli con modify [NAME]|[UUID] ipv4.dns [dns]

# 上述修改后需要重启开启网卡才能生效
nmcli con down [NAME]|[UUID]
nmcli con up [NAME]|[UUID]
# 未生效还可以尝试重启NetworkManager服务或者系统重启
sudo service network-manager restart

# 完整示例
# 设置‘有线网卡 1’的IP地址为192.168.16.140,子网掩码为 255.255.255.0,网关为 192.168.16.2,DNS为 192.168.16.2
sudo nmcli con modify '有线网卡 1' ipv4.method manual
sudo nmcli con modify '有线网卡 1' ipv4.addresses 192.168.16.140/24
sudo nmcli con modify '有线网卡 1' ipv4.gateway 192.168.16.2
sudo nmcli con modify '有线网卡 1' ipv4.dns 192.168.16.2
sudo nmcli con down '有线网卡 1'
sudo nmcli con up '有线网卡 1'
  • nmtui的基本操作流程

在终端中输入nmtui就会进入修改网卡信息的终端ui界面中,根据操作提示修改即可,注意修改后,需要重启网卡,启用连接 -> [选择对应的网卡] -> 禁用 -> 启用,修改才会生效。修改失败的话,就sudo nmtui再试试

通过图形化界面、nmcli指令和nmtui指令操作,最终的配置信息都保存在/etc/NetworkManager文件夹中,网卡的配置文件在/etc/NetworkManager/system-connections文件夹中,也可以直接修改网卡配置文件来修改IP等,注意修改前最好备份一下配置文件。

经过测试,修改后需要重启NetworkManager服务后,再重启网卡,修改才能生效。

# 修改配置文件
sudo vim /etc/NetworkManager/system-connections/[网卡NAME]

# 重启NetworkManager服务
sudo service network-manager restart
# 重启网卡
sudo nmcli con down [NAME]|[UUID]
sudo nmcli con up [NAME]|[UUID]

/etc/network/interface

可以通过修改/etc/network/interface来配置网络,由于我们默认是通过NetworkManager修改网卡信息的,所以一开始interface文件中没有其他网卡的信息。

可以在文件后面添加需要修改的网卡信息。

# /etc/network/interface文件后添加
auto [网卡名称]                    #要设置的网卡设备名称,如 auto ens33
iface [网卡名称] inet static     #设置静态IP;如果是使用自动IP用 dhcp
address xxx.xxx.xxx.xxx            #IP地址
netmask xxx.xxx.xxx.xxx         #子网掩码
gateway xxx.xxx.xxx.xxx         #网关

# 修改完成后,重启网络服务
service networking restart

经过测试,有时候重启服务和重启网卡并不能生效,需要系统重启后生效,同时这个时候系统设置中的NetworkManager 就不太正常了。

这种方法不能一起修改DNS,需要修改另外一个配置文件/etc/resolv.conf,具体详见这个博客ubuntu修改ip。但是我的ubuntu18.04的虚拟机中已经没有resolvconf这个服务了。具体见这个博客Ubuntu 手动配置DNS。

目前还不太会通过/etc/resolv.conf修改DNS,不建议使用这种方法修改DNS。

ifconfig临时修改IP

# 需要sudo权限
# 临时修改ip
ifconfig [网卡设备名称] [ip地址] netmask [子网掩码]
# ifcogfin ens33 192.168.16.139 netmask 255.255.255.0

# 启用\关闭网卡
ifconfig [网卡名称] up
ifconfig [网卡名称] down

设置网关使用其他的命令

# 设置网关,未测试
sudo route add default gw 192.168.2.254

设置DNS详见3。

总结

  • NetworkManager: NetworkManager是一个用于管理网络连接的守护进程。它在现代Linux发行版中广泛使用,并提供图形用户界面和命令行工具来管理网络设置。它可以动态管理网络配置,包括有线、无线和VPN连接等。Ubuntu系统是默认使用NetworkManager。
  • /etc/netplan/: 这是Ubuntu 18.04及更高版本中使用的网络配置工具。Netplan允许您使用YAML格式定义网络配置,包括IP地址、网关、DNS等。Netplan会将配置转换为其他配置文件(如NetworkManager或systemd-networkd),从而应用新的网络设置。
  • /etc/network/interfaces: 这是Debian和Ubuntu等一些Linux发行版中用于配置网络接口的文件。它定义了网络接口的基本设置,例如IP地址、网关和子网掩码等。
  • ifconfig 命令通过调用系统调用以及与内核的交互来实时获取网络接口的信息。它获取到的信息是当前内核中网络接口的实时状态,而不是从配置文件中读取的静态配置信息。在Ubuntu中,使用ifconfig命令修改网卡的IP地址是临时的,不会修改任何配置文件。ifconfig命令用于动态地配置网络接口,所做的更改只会在下次系统重启时失效。

前两个都操作起来更方便。第三个修改DNS还不太会,如果单纯修改IP地址和网关还行。第四个是临时修改。

对于前三者的优先级,在配置了/etc/netplan/etc/network/interfaces的时候,系统重启后,NetworkManager好像就直接挂掉了,IP和网关是由/etc/network/interfaces设置决定,如果我再运行sudo netplan apply/etc/netplan中的配置就会生效;但系统重启后还是由/etc/network/interfaces决定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1023294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.4GHz、DA14530-00000FX2射频收发器/LSM6DSOTR 6 轴运动传感器/SKY66423-11射频前端 860MHz 至 930MHz

一、2.4GHz、DA14530-00000FX2射频收发器 IC DA14530是一款超低功耗蓝牙5.1 SoC。它集成了2.4 GHz CMOS收发器和ARMCortex-M0微控制器,具有48 kB RAM和32 kB一次性可编程(OTP)存储器。无线电收发器、基带处理器和合格的Bluetooth低功耗堆栈完…

Android13适配-Google官方照片视频选择器

官方照片选择器 图 1. 照片选择器提供了一个直观的界面,便于与您的应用分享照片。 照片选择器的界面可供浏览和搜索,并按日期降序向用户显示其媒体库中的文件。如隐私保护最佳实践 Codelab 中所示,照片选择器为用户提供了一种安全的内置授权…

代码随想录算法训练营day56|583. 两个字符串的删除操作|72. 编辑距离

583. 两个字符串的删除操作 力扣题目链接 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。 示例: 输入: “sea”, “eat” 输出: 2 解释: 第一步将"sea"变…

Android StateFlow初探

Android StateFlow初探 前言: 最近在学习StateFlow,感觉很好用,也很神奇,于是记录了一下. 1.简介: StateFlow 是一个状态容器式可观察数据流,可以向其收集器发出当前状态更新和新状态更新。还可通过其 …

【计算机毕业设计】基于SpringBoot+Vue的小区物业管理系统的设计与实现

博主主页:一季春秋博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容:毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题…

【C++面向对象侯捷】6.复习Complex类的实现过程

2.考虑数据 3.考虑函数 3.1 考虑构造函数(赋初值,初始化操作) 3.2 考虑成员函数 3.3 后面添加的,friend 友元函数 4. 考虑 成员函数 实现 5. 考虑 全局函数(非成员函数) 【这里考虑为什么不设计为成员…

第七章 查找 四、分块查找

一、给每个区间分块,再建立索引表,表内数为块内最大值 二、使用顺序查找数 先在索引表内找对应区域,在通过此索引映射到对应区间,进行顺序查找。 三、查找效率分析(ASL) 查找7时,先顺序查找索…

Java Semaphore使用例子和流程

目录 Semaphore例子代码和输出semaphore.acquire();semaphore.release(); Semaphore semaphore : 英[ˈseməfɔː(r)] 美[ˈseməfɔːr] n. 旗语; 信号标; v. 打旗语; (用其他类似的信号系统)发信号; [例句]Semaphore was widely used at sea, before the advent of electr…

坚鹏:中国邮储银行金融科技前沿技术发展与应用场景第3期培训

中国邮政储蓄银行金融科技前沿技术发展与应用场景第3期培训圆满结束 中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力,是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市,2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点…

计算机中找不到d3dcompiler47.dll怎么解决,实用解决方法推荐

d3dcompiler_47.dll是一个动态链接库文件,它是DirectX的一个组件。DirectX是一套用于处理多媒体数据的API,包括游戏和视频播放等。d3dcompiler_47.dll主要负责编译和链接顶点着色器、几何着色器和像素着色器等,以生成可执行文件。当DirectX无…

【Redis】深入探索 Redis 主从结构的创建、配置及其底层原理

文章目录 前言一、对 Redis 主从结构的认识1.1 什么是主从结构1.2 主从结构解决的问题 二、主从结构创建2.1 配置并建立从节点2.2.1 从节点配置文件2.2.2 启动并连接 Redis 主从节点2.2.3 SLAVEOF 命令2.2.4 断开主从关系 2.2 查看主从节点的信息2.2.1 INFO REPLICATION 命令2.…

2023年度教育部人文社会科学研究一般项目评审结果,已公布!

【SciencePub学术】 9月15日,教育部社科司公示了2023年度教育部人文社会科学研究一般项目评审结果,共3482项。 其中,规划基金、青年基金、自筹经费项目共3029项通过专家评审;西部和边疆地区项目200项,新疆项目20项&a…

typescript高级类型-类型兼容性

4.2类型兼容性 两种类型系统:1StructuralType System (结构化类型系统)2 NominalType System (标明类型系统)。 TS 采用的是结构化类型系统,也叫做 ducktyping (鸭子类型…?什么???你不明白什么叫鸭子类型? 伟大的鲁迅先生说过如果一个东西,看起来是鸭子,叫起来…

如何下载安装 SAP HANA Studio

什么是SAP HANA Studio SAP HANA Studio 是一个基于 Eclipse 的集成开发环境(IDE),用于以 GUI 工具的形式开发和管理 SAP HANA 数据库。 SAP HANA Studio 在客户端/开发人员计算机上运行,​​并连接到 SAP HANA 服务器。 SAP HA…

上位机通过Modbus转Profinet网关与CGV300变频器通讯案例

上位机通过Modbus转Profinet网关(XD-MDPN100)与CGV300变频器通讯的案例可以实现两个不同的通信协议之间的互联互通。在这个案例中,上位机通过Modbus协议与Profinet网关进行通信,然后通过Profinet协议与CGV300变频器进行通信。 通过…

C++中的转换构造函数

在 C/C++ 中,不同的数据类型之间可以相互转换。无需用户指明如何转换的称为自动类型转换(隐式类型转换),需要用户显式地指明如何转换的称为强制类型转换。 自动类型转换示例: int a = 6;a = 7.5 + a; 编译器对 7.5 是作为 double 类型处理的,在求解表达式时,先将 a 转换…

Python Opencv实践 - 视频目标追踪MeanShift

参考资料: opencv/python标定时用到的几个函数意义_criteria opencv_是三水不是泗水的博客-CSDN博客 pythonOpenCV笔记(二十六):视频追踪(meanshift、Camshift)_cv2.meanshift_ReadyGo!!!的博客-CSDN博客…

9月19日作业

完成文本编辑器的保存工作-代码: void Widget::on_pushButton_4_clicked() {//创建保存文件对话框QString filename QFileDialog::getSaveFileName(this,"保存文件","./","All(*.*);;Text files (*.txt)");//创建一个文件对象&…

java框架-Spring-IOC

文章目录 一、组件注册包扫描组件注解0)、 ComponentScans1)、 RestController2)、 Srevice3)、 Rerpository4)、Component 导入第三方包里的组件1)、Configuration1)、Bean1)、Cond…

Vue语法--完成购物车案例

一、模版语法 1.1 插值 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析。vue将模板编译成虚拟dom,结合响应系统…