- 逆向行駛 - https://520.be/ -

實戰Shadowsocks,上網就該如此簡單!

/* ================================================================ ✨ 實戰 Shadowsocks – Neo-Brutalism (新粗野主義) 頁籤修復版 ================================================================ */ /* ========================================== 🔑 1. 純 CSS 頁籤切換系統 (Radio Button Hack) ========================================== */ /* 把單選按鈕本身隱藏起來 (我們只透過 label 來點擊) */ .ff-tab-radio { display: none; } /* 頁籤選單的外框配置 */ .my-article .my-tabs-nav { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; justify-content: center; border-bottom: 4px solid var(--ink); padding-bottom: 24px; } /* 頁籤按鈕樣式 (把原本的 a 標籤改成 label) */ .my-article .my-tabs-nav .ff-tab-label { display: inline-block; padding: 10px 20px; border-radius: 6px; background: var(--paper-2); color: var(--ink); font-size: 15px; font-weight: 800; cursor: pointer; transition: 0.2s ease; border: 3px solid var(--ink); box-shadow: 4px 4px 0 var(--ink); } /* 頁籤按鈕滑鼠移過去的抬起與跳色效果 (Neo-Brutalism) */ .my-article .my-tabs-nav .ff-tab-label:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--ink); background: var(--lime); color: var(--ink); } /* 🎯 關鍵邏輯:當對應的 radio 被選中時,把上面的 label 變成黃色 */ #tab-1:checked ~ .my-tabs-nav label[for="tab-1"], #tab-2:checked ~ .my-tabs-nav label[for="tab-2"], #tab-3:checked ~ .my-tabs-nav label[for="tab-3"], #tab-4:checked ~ .my-tabs-nav label[for="tab-4"], #tab-5:checked ~ .my-tabs-nav label[for="tab-5"], #tab-6:checked ~ .my-tabs-nav label[for="tab-6"], #tab-7:checked ~ .my-tabs-nav label[for="tab-7"] { background: var(--yellow); transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--ink); } /* 內容區塊的大箱子 */ .my-article .my-tabs-container { background: var(--paper); border-radius: 12px; padding: 32px; border: 4px solid var(--ink); box-shadow: 8px 8px 0 var(--ink); min-height: 200px; margin-bottom: 40px; } /* 預設把所有內容面板隱藏起來,並加上淡入動畫 */ .my-article .my-tab-panel { display: none; animation: fadeIn 0.4s ease; } /* 🎯 關鍵邏輯:當 radio 被選中時,顯示對應的面板內容 */ #tab-1:checked ~ .my-tabs-container .panel-1, #tab-2:checked ~ .my-tabs-container .panel-2, #tab-3:checked ~ .my-tabs-container .panel-3, #tab-4:checked ~ .my-tabs-container .panel-4, #tab-5:checked ~ .my-tabs-container .panel-5, #tab-6:checked ~ .my-tabs-container .panel-6, #tab-7:checked ~ .my-tabs-container .panel-7 { display: block; } @keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } } /* ----- 手機版微調 (RWD) ----- */ @media (max-width: 600px) { .my-article .my-tabs-nav .ff-tab-label { font-size: 14px; padding: 8px 12px; flex: 1 1 40%; text-align: center; } .my-article .my-tabs-container { padding: 20px 16px; } }

🏄‍♂️ 實戰 Shadowsocks,上網就該如此簡單!打造專屬數位任意門

🔥 一句話總結懶人包:
Surfing, it’s so simple! 上網就該如此簡單!
如同大陸同胞常喊的,Shadowsocks 跟 Squid 一樣是很成熟的 Proxy(代理伺服器,就像是幫你跑腿的快遞員)程式了。雖然我自己是比較喜歡 Squid,但是應用在手機上連線就比較麻煩了。市面上免費 VPN 一大堆,可是限制很多、不然就是廣告一大堆 😩

所以選擇了占用資源最少的 shadowsocks-libev,而且全部透過 dnf 安裝。在 Debian 11, CentOS 6.10 (Final)7.6.1810 安裝上也順利成功執行,方便性非常高 🤖🤓🤖。

這就像是你在網路上建了一道專屬的「數位任意門」,不論原本的網路環境怎麼封鎖,只要推開這扇門,就能暢遊全世界!🚪✨


🟦 🟦 🟦

💡 為什麼不直接買現成 VPN,要自己租 VPS 架設?

很多新手會問:「網路上 VPN 這麼多,為什麼還要那麼麻煩自己買機器裝?」這就像是你出國旅行,「買現成免費 VPN」就像是去擠免費的青年旅館,幾百個人搶同一條走道(頻寬),動不動就斷線;而「租 VPS 架設 Shadowsocks」則像是在國外租一間專屬你的小套房,不用跟別人搶網路,速度快又極度隱私安全!

至於說為什麼要選買 VPS 裝 Shadowsocks 不直接買 VPN 呢?我們來看看這價格到底有多香:

主機代管商與方案 記憶體規格 每月流量限制 年繳費用 (換算台幣)
HostUS [19] (KVM-0.5 方案) 512MB 750GB $45 美金 (約 1,400 台幣)
RamNode [20] (SKVMS 方案) 512MB 1TB $32.40 美金 (約 1,010 台幣)

所以如果擔心網速慢又不想跟太多人共用頻寬,而且沒有特殊需要切換國家的需求,如果又想學習操作 Linux (或是過個乾癮?!),買個便宜的 VPS 來裝 Shadowsocks 做 VPN 應用是最實惠的 🤖🤓🤖。


