把旧电脑变成 24 小时在线的家庭服务器

角落里的一台旧笔记本或迷你主机,就能成为你自己的私人代理和远程访问服务器:出门在外时的自有出口、回连家庭网络的通道、旅行时的开放网络——不用每月交 VPN 费,也没有第三方在记录你。

耗时:一个晚上 运行成本:0 元/月 硬件:任何一台旧电脑

最后更新:2026 年 10 月

1. 这是什么,为什么

大多数人每个月给 VPN 公司交钱,借用别人的服务器。如果你家里有一台旧电脑,完全可以自己跑一台服务器——用你自己的宽带,在你自己的掌控之下。

  • 你自己的出口。在酒店、机场或咖啡馆连上之后,你的流量从你自己的家庭宽带出去——你的家庭 IP、你所在的国家,流媒体和银行服务都照常可用。
  • 旅行时的开放网络。在网络过滤很严的地方——酒店 Wi-Fi 屏蔽了半个互联网,或者在中国、俄罗斯等许多日常网站和应用打不开的国家——连回家的这条线就是你的通道。
  • 访问家庭网络。像坐在自家沙发上一样,访问你的文件、其他机器和家里的各种服务。
  • 天生私密。没有 VPN 公司夹在中间,没有账号,除了你自己的日志之外没有任何记录。这台服务器上只有你一个人。
  • 运行成本低。旧笔记本或迷你主机性能完全够用,耗电很少,无头运行——不用屏幕、不用键盘,也没人登录它。
一句话说清这套配置:两个小巧的开源工具——Xray 和 Hysteria2——以开机自启服务的方式装在家里一台全天开机的电脑上,每台设备一个独立账号。

2. 你需要准备什么

  • 一台旧电脑。迷你主机或旧笔记本最理想。近十年的机器基本都可以,这个活儿很轻。Windows 或 Linux 都行。本指南先讲 Windows(参考机就是 Windows),不同之处会给出 Linux 的对应做法。
  • 家庭宽带。关键看上传速度:你连回家的流量上限就是家里的上传带宽,20 Mbps 以上的上传用起来就很舒服。
  • 一条能找到家的路。大多数家庭 IP 会不时变化,所以要么注册一个免费的 DDNS 域名(比如 DuckDNS),让它始终指向你当前的家庭 IP,要么用路由器自带的 DDNS。路由器里还要做两件事:给服务器做 IP 地址保留,让它永远拿同一个内网地址;再做一条 443 端口转发(TCP 和 UDP),指向这个地址。
  • 一个晚上。手动装大约 1–2 小时,大部分时间在等下载——用下面的一键脚本,大约五分钟。
  • 一键安装的要求:一台运行 Debian 或 Ubuntu 的机器(家里的 Linux 迷你主机,或者一台小 VPS——1 核 CPU、1 GB 内存完全够用),有 root 权限,443 端口(TCP + UDP)空闲。不占用其他任何端口。
  • 域名可选。一键安装用裸 IP 就能跑通。自己的域名只有以后想要用正规 TLS 证书(而不是自签证书)时才用得上。
电脑本身的一个设置:在 Windows 电源设置里,把接通电源时的睡眠设为从不。会打盹的服务器不是服务器。笔记本还要设置"合上盖子:不采取任何操作"(接通电源时)。

⚡ 一键安装(推荐)

在 Debian/Ubuntu 机器上——家里跑 Linux 的迷你主机,或者一台小 VPS——这一条命令就能完成整套服务器搭建:两个工具、两份配置、所有密钥当场在你的机器上新生成、服务全部启用,结束就能导入手机。

