一、方式一:

Netplan 已在在 Ubuntu 18.04 系统中用来管理网络,它是一款是一个用于配置 Linux 网络的简单工具。 通过 Netplan ,只需用一个 YAML 文件就可描述每个网络接口需要配置。 Netplan 从 /etc/netplan/*.yaml 读取配置。根据这个配置描述, Netplan 会更新相关网络配置,而无需关心底层的网络管理工具是啥。Netplan 目前支持两种 网络管理工具 :NetworkManager和Systemd-networkd。

参考: https://netplan.io/faq/#use-pre-up-post-up-etc-hook-scripts

https://netplan.io/examples#reaching-a-directly-connected-gateway

https://netplan.io/reference#routing

https://www.digitalocean.com/community/tutorials/how-to-use-iproute2-tools-to-manage-network-configuration-on-a-linux-vps#how-to-configure-network-interfaces-and-addresses

https://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html

在Ubuntu 18.04中修改了IP地址配置程序, Ubuntu和Debian的删除了以前的ifup/ifdown命令和/etc/network/interfaces配置文件, 改为使用/etc/netplan/01-netcfg.yaml和sudo netplay apply命令管理IP地址。

下图是Netplan的工作原理:

Netplan 会从 /etc/netplan/*.yaml 读取网络配置,这些配置由管理员、安装人员、云映像实例化或其他操作系统部署编写。在早期启动期间,Netplan 在 /run 中生成后端特定的配置文件,以将设备的控制权移交给特定的网络守护程序。我们只需创建所需网络接口的 YAML 描述以及每个接口应配置为做什么。根据此描述,Netplan 将选择合适的渲染器(renderer)工具生成所有必要的网络配置。DHCP网络配置一般用NetworkManager renderer,因networkd 作为渲染器时不会让网络设备使用 DHCP 自动启动;每个接口都需要在 /etc/netplan 中的文件中指定,networkd 才能使用这些配置生效。

要在 Ubuntu 18.04 服务器上配置静态 IP 地址,需要修改 /etc/netplan/ 目录中的相关 netplan 网络配置文件。该目录下,会发现有一个名为 01-netcfg.yaml 或 50-cloud-init.yaml 的默认 netplan 配置文件,其中包含以下内容,指示 networkd 守护进程通过 DHCP 配置您的网络接口;必须为块的每一行保证正确的字段缩进。换句话说,每行的前缀空格数很重要。否则,可能会收到类似于以下内容的错误消息:Invalid YAML at //etc/netplan/01-netcfg.yaml line 7 column 6: did not find expected key。

ip link set 命令替代了 ifup 和 ifdown。

/etc/netplan/config.yaml/netpaln-*.yaml示例文件:


# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:ethernets:eno1:addresses: [192.168.1.113/24]dhcp4: falsedhcp6: falseoptional: truegateway4: 192.168.1.1  ##默认路由的网关地址nameservers:addresses: [8.8.8.8,8.8.4.4]eno2:addresses: [100.100.100.10/24]dhcp4: falseoptional: trueeno5:addresses: []dhcp4: trueoptional: trueeno6:addresses: [10.0.0.10/24]dhcp4: falseoptional: truenameservers:addresses: [8.8.8.8,8.8.4.4]version: 2

现场截图:环境:Ubuntu 18.04 LTS 配置文件:/etc/netplan/01-netcfg.yaml

【路由配置示例】:

eth0:[...]routes:- to: default # could be 0/0 or 0.0.0.0/0 optionallyvia: 10.0.0.1metric: 100on-link: true- to: default # could be ::/0 optionallyvia: cf02:de:ad:be:ef::2
eth1:[...]routes:  ##路由块定义接口的标准静态路由。至少必须指定 to 和 via。- to: default   ##格式:addr/prefixlen 或 addrvia: 172.134.67.1metric: 100on-link: true  ##指定路由直连到设备eth1table: 76 # Not on the main routing table, does not conflict with the eth0 default route,某些值用于特定的路由表,查看/etc/iproute2/rt_tables确认type:... ## 指定:“global”, “link”, or “host”

现场实际:


修改后:

在应用改变之前,让我们测试一下配置。执行命令:sudo netplan try(它会在应用配置之前验证其是否有效。如果成功,你就会看到配置被接受)

确认后执行应用:sudo netplan apply //应用前切记备份,实际验证应用执行后,路由表与之前手动添加的一致。

删除:ip address del \<address> dev \<interface>.语法检查:sudo netplan generate   //以 /etc/netplan 配置为管理工具生成配置;调试命令:$ sudo netplan --debug applynetworkctl :可查看输出网络设备的摘要
networkctl status   //查看系统上每个 IP 地址的状态
netplan apply  //应用yaml中指定渲染器的所有配置,必要时重新启动它们
netplan try     //应用配置并等待用户确认;如果配置使网络损坏或未给出确认,将回滚ip -s link show eth0   //查看接口统计//配置文件路径:/run/netplan/*.yaml
/etc/netplan/*.yaml
/lib/netplan/*.yaml启停网卡:
ip link set enp3s0 up
ip link set enp3s0 down重启网络配置:sudo /etc/init.d/networking restart

临时解决: 在启动文件/etc/rc.local里加入路由添加命令

二、方式2

Debian系的网卡配置跟Redhat系很不一样,Redhat是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面。而Debian系的网卡配置则是存在/etc/network/interfaces这个文件里面,而且不管你有多少块网卡,系统都把配置统统放在这个文件里。

以下是ubuntu的一个网络配置文件示例:

auto lo  ##auto自动配置
iface lo inet loopback  ##lo为一个本地回环(loopback)地址,分别设置了v4和v6两个 loopback;
iface lo inet6 loopback
auto eth0
iface eth0 inet staticaddress 192.168.2.1network 192.168.2.0netmask 255.255.255.0broadcast 192.168.2.255up route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.2 dev eth0  ##接口启用时,添加静态路由down route del -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.2 dev eth0  ##接口禁用时,删掉路由配置up route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.2.2 dev eth0down route del -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.2.2 dev eth0
iface eth0 inet6 staticaddress 2000:2::1netmask 64up route -A inet6 add 2000:3::/64 gw 2000:2::2up route -A inet6 add 2000:4::/64 gw 2000:2::2down route -A inet6 del 2000:3::/64 gw 2000:2::2down route -A inet6 del 2000:4::/64 gw 2000:2::2
auto eth1
iface eth1 inet dhcp

2)路由转发:

编辑:/etc/sysctl.conf,修改:

net.ipv4.ip_forward=1
net.ipv6.default.ip_forward=1

生效执行:sysctl -p /etc/sysctl.conf

三、附录:手动配置静态路由

添加到主机的路由# route add -host 192.168.1.123 dev eth0# route add -host 192.168.1.123 gw 192.168.1.1添加到网络的路由# route add -net 192.168.1.123 netmask 255.255.255.0 eth0# route add -net 192.168.1.123 netmask 255.255.255.0 gw 192.168.1.1# route add -net 192.168.1.123 netmask 255.255.255.0 gw 192.168.1.1 eth1# route add -net 192.168.1.0/24 eth1添加默认网关# route add default gw 192.168.1.1删除路由# route del -host 192.168.1.11 dev eth0# route del -net 192.168.1.123 netmask 255.255.255.0

四、附录2:Ubuntu 20.04添加永久路由

vim /etc/netplan/network_manager.yaml

network:version: 2renderer: NetworkManagerethernets:eth0:dhcp4: truedhcp6: trueeth1:dhcp4: truedhcp6: trueeth2:addresses:- 172.16.18.3/24gataway4: 172.16.18.254routes: - to: 10.0.100.0/24via: 172.16.18.254nameservers:addresses: []search: []

完成后执行:netplan try ,检查配置文件正确性,不要按enter键,随后执行netplan apply,如果未生效,一般是当前网络受interface影响,可删除或重命令/etc/network/interface,然后再netpaln apply


如果出现网卡ip信息未显示的情况,执行:sudo dhclient -v

当然我们也可以按照示例2:网卡配置静态地址

network:version: 2renderer: NetworkManagerethernets:ens33:dhcp4: noaddresses: [192.168.126.128/24]gateway4: 192.168.72.2nameservers:addresses: [8.8.8.8,8.8.4.4]

Ubuntu 18.04 LTS 永久路由配置指导相关推荐

  1. Ubuntu 18.04 LTS \n \l 配置网卡IP

    一定要按照 格式来,不然各种报错,  : 回车 进行第二行配置, 1,修改 配置文件 : sudo vim /etc/netplan/50-cloud-init.yaml network: versi ...

  2. 如何在 Ubuntu 18.04 LTS 中配置 IP 地址?

    在 Ubuntu 18.04 LTS 上配置 IP 地址的方法与旧方法有很大不同,与以前的版本不同,Ubuntu 18.04 使用Netplan实用程序,它是一个新的命令行网络配置实用程序,用于配置 ...

  3. 无头虚拟化服务器,在 Ubuntu 18.04 LTS 上使用 KVM 配置无头虚拟化服务器

    我们已经讲解了 在 Ubuntu 18.04 无头服务器上配置 Oracle VirtualBox .在本教程中,我们将讨论如何使用 KVM 去配置无头虚拟化服务器,以及如何从一个远程客户端去管理访客 ...

  4. ubuntu18的网关ip在哪里配_技术|如何在 Ubuntu 18.04 LTS 中配置 IP 地址

    在 Ubuntu 18.04 LTS 中配置 IP 地址的方法和以往使用的配置方法有很大的不同.和旧版本的不同之处在于,Ubuntu 18.04 使用 Netplan 来配置 IP 地址,Netpla ...

  5. 如何在Ubuntu 18.04 LTS上安装VMware Workstation

    背景: 阅读新闻 [日期:2018-11-10] 来源:Linux公社 作者:醉落红尘 [字体:大 中 小] VMware Workstation是由VMware公司开发的虚拟化软件,成立于1998年 ...

  6. Ubuntu 18.04 LTS (Bionic Beaver) 已经发布附官网下载链接

    Ubuntu 18.04 LTS (Bionic Beaver) 即将发布,最新资讯链接. 下载并使用Ubuntu 18.04 LTS:https://www.ubuntu.com/download/ ...

  7. 树莓派4B+Ubuntu 18.04 LTS + 桌面desktop + ros安装@树莓派4B、Ubuntu、desktop、ros

    树莓派4B+Ubuntu 18.04 LTS + 桌面desktop + ros安装@树莓派4B.Ubuntu.desktop.ros 久违的一篇博客,说实话CSDN的编辑器还是用不太习惯,记录一下树 ...

  8. 台式机下成功在windows10的基础上安装Ubuntu 18.04 LTS 系统(详细教程)

    台式机成功在windows10的基础上安装Ubuntu 18.04 LTS 系统 1 前言 因为工作缘故经常需要使用windows和ubuntu两个不同的计算机系统,因此想把实验室的台式机安装成双系统 ...

  9. linux如何调整文本大小,如何在Ubuntu 18.04 LTS中更改文本大小

    在使用Ubuntu系统时,如果您在阅读屏幕上的文本时遇到困难,可以根据您的视力要求通过多种方法对其进行修复. 在本文中,我们将介绍三种在Ubuntu中更改屏幕文本大小的方法. 我们已经在Ubuntu ...

最新文章

  1. USNews 2020美国大学排名公布:UCLA超越伯克利;计算机专业MIT第一,斯坦福跌出前四...
  2. leetcode算法题--二叉树中和为某一值的路径
  3. MooTools Class 使用、继承详解
  4. oracle中的mount是什么意思,oraclenomountmountopen直接的关系
  5. ubuntu16.4下用jexus部署asp.net core rtm
  6. 简易贪吃蛇c语言贴吧,熬书几个月,终于编出简易的贪吃蛇了,VS2013
  7. 使用Java Swing实现简单计算器
  8. Intellij Idea下tomcat设置自动编译
  9. android的子菜单是否支持嵌套,Android的两种菜单
  10. 微信投票python脚本_微信投票python脚本
  11. 监狱人员定位管理,提升智慧监狱信息化水平
  12. MySQL卸载不干净-MySQL Connector Net xxx文件怎么也删除不了?一招解决它
  13. 多啦a梦的python代码_80行代码!用Python做一个哆来A梦分身
  14. u盘无法格式化不在计算机中,在电脑中,为什么U盘不能格式化?
  15. 人脸识别中的活体检测
  16. 捏着鼻子也要吃? 吃蔬菜几大误区盘点
  17. 台式计算机密码忘了怎么办,台式机开机密码忘了怎么办
  18. 马云、张小龙、雷军缅怀金庸:江湖路远,侠义长存!
  19. 基于GNN网络的session推荐模型(知识图谱技术在推荐场景的应用)
  20. react二级路由配置正确不显示页面的问题解决

热门文章

  1. 《大象Thinking in UML》学习笔记(一)
  2. 对国际经济环境和中国处境的分析
  3. Oracle变量定义的方法
  4. mysql授权用户多个数据库_MySQL创建用户授权数据库
  5. linux c ntohs, ntohl, htons,htonl 网络字节序转换函数
  6. matlab实现srt,SRT计划项目申请书提交版.doc
  7. 能谱CT图像重建算法
  8. J2EE项目部署与发布
  9. 判断一个数值是否为正数、负数、零、整数。
  10. 考取CISP-DSG证书的必要性!