问题描述及背景
使用服务器的时候,希望可以使用两张网卡分别连接内外网。
本文中将主要介绍使用Netplan
的方法配置两张内外网网卡,以及设置路由。
解决办法
首先使用ip a
查看网络状态。以确定连接内网的网卡和连接外网的网卡。
此处,连接内网的网卡是enp3s0
,连接外网的网卡是enp7s0
。
然后配置Netplan
打开
Netplan
配置文件1
sudo nano /etc/netplan/*.yaml
添加配置信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29# Let NetworkManager manage all devices on this system
network:
version: 2
# renderer: NetworkManager # 注释1
ethernets:
enp7s0:
dhcp4: true
optional: true
dhcp4-overrides:
route-metric: 2
enp3s0:
dhcp4: false
addresses:
# 注释2
- x.x.x.x/x
- x.x.x.x/x
# gateway4: x.x.x.x # 注释3
nameservers:
addresses: [x.x.x.x]
routes:
# 注释4
- to: x.x.x.x/x
via: x.x.x.x
metric: 36
- to: x.x.x.x/x
via: x.x.x.x
metric: 36
optional: true通过设置
metric
可以控制路由的优先级。metric
数值越小,优先级越高,数值越大,优先级越低。- 注释1、
renderer
需要注释掉。否则有些设置不会生效,比如设置的metric
。 - 注释2、注释4。一张网卡可以设置多个ip地址(注释2),同时可以设置多个路由(注释4)。
- 注释3、内网网卡的网关不需要设置,如果设置了,每次重启会出现内网网卡通向0.0.0.0/0的默认路由,导致上不了网。
- 注释1、
启用
Netplan
1
sudo netplan apply
检查路由,以及用
ping
命令查看是否内外网都正常1
route -n
配置成功后,就可以同时使用内外网了。也可以把机器作为跳转机,从外网连接,跳转去内网。
后记
也尝试过其他方法来实现。大概流程是
在
/etc/network/interfaces
文件中设置内网网卡的静态IP1
2
3
4auto enp3s0
iface enp3s0 inet static
address 10.3.125.92
netmask 255.255.255.0本人的尝试中发现,并不能在
/etc/network/interfaces
文件中同时设置双网卡的IP。(可能会报错,参考:Restarting networking)重启网络服务
1
sudo /etc/init.d/networking restart
添加路由
可以使用route add
命令,或者ip route add
命令。比如,route del -net 0.0.0.0 dev enp3s0
,ip route del default via 192.168.1.1 dev enp7s0
,ip route add 0.0.0.0/0 via 192.168.1.1 dev enp7s0 metric 2
具体可以参考:Linux中添加路由,使用route命令设置双网卡路由- 但是设置过了路由,系统重启,路由就会被重置,所以需要在系统启动时自动执行添加路由的命令。
在/etc/rc.local
文件中写好配置。可以参考开机自动启动命令以及设置rc.local。
由于过程繁琐,不像Netplan
一样可以一步到位的设置。所以最终选择了Netplan
在配置过程中,可能会把网卡弄崩掉。
可以使用sudo service network-manager restart
以及sudo /etc/init.d/networking restart
命令从头开始。
参考
双网卡系统重启时出现默认路由
Netplan网络配置工具学习
网络优先级设置
双网卡配置优先级
Netplan配置双网卡、双路由
Netplan 配置多网卡、多路由、多ip、bonding
查看网关
查看DNS
查看网络流量
重启网卡