bash <(curl -fsSL https://marksong0917.github.io/home-server-guide/install.sh)

脚本具体做什么,一步一步说清:

  1. 检查是否以 root 身份运行、系统是否为 Debian/Ubuntu,然后补装缺失的 curl/openssl。
  2. 用 XTLS 官方安装脚本装 Xray-core,用官方安装器装 Hysteria2——不经过任何第三方镜像。
  3. 所有密钥都在你的服务器上当场生成:一个 UUID、一对 REALITY x25519 密钥和 short ID、Hysteria2 密码和混淆密码。脚本里不写死任何东西,数据也不离开这台机器。
  4. 写好可直接运行的配置:Xray VLESS + REALITY(vision 流)走 TCP 443,默认伪装成 www.microsoft.com;Hysteria2 走 UDP 443。Hysteria2 随即生成一张自签证书——如果你用 HY2_CERT/HY2_KEY 传入自己的域名证书,则用你的证书。
  5. 如果 ufw 防火墙处于启用状态,自动放行 443 TCP + UDP;启用两个 systemd 服务,启动并验证它们确实在运行。
  6. 打印可直接导入的链接(见下文)。脚本可以随时重跑——重跑会重新生成全部密钥,旧链接随即失效,需要导入新链接。卸载用 bash install.sh uninstall。

结束时打印的内容就是这趟的全部收获:服务器的公网 IP,加上两条拼装完成的分享链接——一条 vless:// 和一条 hy2://。把这段总结存到私密的地方;这些链接就是你服务器的钥匙(见第 6 节)。

导入 Shadowrocket:复制任意一条链接,打开 Shadowrocket,点 +——它会提示从剪贴板导入——或者扫链接的二维码。再导入第二条,你的手机上就有两条线路了。v2rayN(Windows)、v2rayNG(安卓)和 sing-box 同样支持粘贴导入。

两句实话。(1)Hysteria2 用的是自签证书,所以链接里带 insecure=1:证书不证明服务器的身份,真正起验证作用的是密码。这是无域名个人服务器的标准取舍;之后想两者兼得,补上自己的域名和证书即可。(2)运行前先读一遍脚本——它就是一份可读的文件:install.sh。把 root 脚本管道进 bash 之前先看清它干什么,这个习惯值得保留,包括对这一份。

想把每个部件都弄明白,或者家里用的是 Windows?下面的手动安装就是同一套东西,一步一步来。

3. 两个核心服务

并排跑两个协议,因为没有哪一个在所有情况下都是最好的。它们互相补位。

Xray — VLESS + REALITY(TCP 443)— 日常主力

Xray 是引擎,VLESS 是协议,REALITY 是伪装。REALITY 让你的流量看起来就像一次访问某个真实知名网站的普通 HTTPS,这让它非常难被识别或封锁。它走 TCP 443——和所有安全网站相同的端口——所以几乎哪里都能通。这是你日常用的线路:最稳,也最难被察觉。

Hysteria2(UDP 443,带混淆)— 极速车道

Hysteria2 基于 QUIC/UDP,专为烂线路而设计:晚高峰拥堵、跨国长链路、丢包的酒店 Wi-Fi。在 TCP 慢如蜗牛的地方,Hysteria2 往往依然很快。它还加了一层混淆,让流量看起来不像裸奔的代理协议。这是主力线路感觉慢时你切换过去的那条。

选择规则:默认用 REALITY。视频缓冲、晚高峰(大约晚上 8–11 点)、或者 REALITY 突然变慢 → 切到 Hysteria2。两条同时挂掉,几乎可以肯定问题出在家里——停电或者宽带断了——而不是服务器本身。

配置长什么样

两份配置都很小。下面是简化模板——每个私密值都是占位符,由你替换成自己的(第 5 节讲每个值从哪来)。完整选项参考在各项目的官方文档里,链接见"参考资源"。

Xray,config.json:

{
  "inbounds": [{
    "port": 443,
    "protocol": "vless",
    "settings": {
      "clients": [
        { "id": "<phone-uuid>",  "flow": "xtls-rprx-vision" },
        { "id": "<laptop-uuid>", "flow": "xtls-rprx-vision" }
      ],
      "decryption": "none"
    },
    "streamSettings": {
      "network": "tcp",
      "security": "reality",
      "realitySettings": {
        "dest": "<camouflage-site>:443",
        "serverNames": ["<camouflage-site>"],
        "privateKey": "<your-reality-private-key>",
        "shortIds": ["<your-short-id>"]
      }
    }
  }],
  "outbounds": [{ "protocol": "freedom" }]
}

Hysteria2,config.yaml:

listen: :443

tls:
  cert: <path-to-your-certificate>
  key: <path-to-your-certificate-key>

obfs:
  type: salamander
  salamander:
    password: <your-obfs-password>

auth:
  type: userpass
  userpass:
    phone: <phone-password>
    laptop: <laptop-password>

masquerade:
  type: proxy
  proxy:
    url: https://<a-normal-website>
    rewriteHost: true

在服务器上生成你自己的密钥——永远不要复制任何指南里的密钥,包括这一篇:

xray uuid        # 每台设备生成一个新的 UUID
xray x25519      # 你的 REALITY 密钥对(私钥只留在服务器上)

4. 手动安装 — 装成真正的服务

手动安装 —— 把每个部件都弄明白。这就是一键脚本做的同一套东西,改成手工完成。正是这一步,让这套配置从"我登录时能用"变成"24 小时在线"。两个工具都以正经的操作系统服务方式运行:开机自启、无需登录、崩溃自动重启、停电恢复后自己回来。

Windows —— 用 WinSW 把每个工具包装成服务

  1. 从官方发布页(见参考资源)下载 Xray 和 Hysteria2,放进类似 C:\Server\ 的文件夹,配置文件放在旁边。
  2. 下载 WinSW,在每个工具旁边放一份,并改成与一个小 XML 文件同名。每个服务一个 XML:
<service>
  <id>HomeXray</id>
  <name>Home Xray</name>
  <executable>C:\Server\xray\xray.exe</executable>
  <arguments>run -c C:\Server\xray\config.json</arguments>
  <startmode>Automatic</startmode>
  <onfailure action="restart" delay="10 sec" />
</service>
  1. 在管理员终端里安装每个服务(HomeXray.exe install,然后 start),Hysteria2 同理。再去"服务"面板里把两个服务都设为自动启动、失败时重启,作为第二重保障。
  2. 在 Windows 防火墙里给每个程序放行——按程序建入站规则,不要开得更宽:
New-NetFirewallRule -DisplayName "Xray 443 TCP" -Direction Inbound -Program "C:\Server\xray\xray.exe" -Action Allow
New-NetFirewallRule -DisplayName "Hysteria2 443 UDP" -Direction Inbound -Program "C:\Server\hysteria\hysteria.exe" -Protocol UDP -Action Allow
  1. 在路由器里:保留服务器的内网 IP,然后把 TCP 443 和 UDP 443 转发给它。你打开的门只有这一扇。
  2. 断电自恢复:在电脑 BIOS 里把 Restore on AC Power Loss(来电恢复)设为 Power On(开机)。这样停电也能自愈:来电 → 电脑开机 → 服务启动 → 你重新在线,全程不需要家里有人。

Linux —— 同样的思路,用 systemd

[Unit]
Description=Home Xray
After=network.target

[Service]
ExecStart=/usr/local/bin/xray run -c /etc/xray/config.json
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

存为 /etc/systemd/system/xray.service,然后 systemctl enable --now xray。Hysteria2 重复一遍;防火墙只放行 443 的 TCP/UDP。

排障 —— 服务启动失败

十有八九是配置里写错了一行,而服务自己的日志会准确告诉你错在哪一行。Linux 上:

systemctl status xray --no-pager          # 它在跑吗?为什么停了?
journalctl -u xray -e --no-pager          # Xray 日志,看最新几条
journalctl -u hysteria-server -e --no-pager
xray run -test -config /usr/local/etc/xray/config.json   # 单独验证配置文件

改掉日志指出的那一行,然后 systemctl restart xray。Windows 上打开"服务"面板看对应服务——服务一启动立刻就停,几乎总是 WinSW 的 XML 里配置路径写错了,或者配置本身有错;用同一个配置在终端里手动运行一次工具,它会把错误明明白白打印出来。

5. 每台设备独立账号

每台设备用它自己的凭据:手机一个 UUID(Xray)加一个密码(Hysteria2),笔记本换一对,家里其他人再换一对。设置时多花两分钟,第一次出问题时就回本了:

  • 吊销一个,不影响其他。手机丢了或换了?删掉那一个账号。其他每台设备照常工作,纹丝不动。
  • 一眼看清谁是谁。每个账号都有名字,配置读起来像一份你的设备清单,而不是一堆随机字符串。
  • 绝不共用账号。想给别人开权限,就给对方单独建一个账号(第 8 节)。

两个协议、两台设备,最后就是四条记录——手机-REALITY、手机-HY2、笔记本-REALITY、笔记本-HY2。整个系统就这么多。

6. 客户端

在你的设备上用一个小巧的免费客户端应用。服务器地址、密钥和密码会被打包进一条分享链接(或它的二维码),每个工具都能从你的配置生成——导入一次,点一下就能连。

  • iPhone / iPad:Shadowrocket(App Store)。扫二维码或粘贴链接即可添加节点。
  • 安卓:v2rayNG(免费、开源)。从剪贴板或二维码导入。
  • Windows:v2rayN(免费、开源)。复制链接,从剪贴板导入,选好节点,打开系统代理。

一条分享链接长这样——注意,它里面的每个值都是钥匙:

vless://<uuid>@<your-server-address>:443?security=reality&sni=<camouflage-site>&pbk=<your-reality-public-key>&sid=<your-short-id>&flow=xtls-rprx-vision#Phone
把分享链接当成家门钥匙。拿到它的人就能像你本人一样使用你的家庭网络。只发给自己和自己的设备,存进密码管理器,永远不要把链接或二维码贴到任何公开的地方——截图里不行,求助帖里也不行。哪一条泄露了,就改掉那台设备的 UUID 和密码再重新导入,泄露一分钟内作废。

验证是否生效:连上之后,打开任意一个"我的 IP 是多少"的网站。它应该显示你家的城市和你家的宽带运营商。断开后变回当地网络——这一前一后的差别就是证据。

7. 看门狗与维护

一台全天在线的服务器应该能自己照顾自己。一个小小的定时检查做三件事:把停掉的服务拉起来、留意公网 IP 的变化、留一份日志让以后的你知道发生过什么。

看门狗(Windows 示意)

一个每 10 分钟跑一次的计划任务,外加一个开机两分钟后跑的,大致是这样一个脚本:

$log = "C:\Server\logs\watchdog.log"
foreach ($name in "HomeXray", "HomeHy2") {
  if ((Get-Service $name).Status -ne "Running") {
    Start-Service $name
    "$(Get-Date -Format s) restarted $name" | Add-Content $log
  }
}
# Once in a while, note the public IP so a change is easy to spot
$ip = (Invoke-RestMethod "https://api.ipify.org")
"$(Get-Date -Format s) public IP: $ip" | Add-Content $log

在 Linux 上,同样的活儿是一个 cron 任务或 systemd 定时器,跑 systemctl is-active 检查——说实话,systemd 的 Restart=on-failure 已经把大部分活儿干了。

偶尔做做的维护

  • 原地更新。每隔一两个月,把 Xray 和 Hysteria2 的新版放进去,重启服务。旧版本的目录先留着,等新版稳定运行一天再删——回滚就是两分钟的事。
  • 保持系统更新。让 Windows Update(或你的发行版)照常更新,安排在没人用的时段。
  • 备份配置文件夹。你的配置和凭据就是整台服务器。每次改动之后,把文件夹复制一份到安全的地方。
配置文件就是密码。它装着每一个密钥和账号。备份要像存密码一样存——加密硬盘或密码管理器——永远不要放进公开仓库、共享文件夹,或者用邮件发给自己。

8. 安全守则

  • 强壮、独立的凭据。Xray 每台设备一个随机生成的新 UUID,Hysteria2 每台设备一个长随机密码,混淆密码再单独一个。全部机器生成,绝不靠脑子想,绝不与任何其他东西复用。
  • 只暴露 443。转发到这台服务器的只有 TCP 443 和 UDP 443。远程桌面、管理面板、文件共享,永远不要对互联网开放。带网页面板的管理工具,只留在家庭内网里。
  • 链接和二维码绝不外传。它们就是钥匙(第 6 节)。不进截图、不进聊天、不进"帮我看看哪里错了"的帖子。
  • 一人一个账号。家里人用各自的账号,这样吊销一个人不会把所有人都锁在门外。
  • 不用的就关掉。每多跑一个服务,就多一分暴露面。这台服务器只跑那两个工具、看门狗,别的不跑。
  • 让这台机器保持无聊。不在服务器上乱下载东西,不拿它当日常电脑上网。它现在是一台家电。

9. 说几句实话

  • 唯一的运行成本是电费。迷你主机待机大约 10 W——一年约 90 度电,没多少钱。老台式机塔机耗电更高;旧笔记本或迷你主机是甜点位。
  • 你的速度上限是家庭上传。工具本身很快,限制在你的线路。跨国长链路又赶上晚高峰时,期待值应该是"看视频和日常浏览够用",而不是跑出你家宽带的全速。
  • 它依赖你的房子。家里停电或断网,服务器就下线。第 4 节的断电自启设置能让恢复自动完成,但没什么能让家庭线路固若金汤。
  • 了解当地规则。各国的网络规则不同,而且会变。查清楚你居住地和旅行地分别适用什么。本指南仅供你在自己的硬件、自己的线路上私人使用。
  • 不要出售访问权限。一旦开始向别人收费,你就是在住宅宽带上经营生意——违反绝大多数运营商的条款,也是另一个法律世界了。让它只属于你。

参考资源

关于作者

作者 Ze (Mark) Song——加拿大安大略省 Aurora 的一名程序员。我在做 Foxuma,一个面向橱柜与木作车间的业务平台。

看看 Foxuma 试用 Foxuma 演示 我的作品集