+86 135 410 16684Mon. - Fri. 10:00-22:00

Google Cloud 安裝 ShadowsocksR

Google Cloud 安裝 ShadowsocksR

Google Cloud 安裝 ShadowsocksR

幾年雲服務市場競爭激烈

從一開始的亞馬遜 AWS,接著微軟的 Microsoft Azure。

到最後 Google 也跳進來做 Google Cloud 谷歌雲

直接推出最優惠的試用方案: 一年免費試用,再送 300 美元試用額度

只要有 Google 帳號就可以馬上來申請 freetrial

建立 VM 執行個體

申請完成後
直接進入 Google Cloud 主控台 建立一個新的專案,專案名稱可以隨便取

new-project

再到專案中的 Computer Engine 建立 VM 執行個體

create-vm-instance

  • instance 名稱隨便取
  • 區域,如果是要翻牆,建議選 asia-northeast 或 asia-east

    亞洲區的分別在

    1. asia-northeast -> 日本
    2. asia-east -> 台灣
    3. asia-southeast -> 新加坡

    其他區域: https://cloud.google.com/about/locations

  • 機器類型,建議選微型
  • 開機磁碟選 CentOS 6
  • 身分及 API 存取權、防火牆,不需要修改
  • 網路可以用預設的,系統會自動配一個臨時 IP 位址

    IP 用臨時就可以了,因為一個專案每一個區域只能申請一個免費的固定 IP

    new-vm-instance

機器類型選擇微型,是因為只是要用 ShadowsocksR 服務不需要太多電腦運算能力,而且價差非常的大。

之前建立一個 VM 在使用幾天後,Google Cloud 平台就建議將微型 vCPU 升級到小型,用了一個月後試用額度也從 300 USD 扣到只剩 220 USD 左右 (當然也跟我每天晚上都看 youtube 也有關係)

後來我發現… Google Cloud 有個更大的陰謀
就是我建立一個 VM 執行個體,在沒有運行任何程式的情況下
過幾天再登入,居然也出現「提升效能」的建議,所以真的可以不用理會平台的升級建議

upgrade-notice

下載 ShadowsocksR 源碼

建立完成後,在瀏覽器視窗中開啟

open-with-browser

登入 console 直接切換管理者角色 sudo su
避免之後安裝套件或執行程式權限不足

更新一下套件中心 yum update -y

因為 ShadowsocksR 要從 github 下載
(08/20/2017 更新:先前的 repo 不知什麼原因刪除了,重新在 github 上面找到備份版本,同時我也在 GitLab 備份 一個,避免之後又不見。)

先安裝 git yum install git -y

再下載 ShadowsocksR 原始碼

cd ~ && git clone https://github.com/shadowsocksr-backup/shadowsocksr.git && cd shadowsocksr && git checkout -b manyuser origin/manyuser

下載完後,執行 bash initcfg.sh 自動生成初始配置檔案

用 vim user-config.json 編輯使用者配置

// 主要修改
server_port   任何 0 - 65535 port
password      登入密碼
method        加密方法用 chacha20-ietf (需要額外安裝套件) 或 aes-256-cfb
protocol      加密協議用預設 auth_aes128_md5 或 auth_sha1_v4
obfs          建議用 tls1.2_ticket_auth
obfs_param    混淆參數建議加上 akamai.com,cloudflare.com

edit-user-config

設定 iptables

iptables -I INPUT -p tcp --dport <server_port> -j ACCEPT
iptables -I INPUT -p udp --dport <server_port> -j ACCEPT

儲存設置,重新啟動 iptables

/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart

執行 /etc/init.d/iptables status 檢查設定是否成功

check-iptables

其他 iptables 指令說明
https://www.digitalocean.com/community/tutorials/how-to-list-and-delete-iptables-firewall-rules

安裝 BBR

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod 755 bbr.sh
./bbr.sh

安裝會花一段時間,完成後 VM 需要重開。

重新開機後,登入系統 console 執行 uname -r 確認有更新到 4.10 以上即可。

新增防火牆規則

根據 SSR user-config.json server_port 設定,開啟對應 tcp/udp port

如圖設定

new-firewall-rules

安裝 libsodium

如果是使用 chacha20-ietf 加密方法
直接啟動 SSR server 會出現 ‘libsodium not found’ 的錯誤

libsodium-not-found

需要安裝 libsodium 套件

yum -y groupinstall "Development Tools"
wget https://github.com/jedisct1/libsodium/releases/download/1.0.12/libsodium-1.0.12.tar.gz
tar zxf libsodium-1.0.12.tar.gz && cd libsodium*
./configure && make && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

全部完成後就可以啟動 SSR server 了

python ~/shadowsocksr/shadowsocks/server.py -d start

再啟動 BBR

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep bbr

安裝客戶端

對照 user-config.json 設定客戶端,打完收工