【Ubuntu】Ubuntu22双网卡指定网关

Ubuntu22双网卡指定网关

  • 一、背景
  • 二、问题解决思路
  • 三、具体解决步骤
    • [3.1 确定网卡名](#3.1 确定网卡名)
    • [3.2 编辑 Netplan 配置](#3.2 编辑 Netplan 配置)
    • [3.3 修改配置文件](#3.3 修改配置文件)
    • [3.4 应用配置](#3.4 应用配置)
    • [3.5 验证配置](#3.5 验证配置)
  • [四、Netplan 配置文件讲解](#四、Netplan 配置文件讲解)
    • [4.1 配置文件结构](#4.1 配置文件结构)
    • [4.2 网卡配置](#4.2 网卡配置)
      • [4.2.1 第一个网卡 (enp0s3)](#4.2.1 第一个网卡 (enp0s3))
      • [4.2.2 第二个网卡 (enp0s8)](#4.2.2 第二个网卡 (enp0s8))
      • [4.2.3 路由配置](#4.2.3 路由配置)
  • 五、总结

一、背景

设备有两个网卡,第1个网卡使用固定IP直连。第2个IP是静态IP,需要走网关。

遇到的问题是设备在上电重启的时候,概率性的走第1个网卡的网关,导致其他局域网无法访问设备。


二、问题解决思路

设置设备的默认网关


三、具体解决步骤

3.1 确定网卡名

获取两个网卡名称,通常是类似 enp0s3的格式。

复制代码
ip a

3.2 编辑 Netplan 配置

Ubuntu 22.04 使用 Netplan 来管理网络配置。配置文件通常在 /etc/netplan/ 目录下,文件名各式 01-netcfg.yaml,以 .yaml 结尾的文件。

复制代码
sudo vim /etc/netplan/01-netcfg.yaml

3.3 修改配置文件

假设第2个网卡名称为 enp0s8,IP 地址需要根据实际情况修改。

复制代码
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.1.38/24
    enp0s8:
      dhcp4: no
      addresses:
        - 192.168.2.38/24  # 第2个网卡的静态IP
      routes:
        - to: 0.0.0.0/0
          via: 192.168.2.1
          table: 100

3.4 应用配置

保存并关闭文件后,运行以下命令应用新的网络配置。

复制代码
sudo netplan apply

3.5 验证配置

使用以下命令检查当前路由表,确保默认网关指向第二个网卡:

复制代码
ip route

类似于下面的输出,其中 default via 192.168.2.1 表示默认网关已正确设置。

四、Netplan 配置文件讲解

4.1 配置文件结构

复制代码
network:
  version: 2
  renderer: networkd
  • network: 定义网络配置的根元素。
  • version: 2: 指定使用的 Netplan 版本,这里是版本 2。
  • renderer: networkd: 告诉系统使用 systemd-networkd 来管理网络。还有其他渲染器,如 NetworkManager,但在服务器环境中通常使用 networkd。

4.2 网卡配置

4.2.1 第一个网卡 (enp0s3)

复制代码
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.1.38/24

ethernets: 定义有线网络接口。

enp0s3: 表示第一个网卡的名称。你可以用 ip a 命令确认网卡名称。

dhcp4: no: 禁止通过 DHCP 自动获取 IPv4 地址。

addresses: 指定该网卡的静态 IP 地址。在此例中,设置为 192.168.1.38,子网掩码为 /24 ,表示该网段的有效地址范围是 192.168.1.1 到 192.168.1.254。

4.2.2 第二个网卡 (enp0s8)

复制代码
    enp0s8:
      dhcp4: no
      addresses:
        - 192.168.2.38/24  # 第二个网卡的静态IP
      routes:
        - to: 0.0.0.0/0
          via: 192.168.2.1
  • enp0s8: 表示第二个网卡的名称。
  • dhcp4: no: 同样禁用 DHCP。
  • addresses: 设置第二个网卡的静态 IP 地址,这里是 192.168.2.38,同样使用 /24 子网掩码。

4.2.3 路由配置

复制代码
      routes:
        - to: 0.0.0.0/0
          via: 192.168.2.1
          table: 100
  • routes: 自定义路由配置。
  • to: 0.0.0.0/0: 指所有 IP 地址(即任何目的地)。
  • via: 192.168.2.1: 指明通过哪一条网关发送流量。
  • table: 100: 指定路由表,这里使用主路由表。可以不需要

五、总结

  • 该配置定义了两个静态 IP 地址的网卡。
  • 第一个网卡用于局域网通信,第二个网卡连接外部网络,并作为默认网关。
  • 所有不属于 192.168.2.0/24 子网的流量将通过第二个网卡的网关 192.168.2.1 转发。
相关推荐
开开心心_Every1 小时前
专业视频修复软件,简单操作效果好
学习·elasticsearch·pdf·excel·音视频·memcache·1024程序员节
liu****20 小时前
16.udp_socket(三)
linux·开发语言·数据结构·c++·1024程序员节
草莓熊Lotso1 天前
《算法闯关指南:优选算法--位运算》--38.消失的两个数字
服务器·c++·算法·1024程序员节
unable code2 天前
攻防世界-Misc-can_has_stdio?
网络安全·ctf·misc·1024程序员节
思茂信息2 天前
CST License(Flexnet)设置与问题处理方法
服务器·网络·单片机·3d·php·1024程序员节·cst
2301_797892832 天前
论文阅读:《Hypergraph Motif Representation Learning》
论文阅读·1024程序员节
CoderYanger2 天前
前端基础——CSS练习项目:百度热榜实现
开发语言·前端·css·百度·html·1024程序员节
liu****3 天前
13.POSIX信号量
linux·开发语言·c++·算法·1024程序员节
liu****3 天前
12.线程同步与互斥
linux·数据结构·c++·算法·1024程序员节
CoderJia程序员甲3 天前
GitHub 热榜项目 - 日榜(2025-11-08)
ai·开源·github·1024程序员节·ai教程