Linux 单网卡多 ip 如何指定非默认 ip 的路由?

2017 年 1 月 30 日
 hadoop
具体来说,一个 linux server ,单网卡,有 2 个 ip , A 和 B , A 是主 ip,这俩同一个网段,ssh都能连得上 。

现在比如搭一个 socks5 代理,希望负载均衡分别能从两个 ip 出去(请求从哪个 ip 来,就从哪个 ip 出去),这个请问该怎么实现?
5192 次点击
所在节点    Linux
26 条回复
ayanamist
2017 年 1 月 30 日
默认就是这样的,哪个网卡了的流量就会从哪个网卡回去,否则用户收不到回包的。
ryd994
2017 年 1 月 30 日
1.物理网卡和 interface 不一定对应,可以有多个 interface
2. 你的需求可以通过开两个 socks 服务器,并各自 bind 不同 IP 处理。而且 socks 服务器是 7 层,并不在乎哪个 IP 在哪个网卡,只要 IP 对就行。
hadoop
2017 年 1 月 30 日
@ayanamist 我问题可能没表述清楚。再具体点, socks 程序监听在 A 和 B 的 1080 端口,现在 client 端有个请求 curl http://ip.ipinfo.io (获取 ip ),从 B : 1080 进来,通过代理去访问。但是最后返回给 client 的 ip 不是 B 自己的,是 A 的
xfspace
2017 年 1 月 30 日
你的程序有问题?
shiji
2017 年 1 月 30 日
lslqtz
2017 年 1 月 30 日
@hadoop 从 B:1080 进来 通过 A 去访问 然后通过 B 返回...
我只想到 HTTP 代理可能可以实现。
jasontse
2017 年 1 月 30 日
这事和哪个 IP 进来的没啥关系,你代理发出 tcp 请求 bind 是哪个就是哪个。
zaishanfeng
2017 年 1 月 30 日
开 ss 时就绑定 ip 。 我指的是绑定网卡。方法自行 g
Erskine
2017 年 1 月 30 日
负载均衡,在外面就要决定要用 A 或 B 吧,再来一个 C ,帮你做这个决定😂
gamexg
2017 年 1 月 30 日
这个功能需要 socks5 代理支持,如果不支持的话需要开两个 socks5 ,自己配置策略路由来做。
ic3z
2017 年 1 月 30 日
加路由
hadoop
2017 年 1 月 30 日
@ic3z 能具体点不?
snnn
2017 年 1 月 30 日
你为什么需要多 IP ?
zwzmzd
2017 年 1 月 30 日
单机多接口建议看看这两篇文章
http://www.wlug.org.nz/SourceBasedRouting
http://lartc.org/howto/lartc.rpdb.multiple-links.html

我之前的应用环境是多拨负载均衡,一个网卡上建立了多个 pppoe 链接对外服务
ic3z
2017 年 1 月 30 日
@hadoop 如果目的地址不固定的话当我没说。。
hadoop
2017 年 1 月 30 日
@snnn 爬虫代理啊
hadoop
2017 年 1 月 30 日
@zwzmzd 多谢,我看下
hadoop
2017 年 1 月 30 日
@lslqtz 不是,我希望的是从 B:1080 进来的请求,通过 B 去访问,但是现在实验下来还是根据 A 去访问了
hadoop
2017 年 1 月 30 日
@zaishanfeng 单网卡,多 ip ,咋搞?
Orzzzz
2017 年 1 月 30 日
一个网卡只能有一个默认路由,否则会乱套的,这是规定,也是没办法的事情。

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

https://study.congcong.us/t/337378

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

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

© 2021 V2EX