🔶 🔶 🔶

🛠️ 伺服器端安裝方法 (SOP 教學)

階段 A. Debian 系統快速安裝

sudo apt update
sudo apt install -y shadowsocks-libev
# 接著直接往下跳到建立設定檔的階段C

階段 B. CentOS 8 系統安裝流程

  • 安裝 epel 的軟體源:
    cd /opt
    sudo yum install -y dnf epel-release
  • 下載專屬 repo:
    rm -f /etc/yum.repos.d/outman-shadowsocks-libev.repo
    URL=https://copr.fedorainfracloud.org/coprs/outman/shadowsocks-libev/repo/epel-8/outman-shadowsocks-libev-epel-8.repo
    curl -sSL "$URL" -o /etc/yum.repos.d/outman-shadowsocks-libev.repo
    cat /etc/yum.repos.d/outman-shadowsocks-libev.repo
  • 安裝依賴套件並更新系統: 此時應該會出現有 shadowsocks-libev 可以安裝了 🤓:
    sudo dnf update -y && dnf info shadowsocks-libev
  • 安裝 shadowsocks-libev 主程式:
    sudo dnf install -y libsodium simple-obfs shadowsocks-libev

階段 C. 修改設定檔 (打造專屬金庫密碼)

這一步就像是設定你專屬小套房的「電子門鎖密碼」。請注意 server_port (連接埠) 與 password (密碼) 兩個部分可以自訂,其他無須修改:

rm -f /etc/shadowsocks-libev/config.json
cat >> /etc/shadowsocks-libev/config.json <<- EOF
{
"server":["::0","0.0.0.0"],
"mode":"tcp_and_udp",
"server_port":8088,
"password":"520be",
"timeout":60,
"method":"chacha20-ietf-poly1305"
}
EOF

階段 D. 設定防火牆 (讓警衛放行)

設定好門鎖後,還要記得跟大樓警衛(防火牆)說一聲。將自訂的 8088 連接埠 加入白名單 (預設是 8388):

service iptables stop
iptables -A INPUT -p tcp --dport 8088 -j ACCEPT
iptables -A INPUT -p udp --dport 8088 -j ACCEPT
service iptables save
systemctl restart iptables

如果是較新的系統使用 firewalld 則切換成下列指令:

firewall-cmd --permanent --add-port=8088/tcp
firewall-cmd --permanent --add-port=8088/udp
firewall-cmd --reload

階段 F. 啟用並啟動服務

systemctl enable shadowsocks-libev
systemctl start shadowsocks-libev

🟩 🟩 🟩

💻 額外的進階指令 (系統最佳化)

為了讓伺服器跑得更順,我們可以對 Linux 系統底層進行「最佳化」。這就像是把鄉間的雙線小路,直接拓寬成八線道的高速公路,讓網路封包不再塞車!

  • 檢查 shadowsocks-libev 啟動狀態:
    systemctl restart shadowsocks-libev
    systemctl status shadowsocks-libev -l
    ps ax | grep ss-server
    netstat -atunp | grep ss-server
  • 查詢最消耗記憶體的程式:
    top -b -o +%MEM
  • (可選) 最佳化系統的吞吐量、支撐能力:
ulimit -n 51200
sysctl -w net.core.default_qdisc=fq
sysctl -w net.core.rmem_default=65536
sysctl -w net.core.wmem_default=65536
sysctl -w net.core.rmem_max=67108864
sysctl -w net.core.wmem_max=67108864
sysctl -w net.core.netdev_max_backlog=4096
sysctl -w net.ipv4.tcp_congestion_control=htcp
sysctl -w net.ipv4.tcp_mtu_probing=1
sysctl -w net.ipv4.tcp_rmem='4096 87380 33554432'
sysctl -w net.ipv4.tcp_wmem='4096 65536 33554432'
# 個人常用的最佳化指令開始
sysctl -w net.core.optmem_max=25165824
sysctl -w net.core.somaxconn=4096
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.route.flush=1
sysctl -w net.ipv4.tcp_fastopen=3
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w net.ipv4.tcp_keepalive_time=1200
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sysctl -w net.ipv4.tcp_max_tw_buckets=1440000
sysctl -w net.ipv4.tcp_mtu_probing=1
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_tw_recycle=0
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w fs.file-max=2097152
###個人常用的最佳化指令結束
sysctl --system
🚨 畫重點!千萬別踩雷: 修改 sysctl 是非常深度的底層最佳化,如果你不確定你的 VPS 主機商是否有開放這些權限(某些 OpenVZ 架構的虛擬機會鎖死核心參數),請斟酌使用,以免導致網路斷線!

🟨 🟨 🟨

📱 各大平台用戶端下載

伺服器架好了,接下來就是要讓你的手機、電腦連線進去。這就像是下載一把「專屬鑰匙 App」,請依照你的作業系統點擊下方頁籤:

Shadowsocks官網 [21] Shadowsocks @ GitHub [22] Outline VPN官網 [23] Outline VPN @ GitHub [24]

🍎 iOS 用戶端

🌐 瀏覽器擴充功能

🐧 Linux 用戶端

🛜 OpenWRT 用戶端

  • opkg install shadowsocks-libev
  • opkg install shadowsocks-libev-polarssl

🟪 🟪 🟪

📚 參考資料與文獻

列印本文 [45] 👨‍👩‍👧‍👦 10 次瀏覽