CentOS 架設 Shadowsocks 伺服器

shadowsocks 編譯架設教學。

Shadowsocks 是一種 Socks5 的代理伺服器,它最初的設計目的就是用來突破 GFW (中國的防火牆長城),用來繞過網路審查是一種非常有效的工具(雖然現在對於它突破封鎖的能力在網上一直有爭議)。

需求

一台可以遠端連線的主機或VPS

架設 Server 端

Shadowsocks 有實作非常多語言的版本,這裡選擇編譯 C 語言編寫的 shadowsocks-libev

安裝編譯工具

sudo dnf install git gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel

編譯

下載原始碼

git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev/
git submodule update --init

開始編譯

./autogen.sh && ./configure && make

編譯完成後可以在 completions/zsh 資料夾下看到編譯好的執行檔

安裝(執行檔預設會安裝到 /usr/local/bin 底下)

sudo make install

設定

再來要把 shadowsocks-libev 設定為開機執行的服務

編輯設定 shadowsocks 檔

新建設定檔

sudo mkdir /etc/shadowsocks-libev
sudo vim /etc/shadowsocks-libev/config.json

在 config.json 輸入如下內容

不想太麻煩的話只要設定 server_portpassword 就好了

{
    "server":["0.0.0.0"],
    "mode":"tcp_and_udp",
    "server_port":8388,
    "local_port":1080,
    "password":"barfoo!",
    "method":"chacha20-ietf-poly1305"
}

server: 監聽的 IP
mode: 啟用 tcp 或 udp 轉發
server_port: 伺服器監聽端口
local_port: 本地端口
password: 連線時需要的密碼
method: 加密方式

系統服務設定

新建服務設定檔

sudo vim /lib/systemd/system/shadowsocks-libev.service

填入以下內容

[Unit]
   Description=Shadowsocks-libev Server Service
[Service]
   Type=simple
   User=root
   Group=root
   ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/config.json -u
[Install]
   WantedBy=multi-user.target

啟動系統服務

sudo systemctl daemon-reload
sudo systemctl enable --now shadowsocks-libev

檢測服務狀態

systemctl status shadowsocks-libev.service

Active: active (running) 代表啟動成功

shadowsocks-libev服務 active 狀態

設定防火牆

請將8388改為剛剛設定的 server_port

sudo firewall-cmd --permanent --add-port=8388/tcp
sudo firewall-cmd --permanent --add-port=8388/udp
sudo firewall-cmd --reload

這樣一來server 端就設定完成了

客服端

在官網已經提供各式作業系統的客服端,這裡以 windows 本版為範例

下載

下載導覽列

點選 shadowsocks-win 的 GitHub 連結 (不選擇QT版,因為已經沒有再更新了)

官方client 端下載頁面

往下找到 Shadowsocks-x.x.x.xxx.zip 點擊連結開始下載

GitHub 下載選擇頁面

下載完後解壓縮就可以看到client 端的執行檔了

client 端解壓縮內容

開始連線

打開 Shadowsocks.exe

填寫 伺服器位址伺服器連接埠(server 端填寫的server_port)、密碼(server 端填寫的password),加密的地方選擇和伺服器一樣的加密方法(server 端填寫的method)

Shadowsocks client 端設定介面

設定好後按下確定,右鍵點擊螢幕右下角的 Shadowsock 圖示
選擇 系統代理 -> 全局模式

開始連線

這時候去任意一個查詢 IP 的網站,如果檢測出來的 IP 變得和伺服器的 IP 一樣就代表你成功囉

Built with Hugo
Theme Stack designed by Jimmy