【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 转发。
相关推荐
u0103055273 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055273 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝4 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055275 天前
Java图像处理实战指南
人工智能·1024程序员节
u0103055275 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055277 天前
Java实用类应用精讲
人工智能·1024程序员节
u0103055278 天前
Java I/O核心操作实战
人工智能·1024程序员节
u0103055279 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节
u01030552710 天前
Java模块化编程实战指南
人工智能·笔记·1024程序员节
u01030552711 天前
使用BufferedReader读取控制台输入
人工智能·1024程序员节