Shadowsocks 一鍵安裝腳本(四合一)

該腳本由網友秋水逸冰製作,作者本人已經刪除原文,本文僅複製備份。
該腳本託管在Github上仍保留了master分支,所以腳本依然可用。

腳本適用環境

  • 系統支持:CentOS 6+,Debian 7+,Ubuntu 12+
  • 內存要求:≥128M
  • 日期  :2019 年 01 月 11 日

關於本腳本

  • 一鍵安裝 Shadowsocks-Python, ShadowsocksR, Shadowsocks-Go, Shadowsocks-libev 版(四選一)服務端;
  • 各版本的啟動腳本及配置文件名不再重合;
  • 每次運行可安裝一種版本;
  • 支持以多次運行來安裝多個版本,且各個版本可以共存(注意端口號需設成不同);
  • 若已安裝多個版本,則卸載時也需多次運行(每次卸載一種);

默認配置

  • 服務器端口:自己設定(如不設定,默認從 9000-19999 之間隨機生成)
  • 密碼:自己設定(如不設定,默認為 teddysun.com)
  • 加密方式:自己設定(如不設定,Python 和 libev 版默認為 aes-256-gcm,R 和 Go 版默認為 aes-256-cfb)
  • 協議(protocol):自己設定(如不設定,默認為 origin)(僅限 ShadowsocksR 版)
  • 混淆(obfs):自己設定(如不設定,默認為 plain)(僅限 ShadowsocksR 版)
  • 備註:腳本默認創建單用戶配置文件,如需配置多用戶,請手動修改相應的配置文件後重啟即可。

客戶端下載

  • 常規版 Windows 客戶端
  • https://github.com/shadowsocks/shadowsocks-windows/releases
  • ShadowsocksR 版 Windows 客戶端
  • https://github.com/shadowsocksrr/shadowsocksr-csharp/releases

使用方法

使用root用戶登錄,運行以下命令:

wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

安裝完成後,腳本提示如下

Congratulations, your_shadowsocks_version install completed!
Your Server IP        :your_server_ip
Your Server Port      :your_server_port
Your Password         :your_password
Your Encryption Method:your_encryption_method

Your QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)
 ss://your_encryption_method:[email protected]_server_ip:your_server_port
Your QR Code has been saved as a PNG file path:
 your_path.png

Welcome to visit:https://teddysun.com/486.html
Enjoy it!

卸載方法

若已安裝多個版本,則卸載時也需多次運行(每次卸載一種)使用root用戶登錄,運行以下命令:

./shadowsocks-all.sh uninstall

啟動腳本

啟動腳本後面的參數含義,從左至右依次為:啟動,停止,重啟,查看狀態。

  • Shadowsocks-Python 版:

/etc/init.d/shadowsocks-python start | stop | restart | status

  • ShadowsocksR 版:

/etc/init.d/shadowsocks-r start | stop | restart | status

  • Shadowsocks-Go 版:

/etc/init.d/shadowsocks-go start | stop | restart | status

  • Shadowsocks-libev 版:

/etc/init.d/shadowsocks-libev start | stop | restart | status

各版本默認配置文件

Shadowsocks-Python 版:
/etc/shadowsocks-python/config.json

ShadowsocksR 版:
/etc/shadowsocks-r/config.json

Shadowsocks-Go 版:
/etc/shadowsocks-go/config.json

Shadowsocks-libev 版:
/etc/shadowsocks-libev/config.json

更新日誌

2019 年 01 月 11 日:

  • 升級:libsodium 到最新版本 1.0.17;
  • 升級:mbedtls 到最新版本 2.16.0;

2018 年 11 月 05 日:

  • 升級:使用 Github 上最新代碼編譯出 Go 版二進制可執行文件,版本號 1.2.2。

2018 年 06 月 01 日:

  • 修正:在啟用了插件 simple-obfs 的情況下,libev 版啟動失敗的問題;
  • 修正:在使用 /etc/init.d/shadowsocks-libev restart 命令重啟 libev 版服務端時,偶爾出現的 “bind: Address already in use” 問題;
  • 修正:移除 libev 版配置文件中的 local_address 字段;
  • 修改:不再默認使用 root 用戶啟動,改為使用 nobody 用戶啟動 libev 版服務端 ss-server;
  • 升級:mbedtls 到版本 2.9.0;
  • 修改:libev 版啟動腳本中的 -u 參數(即同時啟用 TCP 和 UDP 模式),改到配置文件里配置為 “mode”: “tcp_and_udp”;
  • 修改:libev 版配置文件的內置 NameServers 為 8.8.8.8,默認是從 /etc/resolv.conf 中取得。

2018 年 02 月 07 日:

  • 修改:將默認端口從 8989 改為從 9000-19999 之間隨機生成。

2018 年 02 月 06 日:

  • 修改:ShadowsocksR 版為 ShadowsocksRR 最新版;
  • 新增:ShadowsocksR 版的協議(protocol)增加了 4 個,分別為:
auth_chain_c
auth_chain_d
auth_chain_e
auth_chain_f

