Ubuntu 网络配置指导手册

一、前言

在这里插入图片描述

从Ubuntu 17.10 Artful开始,Netplan取代ifupdown成为默认的配置实用程序,网络管理改成 netplan 方式处理,不在再采用从/etc/network/interfaces 里固定 IP 的配置 ,配置写在 /etc/netplan/01-network-manager-all.yaml 或者类似名称的 yaml 文件里;Ubuntu 18.04发布后,Ubuntu和Debian又移除了以前的ifup/ifdown命令和/etc/network/interfaces配置文件,转而使用ip link set或者/etc/netplan/01-netcfg.yaml模板和sudo netplan apply命令实现网络管理。

Netplan 是抽象网络配置描述器的简称,是Ubuntu 17.10及更高版本中默认的网络配置工具。它是一个命令行工具,可以帮助用户轻松地配置网络接口,包括静态或动态IP地址、网关、DNS等,用于配置Linux网络。 它采用YAML格式的配置文件,这使得配置文件易于阅读和编辑,并且可以通过版本控制系统进行管理。此外,Netplan还支持基于渲染器的网络配置,这意味着它可以根据不同的网络配置需求,通过netplan命令,只需用一个 YAML文件描述每个网络接口所需配置,就可以应用该配置的生效网络,Netplan目前支持以下两种网络管理工具/引擎 :NetworkManager和Systemd-networkd,在YAML文件中通过renderer关键字进行描述,networkd和NetworkManager,但实际它并不关心底层管理工具是NetworkManager还是networkd。如果安装的是服务器版本,则默认使用networkd进行管理,并且不会安装NetworkManager和提供nmcli接口。如果安装的是桌面版本,则默认使用NetworkManager进行管理。

在这里插入图片描述

Netplan的一个主要优势是它可以帮助用户减少一些常见的网络配置问题,例如网络命名约定不一致、网络接口名称的变化等等。Ubuntu开发人员决定引入Netplan的主要原因是为了提高Ubuntu系统的网络配置体验和一致性,主要它提供了一个现代化的、易于阅读和编辑的YAML格式的配置文件,可以轻松地管理多个网络接口和配置参数,并支持多种配置引擎。使用Netplan,用户可以轻松地配置多个网络接口,并可以指定其默认路由,从而提高网络性能和安全性。Ubuntu系统可自动检测网络接口和硬件变化,并自动更新配置文件,避免了用户手动修改网络配置文件所带来的错误和不便。

附件:官方文档、网络介绍、Netplan、Netplan Design、Netplan

二、网络配置

2.1 Netplan

在这里插入图片描述

