V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kokyang123
V2EX  ›  CentOS

[求助]centos 6.5 配置多个公网 ip

  •  
  •   kokyang123 · 2023-10-29 14:33:44 +08:00 · 1481 次点击
    这是一个创建于 398 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前手里一台戴尔的服务器,支持 4 个网口。
    现在给了我三个公网 ip ,每个地址的网关都不同,如下示例:
    移动:111.111.111.111 网关:111.111.111.110
    联通:222.222.222.222 网关:222.222.222.220
    电信:189.189.189.189 网关:189.189.189.190

    服务器操作系统为 centos6.5 ,
    现在把三根网线分别插在服务器的网口上,系统三个网卡也分别配置完毕 eth0-2 。
    现在如果启用三个网卡,那么只有一个网卡的配置会生效。然后再对路由和规则进行配置,但是无效(可能是我配置错了?)

    现在的需求就是可以通过三个地址同时访问到这台服务器即可,手里也没有其他的交换设备了,求助万能的 V 友,不胜感激。
    7 条回复    2024-05-14 02:46:10 +08:00
    Conantv2
        1
    Conantv2  
       2023-10-29 14:54:05 +08:00 via iPhone
    就是你配置错了,搜索多网卡配置,网上很多教程啊。如果不用 dhcp ,配置文本记得把网关都写上,不写网关不会自动添加路由
    digimoon
        2
    digimoon  
       2023-10-29 16:30:47 +08:00
    策略路由
    devopsdogdog
        3
    devopsdogdog  
       2023-10-29 16:41:44 +08:00 via Android
    多网卡+多网关,应该需要设置路由的,如果不会装系统时把 3 个网卡配好,貌似会自动给你加规则
    zzlyzq
        4
    zzlyzq  
       2023-10-29 17:09:42 +08:00
    在 Linux 中配置多个公网 IP 地址并进行策略路由配置,可以通过以下步骤进行操作。请注意,具体的配置可能因 Linux 发行版和网络环境而有所不同,下面提供的是一般的示例。

    1. 配置多个公网 IP 地址:
    - 打开终端,使用 root 权限登录到 Linux 服务器。
    - 编辑网络接口配置文件,例如使用`vi`编辑器打开`/etc/network/interfaces`文件。
    - 根据您的网络环境,为每个公网 IP 地址添加一个新的网络接口配置。例如,假设您有三个公网 IP 地址分别为 A.B.C.D1 、A.B.C.D2 和 A.B.C.D3 ,您可以添加如下配置:
    ```
    auto eth0:1
    iface eth0:1 inet static
    address A.B.C.D1
    netmask 255.255.255.0
    gateway <默认网关>

    auto eth0:2
    iface eth0:2 inet static
    address A.B.C.D2
    netmask 255.255.255.0
    gateway <默认网关>

    auto eth0:3
    iface eth0:3 inet static
    address A.B.C.D3
    netmask 255.255.255.0
    gateway <默认网关>
    ```
    请将 `<默认网关>` 替换为您的默认网关地址。

    - 保存并关闭文件。

    2. 进行策略路由配置:
    - 打开终端,使用 root 权限登录到 Linux 服务器。
    - 编辑路由配置文件,例如使用`vi`编辑器打开`/etc/iproute2/rt_tables`文件。
    - 在文件末尾添加以下内容:
    ```
    100 isp1
    200 isp2
    300 isp3
    ```
    这里的 `isp1`、`isp2` 和 `isp3` 是自定义的路由表名称,您可以根据需要进行修改。

    - 保存并关闭文件。

    - 配置策略路由规则。在终端中执行以下命令:
    ```
    ip route add default via A.B.C.D1 dev eth0 table isp1
    ip route add default via A.B.C.D2 dev eth0 table isp2
    ip route add default via A.B.C.D3 dev eth0 table isp3

    ip rule add from A.B.C.D1 table isp1
    ip rule add from A.B.C.D2 table isp2
    ip rule add from A.B.C.D3 table isp3
    ```
    将 `A.B.C.D1`、`A.B.C.D2` 和 `A.B.C.D3` 替换为您的公网 IP 地址。

    - 保存并关闭文件。

    - 配置策略路由的主要默认表。在终端中执行以下命令:
    ```
    ip route add default scope global nexthop via A.B.C.D1 dev eth0 weight 1 nexthop via A.B.C.D2 dev eth0 weight 1 nexthop via A.B.C.D3 dev eth0 weight 1
    ```
    将 `A.B.C.D1`、`A.B.C.D2` 和 `A.B.C.D3` 替换为您的公网 IP 地址。

    - 保存并关闭文件。

    3. 重启网络服务以使更改生效:
    - 在终端中执行以下命令来重启网络服务:
    ```
    systemctl restart networking
    ```
    或者,根据您的 Linux 发行版,也可以使用其他命令来重启网络服务。

    完成上述步骤后,您的 Linux 服务器将配置了多个公网 IP 地址,并且通过策略路由规则来决定使用哪个 IP 地址进行出站网络连接。请根据您的具体需求和网络环境进行适当的配置和调整。

    请注意,这只是一个一般的示例,实际的配置可能因 Linux 发行版和网络环境而有所不同。建议在进行任何网络配置更改之前,先备份相关配置文件,并确保您对网络配置有适当的了解,或者在需要时寻求专业人士的帮助。
    zzlyzq
        5
    zzlyzq  
       2023-10-29 17:26:33 +08:00
    以上是 chatgpt 给的答案,根据我的经验,梳理了一下如下:
    https://www.sddts.cn/index.php/archives/27/

    有待完善,供参考。
    kokyang123
        6
    kokyang123  
    OP
       2023-10-29 17:43:29 +08:00
    @Conantv2 @digimoon @devopsdogdog @zzlyzq 多谢 我再重新配置下路由
    sendi
        7
    sendi  
       201 天前
    @zzlyzq 这样可以实现 但是平衡不会是完美的,因为它是基于路由的,并且路由是缓存的
    如果 op 只想多线连接就是没有问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2613 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:56 · PVG 11:56 · LAX 19:56 · JFK 22:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.