【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 转发。
相关推荐
wei_shuo19 小时前
从数据中台到数据飞轮:实现数据驱动的升级之路
1024程序员节·数据飞轮
玖剹14 天前
矩阵区域和 --- 前缀和
数据结构·c++·算法·leetcode·矩阵·动态规划·1024程序员节
jamison_11 个月前
文心一言与 DeepSeek 的竞争分析:技术先发优势为何未能转化为市场主导地位?
人工智能·ai·chatgpt·gpt-3·1024程序员节
NaZiMeKiY1 个月前
HTML5前端第六章节
前端·html·html5·1024程序员节
jamison_12 个月前
颠覆未来:解锁ChatGPT衍生应用的无限可能(具体应用、功能、付费模式与使用情况)
ai·chatgpt·1024程序员节
NaZiMeKiY2 个月前
HTML5前端第七章节
1024程序员节
earthzhang20212 个月前
《Python深度学习》第四讲:计算机视觉中的深度学习
人工智能·python·深度学习·算法·计算机视觉·numpy·1024程序员节
明明真系叻2 个月前
2025.3.2机器学习笔记:PINN文献阅读
人工智能·笔记·深度学习·机器学习·1024程序员节·pinn
bitenum2 个月前
【C++/数据结构】队列
c语言·开发语言·数据结构·c++·青少年编程·visualstudio·1024程序员节
IT学长编程3 个月前
计算机毕业设计 基于SpringBoot的智慧社区管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·后端·毕业设计·课程设计·论文笔记·1024程序员节