首頁  >  問答  >  主體

linux - 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原路返回?

.

天蓬老师天蓬老师2741 天前669

全部回覆(3)我來回復

  • 迷茫

    迷茫2017-04-17 14:55:33

    題主,請你解釋這段話:

    但是,看到情況卻是,不管我訪問的是哪個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來說似乎需要改很多程式碼

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 14:55:33

    這個問題很難搞啊,因為ss是用戶態的,走的系統路由,系統說走哪就走哪。

    辦法也不是沒有,就是用iptables做。難度有點高,我沒成功過,就不瞎貼了。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 14:55:33

    倒是找到了這個方法,是透過iptables來做的。
    http://shadowsocks.be/7.html
    https://www.6zou.net/tech/shadowsocks-multiple-ips-outbound-with-iptables-how-to.html

    要是100個ip,那不是很麻煩?

    回覆
    0
  • 取消回覆