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/Full
    Supported pause frame use: No
    Supports auto-negotiation: No
    Supported FEC modes: Not reported
    Advertised link modes:  10000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: No
    Advertised FEC modes: Not reported
    Speed: 10000Mb/s
    Duplex: Full
    Port: FIBRE
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: off
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000014 (20)
                   link ifdown
    Link 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: 2
  renderer: networkd    #初始指定底层使用的网络管理工具,这里使用networkd
  ethernets:
    enp3s0:
      dhcp4: true

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

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

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 10.10.10.2/24
      routes:
        - to: default
          via: 10.10.10.1
      nameservers:
          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: 2
  renderer: networkd
  ethernets:
    eth_lan0:
      dhcp4: true
      match:
        macaddress: 00:11:22:33:44:55
      set-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.mfbz.cn/a/43662.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文本预处理——文本处理的基本方法

目录 什么是分词jieba分词特性精确模式分词全模式分词搜索引擎模式分词使用用户自定义词典 命名实体识别词性标注 什么是分词 jieba分词特性 精确模式分词 import jieba content工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作 print(jieba.lcut(co…

一文了解Python中的while循环语句

目录 &#x1f969;循环语句是什么 &#x1f969;while循环 &#x1f969;遍历猜数字 &#x1f969;while循环嵌套 &#x1f969;while循环嵌套案例 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;专栏地址&#xff1a;Python从入门到精通专栏 循环语句是什…

SpringBoot创建和使用

1.Spring Boot的优点 快速集成框架&#xff0c;Spring Boot提供了启动添加依赖的功能&#xff0c;用于秒级成各种框架。内置运行容器&#xff0c;无需配备Tomcat等Web容器&#xff0c;直接运行和部署程序。快速部署项目&#xff0c;无需外部容器即可启动并运行项目。可以完全抛…

概率论和随机过程的学习和整理--番外15,如何计算N合1的合成数量问题?

目录 1 目标问题&#xff1a;多阶2合1的合成问题 1.1 原始问题 1.2 合成问题要注意&#xff0c;合成的数量 1.3 合成问题不能用马尔科夫链来解决 2 方案1&#xff1a;用合成公式合成多次能解决吗&#xff1f; --不能&#xff0c;解决不了递归的问题 3 方案2&#xff0c;…

idea2021.安装pojie教程

1、下载ideaIU-2021.3应用包&#xff0c;点击finish 2、先关闭idea窗口&#xff0c;等会激活了脚本再运行打开。 3、双击运行install-current-user.vbs&#xff0c;等待一会会提示运行成功。 4、运行后&#xff0c;在文件中会多出一条配置 5、打开运行idea,输入激活码&#x…

如何使用curl下载github代码

首先通过chrome打开想要下载的源文件 如图&#xff0c;有那个下载图标时表示不需要鉴权即可下载&#xff0c;一般仓库都会开放只读权限&#xff0c;所以很大概率都有 比如我想下载这个crc32.c文件 那么我就需要知道它在哪个IP中&#xff0c;按下F12打开网络&#xff0c;点击下载…

pytorch安装GPU版本 (Cuda12.1)教程

使用本教程前&#xff0c;默认您已经安装并配置好了python3以上版本 1. 去官网下载匹配的Cuda Cuda下载地址 当前最高版本的Cuda是12.1 我安装的就是这个版本 小提示&#xff1a;自定义安装可以只选择安装Cuda Runtime。Nvidia全家桶不必全部安装。把全家桶全部安装完直接系统…

ChatGPT助力校招----面试问题分享(十二)

1 ChatGPT每日一题&#xff1a;运算放大器与比较器的区别 问题&#xff1a;运算放大器与比较器的区别 ChatGPT&#xff1a;运算放大器和比较器都是电子电路中常用的模拟电路元件&#xff0c;但它们的设计和应用略有不同。下面是两者的主要区别&#xff1a; 功能不同&#xf…

Java集合之List

ArrayLsit集合 ArrayList集合的特点 ArrayList集合的一些方法 ①.add(Object element) 向列表的尾部添加指定的元素。 ②.size() 返回列表中的元素个数。 ③.get(int index) 返回列表中指定位置的元素&#xff0c;index从0开始。 public class Test {public static void m…

【Vue】day03-VueCli(脚手架)

day03 一、今日目标 1.生命周期 生命周期介绍 生命周期的四个阶段 生命周期钩子 声明周期案例 2.综合案例-小黑记账清单 列表渲染 添加/删除 饼图渲染 3.工程化开发入门 工程化开发和脚手架 项目运行流程 组件化 组件注册 4.综合案例-小兔仙首页 拆分模块-局部…

有名管道(FIFO)的学习笔记

文章目录 有名管道介绍有名管道的使用创建 注意事项 有名管道介绍 有名管道的使用 创建 命令&#xff0c; mkfifo name函数&#xff0c;int mkfifo(const char *pathname, mode_t mode); 设置错误号&#xff1b; 向管道中写数据&#x1f447;&#xff1a; 从管道读数据&am…

前端Web实战:从零打造一个类Visio的流程图拓扑图绘图工具

前言 大家好&#xff0c;本系列从Web前端实战的角度&#xff0c;给大家分享介绍如何从零打造一个自己专属的绘图工具&#xff0c;实现流程图、拓扑图、脑图等类Visio的绘图工具。 你将收获 免费好用、专属自己的绘图工具前端项目实战学习如何从0搭建一个前端项目等基础框架项…

log4j--动态打印日志文件到指定文件夹

文章目录 log4j--动态打印日志文件到指定文件夹1、添加Maven依赖2、配置文件 log4j.properties3、编写日志打印工具类 LogUtil4、工具类调用 log4j–动态打印日志文件到指定文件夹 1、添加Maven依赖 <!-- log4j日志相关坐标 --><dependency><groupId>org.s…

API Testing 一个基于 YAML 文件的开源接口测试工具

目录 前言&#xff1a; 如何使用&#xff1f; 本地模式 服务端模式 文件格式 后续计划 前言&#xff1a; API Testing 是一个基于 YAML 文件的开源接口测试工具&#xff0c;它可以帮助开发者快速地进行接口测试。 在选择工具时&#xff0c;可以从很多方面进行考量、对比…

【Matlab】基于遗传算法优化 BP 神经网络的数据回归预测(Excel可直接替换数据)

【Matlab】基于遗传算法优化 BP 神经网络的数据回归预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.文件结构3.Excel数据4.分块代码4.1 arithXover.m4.2 delta.m4.3 ga.m4.4 gabpEval.m4.5 initializega.m4.6 maxGenTerm.m4.7 nonUnifMutation.m4.8 normGeomSel…

Pytorch:利用torchvision调用各种网络的预训练模型,完成CIFAR10数据集的各种分类任务

2023.7.19 cifar10百科&#xff1a; [ 数据集 ] CIFAR-10 数据集介绍_cifar10_Horizon Max的博客-CSDN博客 torchvision各种预训练模型的调用方法&#xff1a; pytorch最全预训练模型下载与调用_pytorch预训练模型下载_Jorbol的博客-CSDN博客 CIFAR10数据集下载并转换为图片&am…

vue中export和export default的使用

<script> export default {name: HelloWorld } $(function () {alert(引入成功) }) </script> 1、export的使用 比喻index.js要使用test.js中的数据&#xff0c;首先在test.js文件中进行导出操作 代码如下&#xff1a; export function list() {alert("list…

【表达式引擎】简单高效的轻量级Java表达式引擎:Aviator

简单高效的轻量级表达式引擎&#xff1a;Aviator 前言 Aviator 是一个高性能、、轻量级的表达式引擎&#xff0c;支持表达式动态求值。其设计目标为轻量级和高性能&#xff0c;相比于 Groovy 和 JRuby 的笨重&#xff0c;Aviator 就显得更加的小巧。与其他的轻量级表达式引擎不…

Python实战项目——物流行业数据分析(二)

今天我们对物流行业数据进行简单分析&#xff0c;数据来源&#xff1a;某企业销售的6种商品所对应的送货及用户反馈数据 解决问题&#xff1a; 1、配送服务是否存在问题 2、是否存在尚有潜力的销售区域 3、商品是否存在质量问题 分析过程&#xff1a; 依旧先进行数据处理 一…

【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比

【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比 一、数据介绍 基于UCI葡萄酒数据集进行葡萄酒分类及产地预测 共包含178组样本数据&#xff0c;来源于三个葡萄酒产地&#xff0c;每组数据包含产地标签及13种化学元素含量&#xff0c;即已知类…
最新文章