ubuntu18.04的netplan网络配置&双网卡设置教程

1. ubuntu18.04的netplan网络配置验证过的正确方式

注意: 《2. Ubuntu18.04下双网卡内外网设置》里面配置netplan网络的方法在我18.04lts 版本语法错误。

ubuntu18.04的网络配置

图片[1]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

lengye7 2019-03-29 16:40:28图片[2]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了13560 图片[3]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了收藏 18

分类专栏: linux

版权

ubuntu18.04TLS与ubuntu16.04TLS的网络配置有所改动

ubuntu16.04TLS的网络配置文件为/etc/network/interfaces,我们通过在该文件中写入配置对网卡进行IP设置。并且然后通过网卡的重启来加载该配置。

 

但是在ubuntu18.04TLS中,其引入了一个新的工具netplan来进行网络设备的管理,对其进行设置。

netplan的配置文件位于/etc/netplan文件夹下面。

一、查看/etc/netplan下面的文件,如果没有*.yaml后缀的文件,就运行如下命令创建一个(netplan会读取该目录下所有该后缀的文件):

sudo netplan generate 

我的系统中是01-network-manager-all.yaml

二、打开01-network-manager-all.yaml这个文件,写入如下配置:

1# Let NetworkManager manage all devices on this system2network:3  version: 24  renderer: NetworkManager5  ethernets:6     ens33: #配置的网卡名称,使用ifconfig -a查看得到,且必须是空格缩进,netplan只认空格7       dhcp4: no #no-dhcp4开启 true-dhcp4开启8       dhcp6: true #true-dhcp6开启 no-dhcp6关闭9       addresses: [192.168.2.110/24, ] #设置本机IP及掩码,这个逗号和空格好像不能少,少了就不生效,后面的空格之后可以写入IPv6的地址,从而变成这样[192.168.2.110/24, "2001:1::1/64"]10       gateway4: 192.168.2.1 #设置ipv4的默认网关11       gateway6: 2001:1::1 #设置ipv6的默认网关12       13       nameservers:  #设置DNS服务器14         addresses: [8.8.8.8,8.8.8.4]  #多个DNS服务器之间用逗号隔开

三、通过netplan更新配置

sudo netplan apply

四、通过ifconfig查看配置是否生效

ifconfig

如下图所示

图片[4]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

配置已经生效。

 

2. Ubuntu18.04下双网卡内外网设置

Ubuntu18.04下双网卡内外网设置

图片[1]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

大橘为重之大橘已定 2019-07-01 14:21:34图片[2]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了9483 图片[3]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了收藏 14

分类专栏: Ubuntu 文章标签: netplan 双网卡

版权

在安装了18.04服务器版本后,要对网关进行配置,在之前默认都在/etc/network/interfaces配置文件上配置

图片[8]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

然后习惯性的重启网络

systemctl restart network

提示无效

图片[9]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

重启机器后,这个网卡也是没用生效,说明配置文件没有起作用。

在查询一番资料后,发现,之前那些操作是多年以来的做法。但是现在,在某些发行版上(例如 Ubuntu Linux 18.04),网络的配置与控制发生了很大的变化。不需要那个 interfaces 文件和 /etc/init.d/networking 脚本,我们现在转向使用 Netplan。Netplan 是一个在某些 Linux 发行版上配置网络连接的命令行工具。Netplan 使用 YAML 描述文件来配置网络接口,然后,通过这些描述为任何给定的呈现工具生成必要的配置选项。

cd /etc/netplan 进入文件夹

图片[10]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

打开yaml文件

vim /etc/netplan/50-cloud-init.yaml

文件的布局看起来就像这样:

1network:2    Version: 23    Renderer: networkd4    ethernets:5       DEVICE_NAME:6          Dhcp4: yes/no7          Addresses: [IP/NETMASK]8          Gateway: GATEWAY9          Nameservers:10             Addresses: [NAMESERVER, NAMESERVER]

 

主要是配置ethernets里的参数:

  • DEVICE_NAME 是需要配置设备的实际名称。
  • Dhcp4: yes no 代表IPv4是否启用 dhcp 对应的IPv6 就是Dhcp6:yes no
  • Addresses 是设备的 IP 地址。
  • NETMASK 是 IP 地址的掩码。
  • GATEWAY 是网关的地址。
  • NAMESERVER 是由逗号分开的 DNS 服务器列表。

例如以下这样的配置

 

1network:2    version: 23    renderer: networkd4    ethernets:5       enp1s0:6       dhcp4: no7       addresses: [192.168.1.230/24]8       gateway: 192.168.1.2549       nameservers:10          addresses: [8.8.4.4,8.8.8.8]

配置完后,可以使用测试命令看配置是否成功

sudo netplan try 

图片[11]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

上面的命令会在应用配置之前验证其是否有效。如果成功,你就会看到配置被接受。换句话说,Netplan 会尝试将新的配置应用到运行的系统上。如果新的配置失败了,Netplan 会自动地恢复到之前使用的配置。成功后,新的配置就会被使用。

如果对配置完全没问题了,可以直接使用 应用新配置的命令

sudo netplan apply

通过ifconfig命令可以查看网卡是否获取到IP

图片[12]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

网卡1是我们设置的静态固定ip,连接30网段的内网,网卡2是我们设置的DHCP ,连接0网段的可通外网。

互相ping了30网段的机器和0网段的机器,都是显示通讯正常。

但是笔者的笔记本接入的是无线网的2网段,发现ping不通网卡2的192.168.0.70。但是笔记本能Ping通0网段的网关,网卡2也可以Ping通2网段的网关。于是就思考,是否是系统的路由转发有问题了

sudo route -n

 出现以下的信息 

1Kernel IP routing table2Destination     Gateway         Genmask         Flags Metric Ref    Use Iface30.0.0.0         192.169.30.254  0.0.0.0         UG    100    0        0 enp1s040.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 enp2s0510.64.64.64     0.0.0.0         255.255.255.255 UH    0      0        0 ppp06192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 enp2s07192.168.0.254   0.0.0.0         255.255.255.255 UH    100    0        0 enp2s08192.168.30.0    0.0.0.0         255.255.255.0   U     0      0        0 enp1s0

发现有两条默认路由,0.0.0.0 都指向了两个不同的网卡出口和默认网关。对于指向30.254的这条默认网关是没用的

执行

sudo route del default gw 192.168.30.254

现在从笔记本就可以远程连接0.70设备了。

本以为这样就解决问题了,连接完设备,把文件部署好后,重启下系统,发现又连接不上了

再次登陆设备检查,发现路由表中已删除的默认路由又出现了,也就是说route del只是临时删除,重启设备或者类似netplan apply 重启服务的操作都会让默认路由重新生成。在又一番查找资料后,发现,默认路由是根据你网关配置自动生成的,那我在网卡1中不设置网关,30网段的通信都是指向型的通信,都是内网固定IP这样,没有网关并不会影响通信。于是进配置文件修改

如下

 图片[13]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了

删除了enp1s0的gateway.这里要删除整行,不能就删除网关ip,不然重启服务后,会提示你网关所在的行数里缺少参数,需要填入IP地址。

修改完配置文件后,重启网络

sudo netplan apply

查看路由表

sudo route -n

图片[14]-ubuntu18.04的netplan网络配置&双网卡设置教程-今天我都干啥了 

完美。各自Ping通了内外网。 

 

 

 

 

配置成品见 /o/root/work/

© 版权声明
THE END
在时间中留下我的脚印
分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情图片