【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 转发。
相关推荐
就爱敲代码17 分钟前
怎么理解ES6 Proxy
1024程序员节
憧憬一下17 分钟前
input子系统的框架和重要数据结构详解
arm开发·嵌入式·c/c++·1024程序员节·linux驱动开发
三日看尽长安花27 分钟前
【Tableau】
1024程序员节
sswithyou1 小时前
Linux的调度算法
1024程序员节
武子康1 小时前
大数据-187 Elasticsearch - ELK 家族 Logstash Filter 插件 使用详解
大数据·数据结构·elk·elasticsearch·搜索引擎·全文检索·1024程序员节
互联网杂货铺1 小时前
Python测试框架—pytest详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·1024程序员节
GDAL2 小时前
JavaScript正则表达式利器:exec()方法深度解析与应用实例
正则表达式·1024程序员节
2401_857610032 小时前
植物健康,Spring Boot来助力
1024程序员节
阿乾之铭2 小时前
Spring Boot框架中的IO
java·spring boot·log4j·1024程序员节
百流2 小时前
Pyspark中pyspark.sql.functions常用方法(4)
1024程序员节