--- title: "记一次 Ubuntu 20.04 双网卡配置过程" date: 2025-03-16T15:59:37Z lastmod: 2025-03-16T15:59:55Z tags: [网络,Linux,Ubuntu,系统,配置] --- # 记一次 Ubuntu 20.04 双网卡配置过程 ## 情况说明 现有如图所示的网络结构(非专业网络拓扑图,仅供参考) ![网络结构](assets/network-asset-01-20250316155958-gldjlz4.png "网络结构") 其中: - 主路由有两个 DHCP 服务器(IP 为 10.32.1.1 和 10.32.2.1)。 - 子路由设置了 DMZ 主机,指向服务器(192.168.148.100)。 - 网卡A - `enp6s0`​,网卡B - `ens4`。 注意: - 一台主机只配置一个默认网关,若有多个,会自动选择优先级较高的一个进行通信。 因此,需要手动给网卡配置静态路由。 ## 要求 - 服务器可以访问子路由、主路由,以及外网。 - 连接到主路由的设备能通过 IP 10.32.1.34 和 10.32.2.1 访问服务器。 ## 参考资料 - [Netplan](https://netplan.io/reference/) ## 用到的命令 ```text ip a sudo netplan apply sudo service systemd-networkd restart sudo ip route show sudo netstat -rn traceroute -m 10 -n www.baidu.com ``` ## 配置 修改 `/etc/netplan/00-installer-config.yaml`(文件名不一定是这个) ### 方案一 服务器通过主路由访问外网 ```yaml network: renderer: networkd ethernets: ens4: dhcp4: true enp6s0: dhcp4: false addresses: [192.168.148.100/24] routes: - to: 192.168.148.0/24 via: 192.168.148.1 - to: 10.32.2.0/24 via: 192.168.148.1 version: 2 ``` ### 方案二 服务器通过子路由访问外网 > 一般来说,使用方案一就可以了(已测试),但在部分网络环境下需要使用方案二这样的配置(原因未知,猜测可能与路由器设置有关)。 ```yaml network: renderer: networkd ethernets: ens4: dhcp4: false addresses: [10.32.1.29/24] enp6s0: dhcp4: true routes: - to: 192.168.148.0/24 via: 192.168.148.1 version: 2 ``` ‍