我透過 Putty 設定了一個到我的專用伺服器的 SSH 隧道,我將其用作襪子代理。問題是我需要使用與專用伺服器的主 IP 不同的傳出 IP 位址。我為該伺服器設定了 30 個 ip 區塊,但即使我設定了基於 Web 的代理程式 (php),它也會使用主伺服器 ip。
有人知道解決方案嗎?
謝謝!
答案1
通常,作業系統假定連接的來源 IP 位址(您稱為「傳出 IP」)等於傳出介面的主位址(請參閱 參考資料ifconfig -a
)。傳出介面是透過在路由表中尋找符合條目來決定的(請參閱netstat -rn
或route
)。
您可以嘗試向路由表添加/更改條目,這有可能導致作業系統選擇另一個傳出接口,並且反過來,它也有可能導致您的作業系統選擇另一個來源 IP 位址。
除此之外,如果您的伺服器恰好是 Linux,您可以透過使用 SNAT 來解決該問題(請參閱 參考資料iptables
)。
答案2
首先,您是否為您的網路卡設定了別名?
如果使用 IP 別名進行 ssh 會發生什麼事?
對於基於 Web 的代理,您應該能夠指定要綁定到的 IP 位址。在 Apache 中,您只需設定 Listen 選項即可。你嘗試過嗎?
或者,正如 kubanskamac 所提到的,使用 iptables。