返回首页

Article

自建网络折腾记:VPS、拓扑、协议与一点反思

缘起

由于我长期购买的高端机场前段时间各种不稳定,后面还爆出来核心人员失联。再加上我想稳定地用 AI,这些天就在 ChatGPT 的帮助下,重新开始买 VPS、搭建自己的网络。

单纯从价格方面来看,自己搭建的成本非常高。随便买个带优化的线路,再加一个一般的落地 IP,直接就要大概 15 刀每个月。换算成人民币,其实每年的网络费用都要过千了。

抛开价格不谈,自建的好处很明显:隐私更可控,IP 虽然不那么好,但是至少不至于被同一个机场的其他人连累。但是坏处也很明显,折腾,麻烦。

这里简单做个记录吧。从选择 VPS、网络架构,到选择内核,再到选择协议,最后讲讲我目前在玩哪些东西。

VPS 选择

选择 VPS,我主要参考了 X 上一些有的没的文章,加上 Meow VPS 的详细测评。这个博客的内容很不错,从怎么选择不同类型的机器,到 IP 检测,全都有。下面罗列一下我目前用过的一些机器。

  • 阿里云免费机器。阿里云给新用户 300 元代金券。基于此,我尝试了北京节点、林格尔节点和香港节点。节点连接体验不错。但是吧,长期来看,我不敢用。首先,阿里云的机器购买时都是特价,不承诺后续费用。其次,毕竟还是有些“科学”的意思在里面,我怕被通报。
  • AWS 机器。AWS 海外新注册,可以给你 6 个月、最多 100 刀的试用额度。我开了两个 IP。第一个测试质量,低风险;第二个直接中风险。第一个 IP 我登录 Claude 不需要验证手机号,第二个我一登录,直接把我的 Claude 号封了,哈哈。基于这个,后面就有些意兴阑珊。
  • RackNerd。我选的套餐是 Black Friday 2025 - 1 GB KVM VPS (Black Friday 2025),价格很便宜,一年才 10 刀。IP 质量很烂,直连网速也不行,后面当玩具了。
  • DMIT。我选了两个套餐,第一个是 HKG.AS3.T1.TINY,第二个是 LAX.AN4.Pro.TINY。前者晚上基本没法用,随便开一个 YouTube 视频都卡顿;后者体验还可以,9.9 刀一个月,网速贼快。值得一提的是,DMIT HK 的机器我发现不对,发了个工单申请退款,贼快就给我退了,还发邮件提示我速度不行是网络原因。圈粉了。
  • BageVM。这个就是选了个落地机器,选了个基础 Japan Standard Servers - Japan Standard - SMALL。这个 IP 质量看起来是 0 风险。单纯就是为了圆当初我和 AI 撒的谎:我是一个旅居日本的人。这台机器价格很便宜,3 刀一个月。
  • YunYoo。这是我后来又补买的一台,主要拿来当美国方向的落地 IP。价格不算特别便宜,但用起来比较省心,正好补上我这套自建网络里出口这一环。

网络拓扑

我原先是一个三层的网络结构,后来改成了两层。参考下面的图。

flowchart TD
    subgraph Client["客户端"]
        QX["QX
客户端: Quantumult X
典型入口: VLESS + REALITY"]
        Surge["Surge
客户端: Surge
典型入口: SS2022 / Snell"]
    end

    subgraph BJ["北京 Entry 节点"]
        BJHost["OS 内核: Linux
服务端/内核:
- Xray
- Snell
角色:
- 首跳入口
- 转发到香港"]
    end

    subgraph HK["香港 Relay 节点"]
        HKHost["OS 内核: Linux
服务端:
- Xray
角色:
- 跨境中继
- 转发到美国"]
    end

    subgraph US["美国 Egress 节点"]
        USHost["OS 内核: Linux
服务端/内核:
- WireGuard
- NAT
角色:
- 最终出口"]
    end

    Internet["Internet"]

    QX -->|VLESS + REALITY| BJHost
    Surge -->|SS2022| BJHost
    Surge -.->|Snell| BJHost

    BJHost -->|VLESS + REALITY| HKHost
    HKHost -->|WireGuard| USHost
    USHost -->|NAT 出口| Internet

但是有个问题。我后来觉得这个三层架构,尤其是其中两个节点都在中国,有些冗余。当然了,还有个重要原因,就是 VPS 都要钱。于是我改成了两层。参考下面。

flowchart TD
    subgraph Client["客户端"]
        QX["QX<br/>客户端: Quantumult X<br/>入口: VLESS + REALITY"]
        Surge["Surge<br/>客户端: Surge<br/>入口: SS2022"]
    end

    subgraph Relay["Relay 节点(当前主入口兼中继)"]
        RelayHost["OS 内核: Linux<br/>服务端: Xray<br/>入站: VLESS + REALITY + Vision<br/>入站: SS2022<br/>出站: VLESS + REALITY + Vision<br/>角色: 客户端主入口<br/>角色: 到出口节点的中继"]
    end

    subgraph Egress["Egress 节点(当前出口,示例是原美国)"]
        EgressHost["OS 内核: Linux<br/>服务端: Xray(REALITY + Vision inbound)<br/>出口: NAT<br/>角色: 最终出口"]
    end

    Internet["Internet"]

    QX -->|VLESS + REALITY + Vision| RelayHost
    Surge -->|SS2022| RelayHost
    RelayHost -->|VLESS + REALITY + Vision| EgressHost
    EgressHost -->|NAT 出口| Internet

至此,运行了两天,没啥问题,高峰期看 YouTube 4K 都可以。

内核与协议

内核方面,考虑到都需要中转,在 Xray 和 sing-box 之间,我选择了直觉上觉得更稳定的 Xray。主要是 sing-box 给我的印象一直是配置总不兼容。

协议方面,本来想全都用 VLESS + REALITY,结果 macOS 上的 Surge 不支持,后来只能额外加一个 SS2022 的入口。

协议焦虑了半天,看了看机场,几乎都是 SS2022。算了,摆了。

现在玩什么

前面说到 RackNerd,网速不咋地。现在这台机器上运行了一个 FreshRSS 和一个 RSSHub。反正便宜,打算长期跑这两个服务。

有了 VPS,开始自己算存储、算磁盘之后,我对以前“点了个保存就等于学会了”的做法,有了些思考。可能和读一本书是一个道理:有人说,一本书的成本其实有两次。第一次是你花钱买了,第二次是你真的投入了注意力。

我看到不错的文章,应该先内化,然后用自己的语言写出来,而不是点一个保存。

后面玩玩看吧。