首页 > ss多ip怎样让数据按指定ip出口并且原路返回?

ss多ip怎样让数据按指定ip出口并且原路返回?

我的一个linux机器有10个ip,ip分别是:
222.222.222.2(主ip)
222.222.222.3
...
222.222.222.10

我在上面跑了ss服务,目的是访问任意一个都可以。

现在的情况却是,不管我访问的是哪个ip,用www.ip138.com查看的ip都是222.222.222.2这个主ip的返回结果。

分析一下原因(谢楼下两位指点),由于ss是socks服务,不管客户端访问的哪个ip过来,服务器在对外访问的时候,走的都是缺省路由,也就会用222.222.222.2这个ip。

所以,虽然ss客户端与服务器之间连接用任意ip都可以,但是服务器去访问www.ip138.com时都会用222.222.222.2这个ip。

怎样才可以改成,我访问某个ip,那么数据就从这个ip向外访问,并且按这个ip原路返回?

.


这个问题很难搞啊,因为ss是用户态的,走的系统路由,系统说走哪就走哪。

办法也不是没有,就是用iptables做。难度有点高,我没成功过,就不瞎贴了。


倒是找到了这个方法,是通过iptables来做的。
http://shadowsocks.be/7.html
https://www.6zou.net/tech/shadowsocks-multiple-ips-outbound-with-iptables-how-to.html

要是100个ip,那不是很麻烦?


题主,请你解释一下这段话:

但是,看到情况却是,不管我访问的是哪个ip,得到的都是222.222.222.2主ip的返回结果。

你的“访问”是什么意思?是连接到你服务器不同IP的ss服务,然后通过ss上网查询当前IP么?

上面是我对你描述的猜测,

对于你本机和SS服务器之间的连接,如果你连的是222.222.222.3,服务器是不可能用222.222.222.2返回数据的,返回了也会被直接丢包。

所以如果我对你的描述猜对了的话,你要改的是你服务器的默认出口IP吧。
SS是socks代理,你透过SS访问网页完全等同于你的服务器发起请求,所以默认只能从默认的网关出去。

从单个程序来说,主动选择一个出口IP是可以的(比如wget的--bind-address),对于SS来说貌似需要改很多代码

【热门文章】
【热门文章】