V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yiqiuwang
V2EX  ›  问与答

Ubuntu 多 ip 如何指定访问外网的 ip?

  •  
  •   yiqiuwang · 2017-06-05 06:58:36 +08:00 · 5631 次点击
    这是一个创建于 2764 天前的主题,其中的信息可能已经有所发展或是发生改变。
    vps 有 3 个 ip 地址,分别绑定在 eth1,eth2,eth3 网卡上.
    默认的设置是由 eth1 上的 ip 访问外网,我如何设置使 eth2 的 ip 访问外网,而不是 eth1.

    (当我设置 eth2 的网关为默认网关时,eth1 与 eth3 的 ip 都无法连通.
    11 条回复    2017-06-05 09:45:10 +08:00
    shiji
        1
    shiji  
       2017-06-05 07:13:18 +08:00 via Android
    思路是把默认的 ip route 转给你想要的那个出口 ip。
    话说为什么要绑三个 eth, 一般都把所有 IP 绑 eth0 上
    izoabr
        2
    izoabr  
       2017-06-05 07:16:44 +08:00


    #ip ro sh
    yiqiuwang
        3
    yiqiuwang  
    OP
       2017-06-05 07:27:36 +08:00
    @shiji 具体如何操作呢,谢谢.
    Sharuru
        4
    Sharuru  
       2017-06-05 08:02:52 +08:00 via Android
    多网卡是为了类似内外网隔离么?
    搜索双网卡配置即可,主要思路就是启用一个 gateway,其他网卡通过路由设定( ip route )把流量转发。
    catror
        5
    catror  
       2017-06-05 08:11:00 +08:00 via Android
    配置一下路由就行,内网的地址路由到内网网关
    xfspace
        6
    xfspace  
       2017-06-05 08:11:56 +08:00 via Android
    https://serverfault.com/questions/248056/set-default-outgoing-ip-on-ubuntu-server-with-multiple-ips
    学会使用搜索引擎...

    如不熟悉,建议开 TK 让商家更改。
    yiqiuwang
        7
    yiqiuwang  
    OP
       2017-06-05 08:51:58 +08:00 via iPhone
    @catror
    @Sharuru
    三个网卡绑定的都是公网 ip
    mooncakejs
        8
    mooncakejs  
       2017-06-05 08:57:41 +08:00 via iPhone
    代理可以指定 outgoing
    shiji
        9
    shiji  
       2017-06-05 09:02:11 +08:00
    @yiqiuwang 我没有信心给你一个拿过去就直接能用的方案。。。
    这玩意儿 Ubuntu 一个样,Debian 一个样,新旧版本其实也有区别。。
    楼上给的那个链接是 6 年前的,eth0:0 eth0:1 这种写法如今已经渐渐不用了。

    反正你先把你的 interfaces 贴出来让大家看看,注意打码。
    一般出口 IP 是跟着你的网关地址走的,既然你改了网关出问题了,就让我看看你当前的配置文件吧。。
    jasontse
        10
    jasontse  
       2017-06-05 09:17:20 +08:00 via iPad
    auser
        11
    auser  
       2017-06-05 09:45:10 +08:00   ❤️ 1
    没有一个回答说到点的

    多网卡与 公网 IP 下的网络配置,肯定是离不开策略路由的。策略路由保证了数据包怎么来的就怎么回的,还保证了以某公网 IP 为源的包,可以正确送到对应的网关上头。Linux 下这方面的功能是通过 iproute2 里的 ip rule 配合 /etc/iproute2/rt_tables 配置实现的。

    这里有一个细节问题,就是两块网卡分到的公网 IP 属于同一个段,这时在 ARP 方面会有与期望不一致的现象。如果存在这种情况,需要单独处理下。Linux 是弱端类型的网络,默认的,只看 IP 属不属于当前主机,不看属不属于网卡。当然,这种情况正确的实现方式,是把同一网段的 IP 都加到同一块网卡,然后通过设置默认路由的 src 属性来指定那块网卡默认用哪个源 IP 出去。

    之前用过 4 块网卡,分属 4 个运营商。从优化角度而言,你需要在 default 路由下,根据运营商 IP 段设置路由,以便实现最佳的本机对外访问效果。这里边的细节问题又比较多,比如 iptables 工具实现一些功能。通常多网卡环境下的业务需求是会用到这些东西的。

    题主在这方面知识跟经验有较大欠缺,短时间内不太好能掌握。建议耐心,抓包自己好好熟悉下。急不得。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2748 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:18 · PVG 20:18 · LAX 04:18 · JFK 07:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.