在Ubuntu 22.04上配置单网卡以同时使用中国电信和中国联通的IP地址,并实现基于目的地址的路由选择(即策略路由),可以通过以下步骤来完成。这里假设你的网络环境支持多IP分配,并且你已经从两个不同的ISP获得了相应的IP地址。

步骤1: 配置网络接口

首先,你需要编辑网络接口配置文件,通常是/etc/netplan/01-netcfg.yaml(具体文件名可能不同,取决于你的系统配置)。为每个ISP配置一个静态IP地址。例如:

yaml
network:
  version: 2
  ethernets:
    enp3s0: # 这里替换为你实际的网卡名称
      addresses:
        - 192.168.1.2/24 # 假设这是电信的IP地址
        - 192.168.2.2/24 # 假设这是联通的IP地址
      gateway4: 192.168.1.1 # 电信的网关
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4] # 可以根据需要更改DNS服务器

注意,上述配置中只指定了一个默认网关,这会导致所有流量都通过这个网关发送。为了实现更细粒度的控制,我们需要设置额外的路由表。

步骤2: 设置额外的路由表

编辑或创建/etc/iproute2/rt_tables文件,添加新的路由表条目。例如:

# 自定义路由表
100 china_telecom
101 china_unicom

步骤3: 创建路由选择规则

最后,你需要创建规则来决定何时使用哪个路由表:

以下为配置示例:
ip route flush table Unicom
ip route add default via 网关 dev 网卡名 src ip地址 table Unicom
ip rule add from ip地址 table Unicom
ip route flush table Telecom
ip route add default via 网关 dev 网卡名 src ip地址 table Telecom
ip rule add from ip地址 table Telecom

步骤4: 重启网络服务

完成以上配置后,重启网络服务使更改生效:

sudo netplan apply

注意事项

  • 确保你对网络有充分的理解,错误的配置可能导致网络连接问题。

  • 上述配置中的IP地址和网关地址仅作为示例,请根据实际情况进行调整。

  • 如果你不是非常熟悉这些命令和配置,建议先在一个测试环境中尝试。