2015-08-29

在 ConoHa 上以 Ubuntu 14.04 LTS 架設 Shadowsocks 服務

在文章的開頭,謹此向 Shadowsocks 唯一的開發者 clowwindy 致敬
clowwindy 撰寫了這套基於 Socks5 協議撰寫的代理伺服器程式

雖然最終他因為疏於保護網路身分,導致真實身分被揭發,進而在被有關當局施壓後刪除了 Github 上所有的 Shadowsocks 程式碼

但是 Shadowsocks 與它基礎架構的 Socks 會繼續活下去,發展茁壯,生生不息

之前介紹過在 VPS 主機上運行 PPTP 協議的 VPN 或是 OpenVPN-Access Server 之後,這次來介紹 Shadowsocks 這套基於 Socks5 協議撰寫的代理伺服器程式

其實 OpenVPN-Access Server 搭配大頻寬 VPS 後已經堪用,但是 Shadowsocks 還是有它吸引人的地方

  • 十分的省電
  • Shadowsocks 與其他 VPN 相比之下十分的傑出,電量的消耗極低,這點在行動裝置上更加明顯

  • 支持自動連線與自訂路由表
  • 在網路不穩的環境下可以十分流暢的切換,而自訂路由表則能夠針對個別使用者的環境做網路導向

  • 可自行架設 Shadowsocks 伺服端
  • 當然有基礎的 Linux 常識下自行架設 PPTP、IPSec、L2TP 甚至 OpenVPN 都可以,但 Shadowsocks 的伺服端不需要很高的硬體需求
    一般來說 512MB 的記憶體與 10GB 的儲存環境下搭配 Ubuntu 就可以穩定的運作

  • 傑出的隱蔽性
  • Shadowsocks 可以使用 AES ( Advanced Encryption Standard,高階加密標準)搭配自訂密碼來加密整個傳輸過程
    也就是說伺服端與使用者之間的傳輸過程無法被讀取其內容,基本上旁道攻擊之外的方法是無法探知傳輸內容的,也就是說除非伺服端或使用者被入侵,否則傳輸過程是安全而隱密的

    而惡名昭彰的防火長城可以利用 IDS ( Intrusion-detection system,入侵檢測系統)來探查 OpenVPN 的連線建立封包,進而干擾它的傳輸能力
    因為缺少明顯的連線特徵與高度加密性,防火長城並不能知道 Shadowsocks 正在進行加密傳輸,當然透過發覺大流量的、特定傳輸埠號的 SSH 連線還是可以封鎖單一網路位址的連線,但並無法探查、解析 Shadowsocks 的傳輸內容

  • 打破防火長城的神器
  • 承上點,對於在大陸地區辦公的外籍人士而言,防火長城造成了眾多干擾,雖然說 VPN 可以突破封鎖
    但是在防火長城封鎖日益僅的今日,連 OpenVPN 都可能被干擾的情況下,Shadowsocks 的高度突破能力就十分的吸引人


    然而請注意,Shadowsocks 僅是 Socks Proxy 的一種,並非 VPN 協議建立加密的私人通道,它僅僅是個代理伺服器而已,與 VPN 協議有差異



    因為要去大陸地區辦公,作為 OpenVPN 的備案,來弄個 Shadowsocks 保平安

    雖然說 Shadowsocks 的開發者 clowwindy 在被有關當局施壓後已經刪除了 Github 上所有的 Shadowsocks 程式碼,但 Github 上還是有跟山一樣高的自動安裝資源跟備份,直接導入系統後就可以一路按「Y」到底了,當然也可以自己弄一些額外的設定就是了

    安裝教學如下

    如果要設定多個使用者

    如何去維護與控制 Shadowsocks 伺服器

    到這邊伺服端的處理都完成了,而 Shadowsocks 使用者端的軟體基本上填入你的伺服端網路位址、傳輸埠號、加密方式與密碼就可以了



    以台北地區的中華電信 vDSL ,理論頻寬 100M/40M 環境作測試

    測試結果顯示,國內直接連線到伺服器延遲約 27 微秒

    你說在防火長城之下的連線效能?我覺得能用就要偷笑了

    3 則留言:

    1. 您好,請問這款代理支援 Socks5,那可否在不安裝他 client tools 的情況下直接設置IE的代理設定使用?
      透過自架在內網的 Socks5 proxy server 進行代理來上網的話,對於安全性是否有疑慮?

      回覆刪除