教程

Linux 伺服器 / NAS 如何使用易聯(命令列)

適用於雲端伺服器、VPS、家用 NAS、樹莓派這類沒有圖形介面的 Linux。有桌面的 Windows / macOS / Linux 直接使用我們的客戶端即可,不需要閱讀本文。

易聯在 Linux 伺服器上如何運作:程式連本機 7890 連接埠,mihomo 按網域決定直連還是走易聯節點
程式只認本機一個連接埠,本地直連、海外走易聯節點

一句話原理:代理軟體在你機器上開一個本機連接埠(預設 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"

腳本會依序完成下列工作,並在每一步告訴你結果:

  1. 依你的 CPU 架構下載 mihomo(amd64 / arm64),驗證檔案指紋後才安裝;
  2. 以正確的格式取得你的訂閱,並檢查內容是否正常;
  3. 產生 systemd 服務,開機自動啟動、行程被終止後自動重新拉起;
  4. 加入一個排程工作,每天凌晨自動重新取得訂閱(節點有變動不需要你處理);
  5. 最後做一次真實驗收:透過代理存取一次外網、列印出口 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 有一個代理連接埠」,不等於系統流量會自動繞出去。三種用法:

一圖看懂:mihomo 服務 active,不等於你的程式走了代理 上半部分說明 mihomo 啟動後只是在本機 127.0.0.1:7890 提供一個代理連接埠,systemctl 顯示 active 只代表服務在跑,而且它只監聽本機、公網存取不到。下半部分說明 curl、git、pip、docker 這些程式預設不會自動使用它,必須明確指定,並列出三種接法:單條指令加環境變數、Docker 用 172.17.0.1:7890 這個閘道位址而不是 127.0.0.1、整機 TUN 會接管路由且容易弄斷 VPS 的 SSH。最後強調判斷標準是 curl -x 能通,而不是 systemctl 顯示 active。 服務 active ≠ 程式走了代理 裝完之後最容易搞錯的一步,第五節整節都在講它 已經做到的:本機 7890 有一個代理埠 systemctl is-active mihomo 顯示 active 它只監聽 127.0.0.1,公網存取不到(刻意的) 這一步不會自動發生 還沒做到的:程式根本不知道要用它 curl / git / pip / docker 預設都直連,不看 7890 三種接法,按需要挑一種 1 只讓某一條指令走(最安全) export https_proxy=http://127.0.0.1:7890 2 Docker 容器走代理 用 172.17.0.1:7890(閘道),不是 127.0.0.1 3 整機 TUN:會接管路由 VPS 上開它,很容易把自己的 SSH 弄斷 判斷標準只有一個 curl -x 能通,不是 systemctl 顯示 active
先把「代理埠起來了」和「程式真的在用」分開,後面就不會白排查半天

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 的額度統一成一個介面,自己用,或者和朋友共乘分攤。

一圖看懂:new-api / Sub2API 這類 AI API 中轉的出網鏈路 流程圖:跑在伺服器上的 new-api 或 Sub2API 預設只會直連 api.openai.com,不認本機 7890;透過 HTTP_PROXY 指向本機 mihomo 後,由 mihomo 按網域分流,本地直連、海外才出去,再經固定的美國住宅出口存取 OpenAI、Anthropic、Gemini,這些服務看到的是住宅 IP 而不是機房 IP。圖末給出判斷是否接通的方法:回傳 401 表示已經連通、只是沒帶 key,逾時或回傳 000 表示沒走通。 AI API 中轉的出網鏈路 連不上多半不是程式的問題,是伺服器沒有出口 new-api / Sub2API(跑在你的伺服器上) 它只會直連 api.openai.com,不認 7890 HTTP_PROXY= http://127.0.0.1:7890 本機 mihomo(第五節裝好的那個) 按網域分流:本地直連,海外才出去 固定的美國住宅出口 多人共用一條出口時,這是風控最關鍵的一環 OpenAI / Anthropic / Gemini 看到的是住宅 IP,不是機房 怎麼判斷接通了 回傳 401 = 已連通(只是沒帶 key);逾時 / 000 = 沒走通
中轉程式連不上時,先看這條鏈路斷在哪一段

這類服務裝起來不難,卡住的通常是伺服器出去的那條路:

把第二、三節裝好的 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 去跑一堆帳號。


相關教學