教程

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 去跑一堆账号。


相关教程