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

2017-01-30 01:58:21 +08:00
 hadoop
具体来说,一个 linux server ,单网卡,有 2 个 ip , A 和 B , A 是主 ip,这俩同一个网段,ssh都能连得上 。

现在比如搭一个 socks5 代理,希望负载均衡分别能从两个 ip 出去(请求从哪个 ip 来,就从哪个 ip 出去),这个请问该怎么实现?
4410 次点击
所在节点    Linux
26 条回复
hadoop
2017-01-30 21:38:25 +08:00
@gamexg 是的,后来找了 danted 这个 socks 软件,软件支持后面就好弄多了
hadoop
2017-01-30 21:40:15 +08:00
@shiji 我也想到过用 ss 来做,但是我只需要一个 socks5 代理,后来找了 dante 这个 socks5 软件来实现了从哪个监听 ip 来,就从哪个 ip 出去的功能
msg7086
2017-01-31 01:44:07 +08:00
#18 @hadoop 入口 IP 和出口 IP 是两回事,完全无关。
假如你装了 10 块网卡,第 8 块网卡上连进来的请求,你程序做代理的时候照样会从默认 IP 出去。
要改变出口 IP ,需要在代理上绑定出口 IP 。
nomaka
2017-01-31 12:14:39 +08:00
这个路由好像没法做 你要先指两条默认路由 然后 iptables 做 rule
kuretru
2017-02-06 22:27:14 +08:00
当时看到这个问题的时候,就想到分别使用两个用户 userA 、 userB 运行 2 个 socks5 进程,最后根据用户指定源 IP 地址这个解决方案,但是不知如何实现,便没有回复。今天偶然看到 iptables 即可支持,-m owner --uid-owner userA ,即可捕捉到指定用户的流量,然后根据需要从 A 地址或 B 地址转发出去。
dawncold
2017-02-09 23:05:41 +08:00
连接建立的时候(src_host, src_port, dst_host, dst_port)就已经是确定的了,如果在 A 上建立了连接,你却用 B 返回,这根本就无法返回呢, B 在那个时候都没有根客户端建立起来连接。

你说的负载均衡到底指的是什么,希望有什么效果?

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

https://www.v2ex.com/t/337378

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

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

© 2021 V2EX