【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 转发。
相关推荐
惜.己14 小时前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
西电研梦1 天前
考研倒计时30天丨和西电一起向前!再向前!
人工智能·考研·1024程序员节·西电·西安电子科技大学
惜.己1 天前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
·云扬·1 天前
Java IO 与 BIO、NIO、AIO 详解
java·开发语言·笔记·学习·nio·1024程序员节
网安_秋刀鱼1 天前
PHP代码审计 --MVC模型开发框架&rce示例
开发语言·web安全·网络安全·php·mvc·1024程序员节
HUODUNYUN2 天前
小程序免备案:快速部署与优化的全攻略
服务器·网络·web安全·小程序·1024程序员节
惜.己2 天前
Jmeter的后置处理器(二)
测试工具·github·1024程序员节
惜.己2 天前
Jmeter中的断言(一)
测试工具·jmeter·1024程序员节
cainiao0806052 天前
《物理学进展》
1024程序员节·核心期刊·知网期刊·职称评审
FFDUST3 天前
C++ —— string类(上)
c语言·开发语言·数据结构·c++·stl·1024程序员节