netplan从/etc/netplan/文件夹中读取YAML配置文件,并按照其中的配置更新到后端网络映射文件;在系统启动阶段早期,netplan会读取配置文件,根据“network renderer”的指定,读取/{lib,etc,run}/netplan/*.yaml,所有的都会读到,在/run目录生成好配置文件并将设备控制权交给相关后台程序(网络守护进程)。/run/netplan下的yml文件会映射到/etc/netplan,其他目录下的文件会映射到/lib/netplan下。
在这里插入图片描述

配置项说明:

network: 该标签是配置文件的根标签,表示整个网络的配置。可以在该标签下定义多个网络接口的配置,以及一些全局设置。

version: 该标签用于指定 Netplan 的版本号。目前版本为 2。

renderer: 该标签用于指定网络接口的配置方式,支持 networkd 和 NetworkManager 两种渲染器。

ethernets: 该标签用于定义以太网接口的配置。

bridges: 该标签用于定义桥接接口的配置。

vlans: 该标签用于定义 VLAN 接口的配置。

bonds: 该标签用于定义网卡绑定接口的配置。

wifis: 该标签用于定义 Wi-Fi 接口的配置。

access-points: 该标签用于定义 Wi-Fi 接口的可访问点配置。

nameservers: 该标签用于定义 DNS 解析器的配置。

routes: 该标签用于定义路由表的配置。

dhcp4 和 dhcp6: 该标签用于定义 DHCP 的配置,包括是否使用 DHCP 和 DHCP 的选项。

更多参看或执行netplan help:netplan、yaml配置说明、netplan-dbus、netplan-get、netplan-try

注:也可使用NM,再/etc/NetworkManager/NetworkManager.conf配置文件的managed = true,在重启NetworkManager服务:sudo service network-manager restart。

2.2 网络配置常用命令

在这里插入图片描述
1)网络基本信息查看

sudo ipconfig    #ip a s
#或lshw命令会提供对指定设备更详细的信息
sudo lshw -class network
sudo apt-get install netplan.io
sudo apt-get install net-tools

在这里插入图片描述
在这里插入图片描述

2)网络状态及配置参数查看

sudo ethtool eth4 //输出如下,该命令可查看到:自动写上,全双工,port,开机自唤起等属性

sudo ethtool eth4
Settings for eth4:Supported ports: [ FIBRE ]Supported link modes:   10000baseT/FullSupported pause frame use: NoSupports auto-negotiation: NoSupported FEC modes: Not reportedAdvertised link modes:  10000baseT/FullAdvertised pause frame use: NoAdvertised auto-negotiation: NoAdvertised FEC modes: Not reportedSpeed: 10000Mb/sDuplex: FullPort: FIBREPHYAD: 0Transceiver: internalAuto-negotiation: offSupports Wake-on: dWake-on: dCurrent message level: 0x00000014 (20)link ifdownLink detected: yes

3)ip地址配置

sudo ip addr add 10.1.2.5/24 dev enp0s25 #对指定网卡配置静态ip,配置后立即生效,多临时用户配置网络
ip link set dev enp0s25 up #启用网卡
ip link set dev enp0s25 down #关停网卡
ip address show dev enp0s25 #验证
sudo ip route add default via 10.1.2.1 #配置默认网关
ip route show #验证路由
ip addr flush eth0 #重置网卡配置,该命令不会清楚/etc/resolv.conf内容,
ip route add <IP段>/<掩码> via <网关> dev <网卡名> #配置静态路由,临时生效

4)网卡DHCP配置,借助于/etc/netplan/99_config.yaml配置文件来进行,如下所示,完成后sudo netplan apply生效即可。

network:version: 2renderer: networkd    #初始指定底层使用的网络管理工具,这里使用networkdethernets:enp3s0:dhcp4: true

注:如果是带有无线网络的移动设备,推荐使用NetworkManager,可以通过NetworkManager切换环境网络以及修改WiFi密码;如果是非移动的设备(或无需无线网络的虚拟机),更推荐network。

5)通过/etc/netplan/99_config.yaml进行静态ip配置:注意缩进不能用tab

network:version: 2renderer: networkdethernets:eth0:addresses:- 10.10.10.2/24routes:- to: defaultvia: 10.10.10.1nameservers:search: [mydomain, otherdomain]addresses: [10.10.10.1, 1.1.1.1]

注:Ubuntu Bionic 18.04 LTS中的netplan不理解上述指定默认路由的“to:default”语法,这时可使用旧的gateway4:10.10.10.1这种方式指定,而不是整个routes:语句块。

6)无线wifi配置在这里插入图片描述

2.3 Netplan yml配置

1)针对特定网卡自定义网卡名称:使用match字段进行筛选,set-name字段进行网卡名称设定

network:version: 2renderer: networkdethernets:eth_lan0:dhcp4: truematch:macaddress: 00:11:22:33:44:55set-name: eth_lan0

2.4 NSS:Name Service Switch

系统里将主机名解析为IP地址的方法的顺序选择由名称服务交换机(NSS)配置文件/etc/nsswitch.conf控制的。/etc/nsswitch.conf示例如下:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

三、配置示例

3.1 多网卡

在这里插入图片描述

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

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

相关文章

【事业单位-语言理解1】中心理解02

【事业单位-语言理解1】中心理解02 1.中心理解1.1 并列关系1.2 主题词1.3程度词&#xff0c;表示强调 二、标题填入题&#xff08;优先考虑主题词&#xff09;三、词句理解题 1.中心理解 解题思路 1.1 并列关系 涉及时间顺序 注意选项不要逻辑不当 并列关系的时候&…

行云创新 CloudOS 助力上汽乘用车企业云原生IT架构变革

近日&#xff0c;在2023架构可持续未来峰会成都制造业分会场上&#xff0c;上海汽车集团股份有限公司乘用车公司基础架构部主管茹洋带来了议题为《云原生时代上汽乘用车企业IT架构变革和实践》的精彩演讲。他从云原生对于企业IT架构的意义、企业IT架构变革的必要性入手&#xf…

C程序环境及预处理

​​​​​文章目录 一、程序的翻译环境和执行环境 1.程序编译过程 2.编译内部原理 3.执行环境 二、程序运行前的预处理 1.预定义符号归纳 2.define定义标识符 3.define定义宏 4.define替换规则 5.宏和函数的对比 三、头文件被包含的方式 四、练习&#xff1a;写一…

Vue3状态管理库Pinia——核心概念(Store、State、Getter、Action)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

Java将数据集合转换为PDF

这里写自定义目录标题 将数据集合转换为pdf引入包工具类测试代码导出效果 将数据集合转换为pdf 依赖itext7包将数据集合转换导出为PDF文件 引入包 <properties><itext.version>7.1.11</itext.version> </properties><dependency><groupId&…

什么是HTTP 500错误,怎么解决

目录 什么是HTTP 500 HTTP 500错误的常见原因&#xff1a; 如何修复HTTP 500 总结 什么是HTTP 500 错误 HTTP 500内部服务器错误是指在客户端发出请求后&#xff0c;服务器在处理请求过程中发生了未知的问题&#xff0c;导致服务器无法完成请求。HTTP 500错误是一个通用的服…

Spring-缓存初步认识

Spring-缓存 简单介绍 缓存是一种介于数据永久存储介质和数据应用之间的数据临时存储介质缓存有效提高读取速度&#xff0c;加速查询效率 spring使用缓存方式 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

每日一题——反转链表

题目 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链表的表头。 数据范围&#xff1a;0≤n≤1000 要求&#xff1a;空间复杂度 O(1) &#xff0c;时间复杂度 O…

Python实战项目——旅游数据分析(四)

由于有之前的项目&#xff0c;所以今天我们直接开始&#xff0c;不做需求分析&#xff0c;还不会需求分析的可以看我之前的文章。Python实战项目——用户消费行为数据分析&#xff08;三&#xff09; 导入库 import numpy as np import pandas as pd import matplotlib.pyplo…

PHP后台登录功能单账号登录限制

PHP后台登录功能单账号登录限制 单账号登陆是什么第一步创建数据表第二步创建登录页面test2.html第三步创建登录提交test2.php第四步访问后台首页第五步演示 单账号登陆是什么 一个用户只能登录一个账号通常被称为单账号登录限制或单用户单账号限制。这意味着每个用户只能使用…

Linux 学习记录53(ARM篇)

Linux 学习记录53(ARM篇) 本文目录 Linux 学习记录53(ARM篇)一、内存读写指令1. 在C语言中读取内存2. 指令码及功能3. 格式4. 使用示例5. 寻址方式(1. 前索引方式(2. 后索引方式(3. 自动索引 6.批量寄存器操作指令(1. 操作码(2. 格式(3. 使用示例(4. 地址增长方式>1 ia后缀&…

========Java基础——小结1========

一、Java 两大版本 Java 主要分为两个版本: Java SE 和Java EE。 Java SE 全称Java Platform Standard Edition&#xff0c;是 Java 的标准版&#xff0c;主要用于桌面应用程序开发&#xff0c;它包含了 Java 语言基础、JDBC (Java 数据库连接)、I/O (输入/输出)、TCP/IP 网络…

股票基金入门知识

1.开盘价和收盘价如何产生 时间9:30-11:30 13:00-15:00 集合竞价时间段&#xff1a;9:15-9:25 以此产生开盘价 最后集中竞价时间段&#xff1a;深市14:57-15:00 &#xff0c;以此产生收盘价。 沪市则采用最后一分钟加权得出收盘价影响股价的因素 市场投资情绪&#xff0c;宏观…

Hadoop——DataGrip连接MySQL|Hive

1、下载 DataGrip下载&#xff1a;DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains 2、破解 破解链接&#xff1a;https://www.cnblogs.com/xiaohuhu/p/17218430.html 3、启动环境 启动Hadoop&#xff1a;到Hadoop的sbin目录下右键管理员身份运行…

【C++】list 模拟笔记

文章目录 list定义结点类&#xff08;list_node&#xff09;为什么封装迭代器为类 &#xff1f;库里面模板多参数的由来 &#xff1f;为什么普通迭代器不能隐式类型转换成const迭代器&#xff1f;迭代器位置指向及其返回值和整体代码 list list 和前面学习的 string 和 vector …

微信小程序使用ECharts的示例详解

目录 安装 ECharts 组件使用 ECharts 组件图表延迟加载 echarts-for-weixin 是 ECharts 官方维护的一个开源项目&#xff0c;提供了一个微信小程序组件&#xff08;Component&#xff09;&#xff0c;我们可以通过这个组件在微信小程序中使用 ECharts 绘制图表。 echarts-fo…

excel中单行换成多行

今天碰以下情况&#xff1a; 这在excel表中是在一个单元格&#xff0c;现在需要对其进行转换&#xff0c;将一个单元格换成多行 步骤&#xff1a; 1.删除换行符&#xff0c;添加一个逗号 2.选择数据-分列-分隔字符-逗号-确定 3.复制上述数据&#xff0c;选择性粘贴-转置 完…

2816. 判断子序列

题目链接&#xff1a; 自己的做法&#xff1a; #include <bits/stdc.h>using namespace std;const int N 1e5 10; int a[N], b[N]; int main() {int n, m;bool flag true;scanf("%d%d", &n, &m);for (int i 0; i < n; i) scanf("%d"…

哈希:探索快速的数据存储和搜索方法

哈希&#xff1a;探索快速的数据存储和搜索方法 哈希表作为一种高效的数据存储结构&#xff0c;可以使数据的存储位置与关键码之间建立一一映射的关系&#xff0c;从而加快元素的搜索速度。然而&#xff0c;哈希方法也面临着哈希冲突的问题&#xff0c;即不同的关键字通过相同…