Ubuntu修改静态IP、网关和DNS的方法总结
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: 2ethernets:ens33:dhcp4: noaddresses: [192.168.16.136/24]gateway4: 192.168.16.2nameservers:addresses: [192.168.16.2][网卡2的设备名称]: dhcp4: noaddresses: [192.168.16.145/24]gateway4: 192.168.16.2nameservers: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: truedhcp4: falseaddresses: [192.168.31.85/24]optional: trueroutes:- to: defaultvia: 192.168.31.1nameservers: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一般还提供nmcil和nmtui的命令,可以通过终端来修改。
- 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决定。
相关文章:
Ubuntu修改静态IP、网关和DNS的方法总结
Ubuntu修改静态IP、网关和DNS的方法总结 ubuntu系统(其他debian的衍生版本好像也可以)修改静态IP有以下几种方法。(搜索总结,可能也不太对) /etc/netplan (use) Ubuntu 18.04开始可以使用netplan配置网络࿰…...
Eureka服务器注册
一。Eureka服务器注册 1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://mav…...
Windows安装GPU版本的pytorch详细教程
文章目录 chatGLM2-6B安装教程正式安装 chatGLM2-6B ChatGLM2-6B版本要装pytorch2.0,而且要2.0.1 ,因此CUDA不能用12.0 ,也不能用10.0,只能用11.x 版本。 安装教程 pip install直接下载安装 官网: https://pytorch.…...
理解Kruskal算法的前提----深入理解并查集【超简单~】
并查集的实现思路 并查集主要分为两个部分:第一部分就是需要找到点对应的祖宗节点,第二部分,是要将属于同一个集合节点的祖宗节点进行统一,也就是结合操作。 Find函数实现 // parent数组用来存储下标值所对应的父节点值 // 比如…...
Jenkins+Gitee+Docker+Ruoyi项目前后端分离部署
前言 描述:本文主要是用来记录 如何用标题上的技术,部署到云服务器上通过ip正常访问。 一、总览 1.1、Docker做的事 拉取 mysql 镜像拉取 redis 镜像拉取 jdk 镜像拉取 nginx 镜像 解释说明:前端项目的打包文件放在 nginx容器运行。后端…...
笙默考试管理系统-MyExamTest----codemirror(23)
笙默考试管理系统-MyExamTest----codemirror(23) 目录 笙默考试管理系统-MyExamTest----codemirror(23) 一、 笙默考试管理系统-MyExamTest 二、 笙默考试管理系统-MyExamTest 三、 笙默考试管理系统-MyExamTest 四、 笙…...
重学Java (一) 泛型
1. 前言 泛型编程自从 Java 5.0 中引入后已经超过15个年头了。对于现在的 Java 码农来说熟练使用泛型编程已经是家常便饭的事情了。所以本文就在不对泛型的基础使用在做说明了。 如果你还不会使用泛型的话,可以参考下面两个链接 Java 泛型详解The Java™ Tutorial…...
Docker 部署 Redis 服务
拉取最新版本的 Redis 镜像: $ sudo docker pull redis:latest在本地预先创建好 data 目录和 conf/redis.conf 文件。 使用以下命令来运行 Redis 容器: $ sudo docker run -itd --name redis --privilegedtrue -p 6379:6379 -v /home/ubuntu/docker/redis/data:/data -v /ho…...
阿里云产品试用系列-负载均衡 SLB
阿里云负载均衡(Server Load Balancer,简称SLB)是云原生时代应用高可用的基本要素。通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,消除单点故障并提升应用系统的可用性。阿里云SLB包含面向4层的网络型负载均衡NLB…...
drf 对象级权限
drf 对象级权限 Django REST Framework(DRF)提供了对象级别权限(Object-level permissions)来控制特定对象的访问权限。 简单来说:通过视图类中的self.get_object(pk)得到一个obj对象(视图对象),在与requ…...
八大排序(二)--------冒泡排序
本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…...
SmartSQL 一款开源的数据库文档管理工具
建议直接蓝奏云下载安装 蓝奏云下载:https://wwoc.lanzoum.com/b04dpvcxe 蓝奏云密码:123 项目介绍 SmartSQL 是一款方便、快捷的数据库文档查询、导出工具!从最初仅支持 数据库、CHM文档格式开始,通过不断地探索开发、集思广…...
代码随想录算法训练营第56天 | ● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 动态规划之编辑距离总结篇
文章目录 前言一、583. 两个字符串的删除操作二、72. 编辑距离三、动态规划之编辑距离总结篇总结 前言 一、583. 两个字符串的删除操作 两种思路:1.直接动态规划,求两个字符串需要删除的最小次数 2.采用子序列的和-最长公共子序列。思路一分析如下&#…...
矩阵 m * M = c
文章目录 题1题2 题1 (2023江苏领航杯-prng) 题目来源:https://dexterjie.github.io/2023/09/12/%E8%B5%9B%E9%A2%98%E5%A4%8D%E7%8E%B0/2023%E9%A2%86%E8%88%AA%E6%9D%AF/ 题目描述: (没有原数据,自己生成的数据) from Crypto.Util.number…...
Linux——IO
✅<1>主页::我的代码爱吃辣 📃<2>知识讲解:Linux——文件系统 ☂️<3>开发环境:Centos7 💬<4>前言:是不是只有C/C有文件操作呢?python,java&…...
svn(乌龟svn)和SVN-VS2022插件(visualsvn) 下载
下载地址: https://www.visualsvn.com/visualsvn/download/...
开源日报 0824 | 构建UI组件和页面的前端工作坊
Storybook 是一个用于构建 UI 组件和页面的前端工作坊,支持多种主流框架,提供丰富的插件,具有可配置性强和扩展性好的特点。 storybookjs/storybook Stars: 79.9k License: MIT Storybook 是一个用于构建 UI 组件和页面的前端工作坊&#x…...
福建三明大型工程机械3D扫描工程零件三维建模逆向抄数-CASAIM中科广电
高精度3D扫描技术已经在大型工件制造领域发挥着重要作用,可以高精度高效率实现全尺寸三维测量,本期,我们要分享的应用是大型工程机械3D扫描案例。 铣轮是深基础施工领域内工法先进、技术复杂程度高、高附加值的地连墙设备,具有成…...
使用香橙派学习 Linux的守护进程
Q:什么是守护进程 A:Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行 某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个…...
数据治理-数据仓库和商务智能
数据仓库的作用 减少数据冗余,提高信息一致性,让企业能够利用数据做出更优决策的方法,数据仓库是企业数据管理的核心。 业务驱动因素 运营支持职能、合规需求(历史数据响应)和商务智能活动(主因࿱…...
Cerebro:为AI构建持久记忆与认知能力的本地化MCP工具系统
1. 项目概述:为AI赋予持久记忆与认知能力如果你和我一样,每天都在和Claude、ChatGPT这类大语言模型打交道,那你一定遇到过这个让人头疼的问题:每次开启一个新的对话会话,AI就像得了“健忘症”,之前聊过的项…...
MCP协议实战:构建AI智能体任务管理服务器与二次开发指南
1. 项目概述:一个为AI智能体“开眼”的MCP服务器最近在折腾AI智能体(Agent)开发的朋友,估计都绕不开一个词:MCP。全称是Model Context Protocol,你可以把它理解为给大模型(比如Claude、GPT-4&am…...
移动SoC设计演进:从骁龙600/400系列看芯片战略与体验竞争
1. 从一场发布会看移动芯片的十年演进2015年2月,巴塞罗那世界移动通信大会前夕,高通的一则新闻稿在业内激起了不小的涟漪。他们宣布了全新的骁龙600和400系列移动平台,其中最引人注目的,是首次将当时ARM最新的64位Cortex-A72核心引…...
2026盘古石取证初赛(APK取证)
APK取证1.分析方俊朗phone.E01检材,筛选优质客户应用将用户查询记录存储在一个加密的本地数据库中。请问该加密数据库的文件名是什么?[答案格式:12_abc.db]题目说了这边是筛选优质客户,其实和手机取证最后一题一样的,先…...
RDMA之从userspace verbs 到kernel verbs
用户态RDMA(userspace verbs)RDMA是一种高性能网络协议,一般用在GPU集群的高速通信库,如NCCL、NVSHMEM等,这些都是用户态通信库,我们熟知的RDMA大部分都是用户态RDMA。比如,如下一个简单的RDMA程序int main() { // 1…...
从癌症研究到企业风控:用Python实战Cox比例风险模型(附完整代码与数据)
从医学到商业:Python实战Cox风险模型的企业级应用 在医疗领域,我们关心患者存活时间;在商业世界,我们关注客户生命周期。看似迥异的场景背后,都隐藏着同一个数学工具的身影——Cox比例风险模型。这个诞生于1972年的生存…...
ctf show web入门48
这是一道典型的 PHP 代码审计与命令注入(Command Injection) 绕过题。代码逻辑分析 代码的核心逻辑如下: 输入点:通过 GET 方式接收参数 c。 过滤机制:使用 preg_match 进行正则匹配,过滤了大量关键字符和命…...
别再想当然!用AD628/INA等差分放大器做单端采集,必须搞懂的共模电压计算(附Excel工具)
差分放大器单端采集实战指南:共模电压计算与设计避坑 在工业传感器接口和医疗设备信号链设计中,差分放大器常被用于单端信号采集的场景。许多工程师习惯性地认为,只要将差分放大器的负输入端接地,就能轻松实现单端转差分功能。但实…...
告别手动改包!用Fiddler的Free HTTP插件实现自动化测试(附实战配置)
构建高效HTTP流量自动化测试体系:Fiddler Free HTTP插件深度实践 在持续交付和DevOps成为主流的今天,自动化测试已成为保障软件质量不可或缺的一环。然而,许多团队在接口测试环节仍面临重复劳动:每次测试都需要手动修改请求参数、…...
构建AI长短期记忆系统:从向量检索到混合架构的工程实践
1. 项目概述:当AI开始拥有“记忆”最近在折腾一个挺有意思的东西,我把它叫做“Memory Bear”。这名字听起来有点萌,但内核其实挺硬核的。简单来说,它不是一个具体的产品,而是一套关于如何让AI系统拥有更接近人类“记忆…...
