1. ubuntu18.04的netplan网络配置验证过的正确方式
注意: 《2. Ubuntu18.04下双网卡内外网设置》里面配置netplan网络的方法在我18.04lts 版本语法错误。
ubuntu18.04的网络配置
lengye7 2019-03-29 16:40:2813560 收藏 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
如下图所示
配置已经生效。
2. Ubuntu18.04下双网卡内外网设置
Ubuntu18.04下双网卡内外网设置
大橘为重之大橘已定 2019-07-01 14:21:349483 收藏 14
分类专栏: Ubuntu 文章标签: netplan 双网卡
在安装了18.04服务器版本后,要对网关进行配置,在之前默认都在/etc/network/interfaces配置文件上配置
然后习惯性的重启网络
systemctl restart network
提示无效
重启机器后,这个网卡也是没用生效,说明配置文件没有起作用。
在查询一番资料后,发现,之前那些操作是多年以来的做法。但是现在,在某些发行版上(例如 Ubuntu Linux 18.04),网络的配置与控制发生了很大的变化。不需要那个 interfaces
文件和 /etc/init.d/networking
脚本,我们现在转向使用 Netplan。Netplan 是一个在某些 Linux 发行版上配置网络连接的命令行工具。Netplan 使用 YAML 描述文件来配置网络接口,然后,通过这些描述为任何给定的呈现工具生成必要的配置选项。
cd /etc/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
上面的命令会在应用配置之前验证其是否有效。如果成功,你就会看到配置被接受。换句话说,Netplan 会尝试将新的配置应用到运行的系统上。如果新的配置失败了,Netplan 会自动地恢复到之前使用的配置。成功后,新的配置就会被使用。
如果对配置完全没问题了,可以直接使用 应用新配置的命令
sudo netplan apply
通过ifconfig命令可以查看网卡是否获取到IP
网卡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这样,没有网关并不会影响通信。于是进配置文件修改
如下
删除了enp1s0的gateway.这里要删除整行,不能就删除网关ip,不然重启服务后,会提示你网关所在的行数里缺少参数,需要填入IP地址。
修改完配置文件后,重启网络
sudo netplan apply
查看路由表
sudo route -n
完美。各自Ping通了内外网。
配置成品见 /o/root/work/
暂无评论内容