2017 年 12 月 29 日:

  • 升級:libsodium 到 1.0.16。

2017 年 11 月 25 日:

  • 如果 Linux 內核版本大於 3.7.0,則配置文件默認支持 TCP fast open;
  • 新增:libev 版啟動時支持 verbose mode,也就是默認寫 log 到 /var/log/messages 方便查看。

2017 年 11 月 12 日:

  • 新增生成 ss:// 或 ssr:// 鏈接,以及其二維碼圖片。

腳本會根據當前安裝的版本以及輸入的各項配置,自動生成 ss:// 或 ssr:// 的鏈接並在安裝成功後顯示,直接複製即可被客戶端識別。同時生成其二維碼圖片,並保存在當前目錄下,下載後用看圖軟件打開,也能被客戶端識別。複製二維碼鏈接後 Shadowsocks 客戶端識別示例:

Shadowsocks 一鍵安裝腳本(四合一) 2

複製二維碼鏈接後 ShadowsocksR 客戶端識別示例:

Shadowsocks 一鍵安裝腳本(四合一) 3

二維碼(QR Code)參考鏈接:

  • https://github.com/shadowsocks/shadowsocks/wiki/Generate-QR-Code-for-Android-or-iOS-Clients
  • https://github.com/shadowsocksr-backup/shadowsocks-rss/wiki/SSR-QRcode-scheme

2017 年 10 月 22 日:

  • 升級:libsodium 到 1.0.15。

2017 年 10 月 14 日:

  • 新增:在安裝 Shadowsocks-libev 版時可選安裝 simple-obfs 服務端。腳本通過判斷 autoconf 版本是否大於或等於 2.67 來一鍵安裝 simple-obfs 服務端。並且,支持在安裝過程中選擇 obfs 為 http 或 tls。

2017 年 09 月 16 日:

  • 新增:ShadowsocksR 版可選協議(protocol)auth_chain_b 。使用該協議需更新到最新(4.7.0) ShadowsocksR 版客戶端;
  • 修改:更新 ShadowsocksR 源碼下載地址。

2017 年 07 月 23 日:

  • 修正:卸載時可自行選擇某個版本卸載,若該版本不存在則報錯退出。

2017 年 07 月 22 日:

  • 修正:默認加密方式從 aes-256-cfb 改為 aes-256-gcm(Python 和 libev 版);
  • 新增:安裝時可選 16 種加密方式的其中之一(Python 和 libev 版)。如下所示:
aes-256-gcm
aes-192-gcm
aes-128-gcm
aes-256-ctr
aes-192-ctr
aes-128-ctr
aes-256-cfb
aes-192-cfb
aes-128-cfb
camellia-128-cfb
camellia-192-cfb
camellia-256-cfb
chacha20-ietf-poly1305
chacha20-ietf
chacha20
rc4-md5
  • 新增:安裝時可選 9 種加密方式的其中之一(Go 版)。如下所示:
aes-256-cfb
aes-192-cfb
aes-128-cfb
aes-256-ctr
aes-192-ctr
aes-128-ctr
chacha20-ietf
chacha20
rc4-md5
  • 新增:安裝時可選 15 種加密方式的其中之一(none 是不加密,ShadowsocksR 版)。如下所示:
none
aes-256-cfb
aes-192-cfb
aes-128-cfb
aes-256-cfb8
aes-192-cfb8
aes-128-cfb8
aes-256-ctr
aes-192-ctr
aes-128-ctr
chacha20-ietf
chacha20
salsa20
xchacha20
xsalsa20
rc4-md5
  • 新增:安裝時可選 7 種協議(protocol)的其中之一(僅限 ShadowsocksR 版)。如下所示:
origin
verify_deflate
auth_sha1_v4
auth_sha1_v4_compatible
auth_aes128_md5
auth_aes128_sha1
auth_chain_a
auth_chain_b
  • 新增:安裝時可選 9 種混淆(obfs)的其中之一(僅限 ShadowsocksR 版)。如下所示:
plain
http_simple
http_simple_compatible
http_post
http_post_compatible
tls1.2_ticket_auth
tls1.2_ticket_auth_compatible
tls1.2_ticket_fastauth
tls1.2_ticket_fastauth_compatible

2017 年 02 月 24 日:

  • 恢復: 通過 Github API 自動獲取 Shadowsocks-libev 的最新 release 版本的功能(v3.0.3)。

2017 年 02 月 13 日:

  • 升級: Shadowsocks-libev 版到版本 3.0.2;
  • 升級: Shadowsocks-go 版到版本 1.2.1(基於 Github 最新代碼,用 go 1.8 編譯完成的 x86 和 x86_64 二進制文件);
  • 修復:在 Debian 7 下默認沒有 libudns-dev 依賴包的問題。

2017 年 02 月 12 日:

  • 升級: Shadowsocks-libev 版到版本 3.0.1。

2017 年 01 月 27 日:

  • 升級: Shadowsocks-go 版到版本 1.2.1 (僅適用於 x86_64 系統)