Linux 伺服器 / NAS 如何使用易聯(命令列)
適用於雲端伺服器、VPS、家用 NAS、樹莓派這類沒有圖形介面的 Linux。有桌面的 Windows / macOS / Linux 直接使用我們的客戶端即可,不需要閱讀本文。
一句話原理:代理軟體在你機器上開一個本機連接埠(預設 7890),你的程式連到這個連接埠出去,本地網站直連、海外網站走易聯節點。
一、先認清一件事:Linux 伺服器沒有「一鍵客戶端」
我們的客戶端是桌面圖形程式,要有視窗才能點選。純命令列系統裝不上,也無法點選。
伺服器上使用的是命令列軟體,但它們讀取同一份訂閱、走同一個帳號:
| 方案 | 適合誰 | 難度 |
|---|---|---|
| mihomo(推薦) | 絕大多數使用者,開箱即可用 | ★ |
| sing-box | 已經在使用 sing-box 的人 | ★★ |
| Docker | NAS 上已經在跑 Docker 的 | ★ |
名稱容易混淆:mihomo = Clash.Meta 的新名稱,讀取的是 Clash 格式訂閱;sing-box 讀取自己的 JSON 格式。我們兩種都提供,同一個訂閱連結,依客戶端自報的身分區分。
二、最快的方式:一鍵腳本(mihomo)
登入伺服器,把下面的訂閱連結換成你自己的(從面板複製),整段貼進去:
curl -fsSL https://dl.ylink.im/yl-linux.sh | sudo bash -s -- "https://cp.yli.world/api/v1/client/subscribe?token=你的token"
腳本會依序完成下列工作,並在每一步告訴你結果:
- 依你的 CPU 架構下載 mihomo(amd64 / arm64),驗證檔案指紋後才安裝;
- 以正確的格式取得你的訂閱,並檢查內容是否正常;
- 產生 systemd 服務,開機自動啟動、行程被終止後自動重新拉起;
- 加入一個排程工作,每天凌晨自動重新取得訂閱(節點有變動不需要你處理);
- 最後做一次真實驗收:透過代理存取一次外網、列印出口 IP、確認本地網站仍走直連。
執行完你會看到類似下列的輸出:
==> 架構 amd64 · mihomo v1.19.34
==> 下載 mihomo
✓ 驗證通過
==> 取得訂閱
✓ 110037 位元組
✓ 代理只監聽 127.0.0.1:7890(公網存取不到)
==> 設定自檢
✓ 設定可用
==> 安裝服務
✓ mihomo 已啟動
==> 驗收
✓ 透過代理正常(HTTP 204)
✓ 出口 IP:72.68.x.x(New York City)
✓ baidu 耗時 0.068s(小於 0.5s 表示本地網站走直連)
⚠️ 腳本預設把代理連接埠收在 127.0.0.1,只有本機可用。這是我們刻意設計的——在公網伺服器上把 7890 開放,等於提供全世界一個沒有密碼的代理。
需要給容器使用、或給區域網路其他機器使用,加上參數重新執行即可:
# 讓本機 Docker 容器能透過 172.17.0.1:7890 走代理
curl -fsSL https://dl.ylink.im/yl-linux.sh | sudo bash -s -- --docker "你的訂閱連結"
# 允許區域網路其他機器使用(先確認防火牆/安全群組已阻擋公網)
curl -fsSL https://dl.ylink.im/yl-linux.sh | sudo bash -s -- --lan "你的訂閱連結"
不再需要時:
curl -fsSL https://dl.ylink.im/yl-linux.sh | sudo bash -s -- --uninstall
三、手動安裝 mihomo(不想執行腳本的看這裡)
3.1 下載
mkdir -p ~/yilian/bin ~/yilian/conf && cd ~/yilian/bin
curl -LO https://github.com/MetaCubeX/mihomo/releases/download/v1.19.34/mihomo-linux-amd64-v1.19.34.gz
gunzip mihomo-linux-amd64-v1.19.34.gz && mv mihomo-linux-amd64-v1.19.34 mihomo && chmod +x mihomo
./mihomo -v
ARM 機器(樹莓派、部分雲端業者的免費方案)把檔名中的
amd64換成arm64。
本地直連 GitHub 較慢時,使用我們鏡像站上的同一份檔案:https://dl.ylink.im/linux/mihomo-linux-amd64-v1.19.34.gz(旁邊有.gz.sha256驗證檔)。
3.2 取得訂閱(這一行的 User-Agent 不能省略)
cd ~/yilian
curl -sSL -H "User-Agent: clash-verge/v2.0" -o conf/config.yaml \
"https://cp.yli.world/api/v1/client/subscribe?token=你的token"
ls -l conf/config.yaml
少了 -H "User-Agent: ...",取得的是其他格式,mihomo 無法啟動。正常大小約 100 KB。
3.3 先手動執行一次
cd ~/yilian && ./bin/mihomo -d conf -f conf/config.yaml
持續輸出日誌、沒有 FATAL 就是正常。這個視窗先不要關閉,另開一個終端機做驗收。
3.4 驗收(唯一可信的判據)
curl -s -m 12 -o /dev/null -w "直連 %{http_code}\n" https://www.google.com/generate_204
curl -s -m 20 -x http://127.0.0.1:7890 -o /dev/null -w "代理 %{http_code} %{time_total}s\n" https://www.google.com/generate_204
curl -s -m 20 -x http://127.0.0.1:7890 https://ipinfo.io/json | grep -E '"ip"|"city"|"org"'
curl -s -x http://127.0.0.1:7890 -o /dev/null -w "baidu %{http_code} %{time_total}s\n" https://www.baidu.com
我們在中國大陸實測的回顯(出口 IP 已打碼):
直連 000 ← 直連被封鎖,正常
代理 204 1.376405s ← 透過代理正常
"ip": "72.68.x.x",
"city": "New York City",
"org": "AS701 Verizon Business", ← 美國住宅出口
baidu 200 0.072920 ← 72 毫秒,表示本地網站走直連
四、讓它開機自動啟動(systemd)
按 Ctrl+C 停止剛才的視窗,然後:
sudo mkdir -p /opt/mihomo /etc/mihomo
sudo cp ~/yilian/bin/mihomo /opt/mihomo/
sudo cp ~/yilian/conf/config.yaml /etc/mihomo/
sudo chmod 600 /etc/mihomo/config.yaml # 內容包含你的 token
sudo tee /etc/systemd/system/mihomo.service >/dev/null <<'EOF'
[Unit]
Description=Mihomo Proxy (Yilian)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/opt/mihomo/mihomo -d /etc/mihomo -f /etc/mihomo/config.yaml
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable --now mihomo
systemctl is-active mihomo
顯示 active 就完成了。行程被終止後 3 秒會自動重新啟動(已實測:終止主要行程,數秒後以新的 PID 恢復,代理照常運作)。
常用指令:
systemctl status mihomo # 狀態
journalctl -u mihomo -f # 即時日誌
sudo systemctl restart mihomo # 重新啟動
節點有更新(我們新增節點、修改名稱)時,重新取得訂閱並重新啟動:
curl -sSL -H "User-Agent: clash-verge/v2.0" -o /etc/mihomo/config.yaml \
"https://cp.yli.world/api/v1/client/subscribe?token=你的token" && sudo systemctl restart mihomo
使用第二節一鍵腳本安裝的,這一步已經做成每日排程工作,不需要手動執行。
五、如何讓程式真的走代理
服務啟動只是「本機 7890 有一個代理連接埠」,不等於系統流量會自動繞出去。三種用法:
5.1 只讓某一條指令走(最常用、最安全)
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890
curl https://ipinfo.io/ip
只對一條指令生效:
https_proxy=http://127.0.0.1:7890 git clone https://github.com/xxx/yyy.git
https_proxy=http://127.0.0.1:7890 wget https://example.com/file.zip
5.2 Docker 容器走代理
docker run --rm -e HTTP_PROXY=http://172.17.0.1:7890 -e HTTPS_PROXY=http://172.17.0.1:7890 \
curlimages/curl https://ipinfo.io/ip
172.17.0.1 是 Docker 預設橋接網路的宿主機位址。使用一鍵腳本的需要先加上 --docker 重新安裝一次,代理才會監聽這個位址;手動安裝的請把設定中的 allow-lan 改成 true。
5.3 整機透明代理(TUN)——新手請勿嘗試
TUN 會接管整台機器的路由。在 VPS 上開啟這個功能很容易讓自己的 SSH 中斷(尤其代理一失效、流量全堵住)。真的需要使用,請先確認你有業者的網頁控制台/VNC 可以救回。
六、sing-box 使用者看這裡
我們同一份訂閱同時支援 sing-box。直接使用面板裡的訂閱連結匯入即可,sing-box 會自行帶上版本資訊,伺服器依版本提供對應格式,不需要手動修改設定。
2026-11-14 在中國大陸專線環境實測(出口廣州移動):
| sing-box 版本 | 結果 |
|---|---|
| 1.14.4(最新) | ✅ 3/3 成功,出口美國住宅 IP,百度直連 78ms |
| 1.11.15 | ✅ 3/3 成功,出口美國住宅 IP,百度直連 69ms |
| 1.12 / 1.13 | 未單獨複測,依版本相容邏輯應與上述一致 |
取得訂閱(伺服器上沒有瀏覽器,使用 curl):
curl -sSL -H "User-Agent: sing-box/1.14.4" -o config.json \
"https://cp.yli.world/api/v1/client/subscribe?token=你的token"
⚠️ 伺服器上一定要先處理掉 TUN 入站。訂閱中預設帶有一段 tun(auto_route: true),在伺服器上以 root 執行會接管整台機器的路由,代理一旦異常 SSH 就會中斷。
用任意編輯器把 inbounds 裡 "type": "tun" 的整段刪除,只保留這兩段:
{ "type": "socks", "tag": "socks-in", "listen": "127.0.0.1", "listen_port": 2333 },
{ "type": "mixed", "tag": "mixed-in", "listen": "127.0.0.1", "listen_port": 2334 }
然後:
sing-box check -c config.json # 先自檢
sing-box run -c config.json # 再執行
curl -x http://127.0.0.1:2334 https://ipinfo.io/json # 連接埠是 2334,不是 7890
兩個常見陷阱:
① 連接埠不同——sing-box 的訂閱提供的是 2333(socks)/2334(mixed),照抄 mihomo 的 7890 會連不上。
② 規則檔案需要連網下載(約 100 KB),第一次啟動請等十幾秒再測試;下載失敗會在啟動日誌中明確寫出。
七、常見問題
Q:curl -x 出現 Failed to connect ... 7890
服務沒有啟動,或者連接埠不對。檢查:ss -lnt | grep 7890、journalctl -u mihomo -n 50。
Q:代理通了,但出口 IP 不是我想要的國家
你在客戶端/面板中選了其他節點。同一個訂閱裡的節點是同一批,換節點即可(在客戶端中選擇,或修改設定裡的群組)。
Q:這樣使用會多耗流量嗎?如何計費?
和手機、電腦上相同:本地網站走直連不計費;走代理的依節點倍率計算。驗收用的 ipinfo.io、generate_204 這類請求幾乎不佔流量。
Q:會不會被判定為多裝置?
不會。裝置數依同時在線計算,與你使用哪個系統無關。但請勿把訂閱連結給他人使用——那才是共用。
Q:能不能把 7890 開放給同事一起使用?
不行。那是沒有密碼的代理,等於把帳號送人。要多人使用請各自訂閱。
Q:腳本會不會動到機器上原有的東西?
只寫入 /opt/mihomo、/etc/mihomo 和一個 systemd 服務;--uninstall 會將它們全部刪除。
八、四條驗收清單(照抄即可)
systemctl is-active mihomo # 期望 active
curl -s -x http://127.0.0.1:7890 https://ipinfo.io/ip # 期望美國住宅 IP
curl -sS -x http://127.0.0.1:7890 -o /dev/null -w "%{http_code}\n" https://www.google.com/generate_204 # 期望 204
curl -s -x http://127.0.0.1:7890 -o /dev/null -w "%{time_total}\n" https://www.baidu.com # 期望 < 0.3s
四條都符合 = 線路通、分流正確、住宅出口正在作用。任何一條不符,請把四項輸出一起提供給我們的客服。
九、在伺服器上跑 AI API 中轉(new-api / Sub2API / one-api)
不少人租伺服器不只是為了自己上網,而是跑一個 AI API 中轉:new-api、Sub2API、one-api 這類開源專案,把 OpenAI、Claude、Gemini 的額度統一成一個介面,自己用,或者和朋友共乘分攤。
這類服務裝起來不難,卡住的通常是伺服器出去的那條路:
- 這些 AI 服務對機房 IP 比較敏感。同一個出口上登入多個帳號,更容易觸發驗證、限流,嚴重的會停號;
- 伺服器預設沒有代理,裝好的中轉程式直連
api.openai.com可能根本連不上。
把第二、三節裝好的 mihomo 接進去就行,兩種接法:
9.1 給服務加環境變數(最省事)
以 systemd 啟動的 new-api 為例,加一個 drop-in,不動原本的 service 檔:
sudo mkdir -p /etc/systemd/system/new-api.service.d
sudo tee /etc/systemd/system/new-api.service.d/proxy.conf >/dev/null <<'EOF'
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF
sudo systemctl daemon-reload && sudo systemctl restart new-api
sudo systemctl show new-api -p Environment
服務名按你實際的改(
systemctl list-units | grep -i api查)。用 Docker 跑的,把-e HTTP_PROXY=http://172.17.0.1:7890加進docker run,或寫進 compose 的environment:裡——但要先按 5.2 讓代理監聽橋接網路位址(一鍵腳本加上--docker重新安裝一次),否則172.17.0.1根本沒有人在聽,容器裡只會一直逾時。
9.2 在程式後台填代理位址
new-api、Sub2API 這類專案一般有「代理」設定項,填 http://127.0.0.1:7890 即可,效果和上面一樣。跑在容器裡的例外:容器內的 127.0.0.1 是容器自己,要填 http://172.17.0.1:7890(同樣需要先按 5.2 讓代理監聽橋接網路位址)。
9.3 驗證真的走了代理
curl -x http://127.0.0.1:7890 -o /dev/null -w "%{http_code}\n" https://api.openai.com/v1/models
回傳 401 是對的——它說明已經連上了,只是沒帶 key。如果是逾時或 000,回去看第四節的 mihomo 服務狀態。
⚠️ 一個容易忽略的點:如果你是把中轉給別人用(共乘、對外發 key),這條出口會同時承載多個帳號的登入狀態。機房 IP 加多帳號是風控最敏感的組合,比單人多裝置更容易出問題。這種情況建議讓整條線路走固定的美國住宅出口,而不是拿一個共用的機房 IP 去跑一堆帳號。