通過本地網路共享Mac的ShadowSocks

我剛買了一部新的iPhone 6,升級到iOS 8.4.1,不容錯過。所以我在網上搜索了ShadowSocks的分享。實際上Windows版本內置了這樣的功能。但對於Mac版本,我們需要一些其他的處理。

首先,我想談談ShadowSocks的機制。有幾種方法可以繞過GFW的審查,比如VPN和http / socks代理。普通的http / socks代理不需要對您的設備進行特殊處理。那麼為什麼我們需要GoAgent和ShadowSocks?因為GFW很容易檢測到普通代理的流量。如果我們有一個私人海外伺服器並將其用作簡單的http代理,GFW可能會在檢測到流量後阻止該IP。

GoAgent和ShadowSocks都偽裝成流量,假裝是正常的http。它們實際上是「加密代理」。但是,我們的操作系統無法識別此類加密代理。它只有內置的標準代理協議。所以我們需要在我們的操作系統上運行另一個程序來解密代理。

瀏覽器(通過內置的socks協議) – > ShadowSocks客戶端(通過Internet解釋為ShadowSocks代理) – > ShadowSocks伺服器 – >像Google這樣的目標網站

在Mac上將GoAgent客戶端分享到iOS設備更容易。但對於ShadowSocks,我們還需要一次治療。對於未破解的設備,只有內置的http代理,沒有socks代理。我們必須從Mac ShadowSocks客戶端轉發socks代理作為http代理。

iOS設備(通過本地網路http代理) – > Mac上的privoxy(將http代理轉換為socks代理) – > ShadowSocks客戶端(通過Internet解釋為ShadowSocks代理) – > ShadowSocks伺服器 – > Google等目標網站

我找到了本文中的步驟:http:
//1992s.com/blog/share-shadowsocks-over-lan-on-mac-os-x.html

  1. 安裝privoxy:http:  //www.privoxy.org/#DOWNLOAD
  2. 修改/ usr / local / etc / privoxy / config
    1. 搜索包含「forward-socks5t /」的行,刪除注釋符號「#」,將埠更改為1080(或ShadowSocks客戶端使用的其他埠)
      forward-socks5t / 127.0.0.1:1080。
    2. 搜索包含「listen-address 127.0.0.1:8118」的行,刪除注釋符號「#」,將監聽地址IP從127.0.0.1更改為0.0.0.0(此更改啟用外部連接)。保留默認埠或選擇其他埠。
      listen-address 0.0.0.0:8118
  3. 在終端中運行命令(可能需要sudo):
    / usr / local / sbin / privoxy --no-daemon / usr / local / etc / privoxy / config
  4. 在iOS設備上使用全局代理模式:將Wi-Fi手動http代理設置為$ IP_OF_MAC:$ PORT。埠是8118的監聽埠,而不是原始的ShadowSocks埠1080。

對於自動代理模式,需要pac文件。我在mac上設置pac並使用Apache作為Web伺服器。

  1. 運行該命令以啟動Apache Web伺服器
    sudo apachectl start
  2. 啟動瀏覽器瀏覽http://127.0.0.1進行驗證。如果Web伺服器正常工作,您將看到「It Works!」消息。
  3. 伺服器的內容位於/ Library / WebServer / Documents /,在那裡複製pac文件。通常,ShadowSocks的位置是$ HOME / .ShadowsocksX / gfwlist.js
  4. 最後更改包含「var proxy」的行。將「SOCKS5」更改為「PROXY」,將「127.0.0.1」更改為Mac的IP地址。
     var proxy =「PROXY 127.0.0.1:1080; DIRECT;」;
  5. 將Wi-Fi「自動」http代理設置為http:// $ MAC_IP / $ PAC_NAME並享受!

我認為你外出時也應該有用。只允許從Internet到privoxy和pac伺服器的連接。