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

2017-06-05 06:58:36 +08:00
 yiqiuwang
vps 有 3 个 ip 地址,分别绑定在 eth1,eth2,eth3 网卡上.
默认的设置是由 eth1 上的 ip 访问外网,我如何设置使 eth2 的 ip 访问外网,而不是 eth1.

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


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

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

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

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

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

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

题主在这方面知识跟经验有较大欠缺,短时间内不太好能掌握。建议耐心,抓包自己好好熟悉下。急不得。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/365956

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX