Ssh

瀏覽器正常,但無法通過 shadowsocks 伺服器直接上網

  • September 17, 2015

好的,這似乎是一件容易的事情,但經過大量搜尋後我無法讓它工作。我有 Ubuntu 14.04。

這是一個config.json文件,包括我朋友執行 shadowsocks 的伺服器的配置:

{
   "server":"ip address",
   "server_port":23,
   "local_port":1234,
   "password":"password",
   "timeout":600,
   "method":"aes-256-cfb"
}

我這樣做sslocal -c config.json並成功連接到伺服器。

google-chrome例如,現在我可以使用以下命令使其工作:google-chrome --proxy-server="socks5://127.0.0.1:1234" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"

問題是我怎樣才能使整個網際網路連接首先通過該伺服器。這樣每個應用程序都可以預設使用它。您可以簡單地啟動和停用的東西。

我嘗試過但失敗的事情:

使用tsocks-> https://askubuntu.com/questions/532375/launch-program-through-shadowsocks

使用iptablesas sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:1234-> http://adminsgoodies.com/configuring-ubuntu-for-global-socks5-proxy/

使用系統設置 -> 網路 -> 網路代理以及dconf-tools排除主機 -> https://askubuntu.com/questions/70245/how-do-i-make-the-system-wide-proxy-settings-bypass-the -proxy-for-local-addresse

沒有通用的方法可以通過 SOCKS 代理來隧道傳輸*所有Internet 流量。*然而,有很多協議有特定的方法——但不是全部。SOCKS5 支持 TCP 和 UDP 流量,但據我所知不支持 ICMP。ping因此,例如,您不能通過這樣的代理使用傳統的。

以下是代理客戶端列表(大多數都支持 SOCKS5):連結

我個人在 Linux 上嘗試過 Dante 的客戶端部分和 proxychains(原始的,而不是 -ng 的後繼者),它們都對我有用(proxychains 被證明更穩定一些)。兩者都通過將應用程序的套接字 API 請求(因此它們必須為應用程序設置 LD_PRELOAD 環境變數)重定向到它們自己的庫來工作。當應用程序使用 setuid 二進製文件作為 LD_PRELOAD 並且 setuid 功能在安全方面不兼容時,這可能會造成問題。此外,並非所有與網路相關的 API 函式都被重定向,因此一些奇怪的應用程序可能會遇到問題(例如:當應用程序想要獲取網路介面和 IP 地址的列表時)。

這些 LD_PRELOAD 類型的代理客戶端通常不設計為在系統級別上工作,您應該改為更改啟動應用程序的方式(通過在應用程序前面加上代理客戶端)。理論上,您可以為整個系統或登錄會話設置 LD_PRELOAD 環境變數,它甚至可以在某些情況下工作,但是,您可能會遇到一些微妙的問題。此外,如果不重新啟動應用程序,您將無法輕鬆打開或關閉重定向。

引用自:https://unix.stackexchange.com/questions/216993