2026-03-21

03月21日

一、今日完成情况

  • 被消费主义洗脑/狗头,购买了一年腾讯云服务器6MB带宽。
  • 配置腾讯云服务使用我的vultr,安装clash内核,连接国外服务器实现代理
  • 配置腾讯云服务器,作为中继,实现MacBook和游戏本互通,效果良好,画质较高。

二、今日感悟

  • 核心业务数据​:
    • 服务器配置
  • ​今日工作总结:​
    • 干的事非常有意义,还是需要选择6MB的,这样画质非常好,实现我远程访问电脑,其实听丝滑的,就和本地工作一样了。
  • ​明日工作计划:
    • 暂无,明天周日,可以简单一点。
  • ​今日学习成长:​
    • 太有成就感了,报错解决了半天,发现cat和vim居然消息不同,这是活久见。

三、备注

  • 预定–华尔街AI发展推演没有系统化了解,导出为图谱的形式,导出笔记,进行理解。 截止日期:3月20日 预计时间:1h
  • 预定–老大的论文阅读还是没有完成,这里需要花点时间梳理其算法逻辑。 截止日期:3月22日 预计时间:~~
  • 预定–完成dify工作流本地游戏本部署服务。
  • 预定–完成Google自动检测邮件,并且实现自动化脚本
  • 预定–完成实验室项目数据抽取,打通同步抽取线程
  • 完成–完成国内云服务器中转配合nomachine,实现稳定的访问,我这个节点需要打通来,然后测评一下3M带宽的效果,是否会卡顿。
  • 预定–关于异步async背后的原理完全不清楚,需要梳理清楚图谱,作为笔记[[2026-03-20 15.55.08-异步并发示意图.excalidraw]]

四、云服务器代理内核配置

目标:在国内腾讯云 Ubuntu 无桌面服务器上,通过 Vultr 的 Hysteria2 节点科学上网(rule 模式,国内直连,国外代理),并设置成开机自启服务。

2025-03-21 实际操作完整流程(已验证成功)

1. 前置准备(在能正常访问 GitHub 的环境完成)

  • 桌面端 Clash Verge 已配置好 Hysteria2 节点并能正常使用
  • https://github.com/MetaCubeX/mihomo/releases/latest 下载 mihomo-linux-amd64-v1-v1.19.21.gz(或最新 amd64 版本)
  • 上传到服务器 /etc/clash/ 目录,并解压、重命名、加执行权限:
     cd /etc/clash
     gzip -d mihomo-linux-amd64-v1-v1.19.21.gz
     sudo mv mihomo-linux-amd64-v1-v1.19.21 mihomo
     sudo chmod +x mihomo

2. 配置文件(config.yaml)

  • 在 /etc/clash/ 下创建 config.yaml,内容完整复制桌面端配置(已验证可直接用):
     mixed-port: 7897
     allow-lan: true
     mode: rule
     log-level: info
     proxies: [...]          # Hysteria2-easytake 配置
     proxy-groups: [...]     # Proxy、Mode、Rule 模式、Global 模式、Direct 直连
     rules: [...]            # GEOIP,CN,DIRECT + 国内域名直连 + MATCH,Proxy

完整的vultr代理配置如下:

mixed-port: 7897
allow-lan: true
mode: rule
log-level: info

proxies:
  - name: "Hysteria2-easytake"
    type: hysteria2
    server: easytake.work
    port: 8443
    password: Se7RAuFZ8Lzg
    alpn:
      - h3
    sni: easytake.work
    skip-cert-verify: false
    udp: true

proxy-groups:
  # === 主代理选择组 ===
  - name: "Proxy"
    type: select
    proxies:
      - "Hysteria2-easytake"
      - "DIRECT"

  # === 模式选择 ===
  - name: "Mode"
    type: select
    proxies:
      - "Rule 模式"
      - "Global 模式"
      - "Direct 直连"

  # === 规则模式 ===
  - name: "Rule 模式"
    type: select
    proxies:
      - "Proxy"
      - "DIRECT"

  # === 全局模式 ===
  - name: "Global 模式"
    type: select
    proxies:
      - "Proxy"

  # === 直连模式 ===
  - name: "Direct 直连"
    type: select
    proxies:
      - "DIRECT"

rules:
  # 直连的国内网站或服务
  - GEOIP,CN,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,bilibili.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,weibo.com,DIRECT
  - DOMAIN-SUFFIX,alipay.com,DIRECT

  # 默认所有其余流量通过代理
  - MATCH,Proxy

3. 首次启动测试(最容易踩坑的地方)

   cd /etc/clash
   ./mihomo -d .

常见错误及解决:

Pasted image 20260321233633

启动后日志停在 “Start initial compatible provider Mode” 后不动
结论:这是正常现象!表示初始化完成,已监听 7897 端口,后台安静运行
验证方式:

新终端:curl -x http://127.0.0.1:7897 ipinfo.io → 显示新加坡 IP 即成功

Pasted image 20260321234545

4. 设置 systemd 服务(实现开机自启 + 后台运行)

  • 创建服务文件(这一步之前漏做了,导致 systemctl 找不到)
     sudo tee /etc/systemd/system/clash.service > /dev/null << 'EOF'
     [Unit]
     Description=Clash mihomo Proxy Service
     After=network.target

     [Service]
     Type=simple
     User=root
     WorkingDirectory=/etc/clash
     ExecStart=/etc/clash/mihomo -d /etc/clash
     Restart=always
     RestartSec=5

     [Install]
     WantedBy=multi-user.target
     EOF
  • 加载并启动服务(关键两步,很多人忘)
 sudo systemctl daemon-reload
 sudo systemctl enable clash
 sudo systemctl start clash
  • 检查状态
 sudo systemctl status clash
Pasted image 20260321233658

→ 看到 Active: active (running) + mihomo 初始化日志 → 成功

5. 让服务器所有命令默认走代理(强烈推荐)

   echo 'export http_proxy=http://127.0.0.1:7897'  | sudo tee -a /etc/profile
   echo 'export https_proxy=http://127.0.0.1:7897' | sudo tee -a /etc/profile
   source /etc/profile

以后 apt update、git clone、curl、wget、docker pull 等全部自动走代理(国内域名直连)

6. 常用指令–快速上手

常用管理命令总结

  • 查看状态:sudo systemctl status clash
  • 实时日志:journalctl -u clash -f
  • 重启服务:sudo systemctl restart clash
  • 停止服务:sudo systemctl stop clash
  • 改配置后重载:sudo systemctl restart clash
  • 手动前台调试:cd /etc/clash && ./mihomo -d .

注意事项 & 经验教训

  • 永远不要指望 mihomo 自动下载 geoip.metadb(国内基本超时)
  • systemd 服务文件创建后必须 daemon-reload,否则 systemctl 找不到
  • 日志停在 “Start initial compatible provider XXX” 是正常,不是卡死
  • Hysteria2 依赖 UDP,腾讯云安全组要放行出站 UDP 流量(默认已放行)
  • 如果节点突然连不上:检查 easytake.work:8443 是否可达、密码/SNI 是否正确

至此,腾讯云服务器已完整配置代理内核,可长期稳定运行。

7. 手动关闭/开启代理配置

A、配置文件

修改.bashrc 文件,指令如下:

vi ~/.bashrc

添加如下代码:

# Clash 代理快捷开关(mihomo mixed-port: 7897)
alias proxy_on='export http_proxy=http://127.0.0.1:7897; export https_proxy=http://127.0.0.1:7897; export all_proxy=http://127.0.0.1:7897; echo "代理已开启(127.0.0.1:7897)"'

alias proxy_off='unset http_proxy https_proxy all_proxy; echo "代理已关闭"'

# 可选:显示当前代理状态
alias proxy_status='echo "http_proxy : ${http_proxy:-未设置}"; echo "https_proxy: ${https_proxy:-未设置}"; echo "all_proxy  : ${all_proxy:-未设置}"'

让改动生效,更新:

source ~/.bashrc

B、效果展示

Pasted image 20260321235113

测试节点位置:

curl ipinfo.io
Pasted image 20260321235213

这里显示的是新加坡的节点,然后关闭代理再次测试:

Pasted image 20260321235245

这里显示的是云服务器的IP,至此我的服务器代理配置顺利完成!!!

五、云服务器公用IP中转nomachine

1. NoMachine 连接方式 – 教程

  • 在你的本地电脑(客户端机器) 打开 NoMachine 客户端软件:
    • 新建连接
    • 主机 填:127.0.0.1
    • 端口 填:4000
    • 协议选 NX(默认)
    • 用户名/密码填你云服务器上 NoMachine 的账号密码

点连接 → 就能看到腾讯云服务器的桌面了!
所有流量都走 frp 隧道(4000 端口被 frp 完美转发),相当于你本地直接连了云服务器的 NoMachine,完全不需要公网暴露 4000 端口。

2. 把 frps(服务器端)和 frpc(客户端)都改成 systemd 服务(永久后台自启,无需 nohup、手动启动)

你之前 clash 就是这么配的,这次完全复用,两边各配一个服务,服务器重启后自动跑,再也不用手动 ./frpsnohup

A. 云服务器端(腾讯云,frps 服务)

在腾讯云执行:

cd ~/frp_0.54.0_linux_amd64

sudo tee /etc/systemd/system/frps.service << 'EOF'
[Unit]
Description=frps Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/frp_0.54.0_linux_amd64
ExecStart=/root/frp_0.54.0_linux_amd64/frps -c /root/frp_0.54.0_linux_amd64/frps.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now frps
sudo systemctl status frps

检查日志:journalctl -u frps -f

B. 客户端机器(你的这台 Linux,frpc 服务)

在你这台机器(kipley@kipley)执行:

cd ~/frp_0.54.0_linux_amd64

sudo tee /etc/systemd/system/frpc.service << 'EOF'
[Unit]
Description=frpc Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/kipley/frp_0.54.0_linux_amd64
ExecStart=/home/kipley/frp_0.54.0_linux_amd64/frpc -c /home/kipley/frp_0.54.0_linux_amd64/frpc.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now frpc
sudo systemctl status frpc

检查日志:journalctl -u frpc -f

3. 常用管理命令(以后永远用这些)

服务器端(腾讯云)

  • 重启:sudo systemctl restart frps
  • 查看状态:sudo systemctl status frps
  • 实时日志:journalctl -u frps -f

客户端(你的机器)

  • 重启:sudo systemctl restart frpc
  • 查看状态:sudo systemctl status frpc
  • 实时日志:journalctl -u frpc -f

4. 最终验证(全流程通)

  1. 两边服务都 active (running)
  2. 本地 NoMachine 连 127.0.0.1:4000 → 成功进入云服务器桌面
  3. 重启服务器/客户端机器后,frps/frpc 自动启动,NoMachine 依然能连

客户端:

Pasted image 20260322010452

服务端:

Pasted image 20260322010536

至此,你的整套方案彻底「无人值守」了:

  • 云服务器开机 → frps 自启
  • 你本地开机 → frpc 自启
  • NoMachine 随时连 127.0.0.1:4000 就是云服务器桌面

5、错误排查笔记

现象 1:Connection refused (连接被拒绝)

  • 诊断:MacBook 使用 nc -zv 探测服务器 7000 端口失败。
  • 根源frps 进程未在后台持久运行。虽然手动启动成功,但退出终端或按 Ctrl+C 后进程消失,导致端口关闭。
  • 对策:使用 nohuptmux 保持服务端后台运行,并用 sudo netstat -tunlp | grep 7000 确认监听状态。

现象 2:Session shutdown (会话关闭)

  • 诊断:物理链路已通(nc 成功),但客户端连接后立即断开。
  • 根源:客户端开启了 TailscaleClash 系统代理。流量在发出前被路由劫持,或者在握手阶段因 TLS 特征被干扰。
  • 对策:暂时关闭本地代理工具,并显式在 [transport] 中配置 tls.enable = false 降级协议进行测试。

现象 3:EOF (文件结束符错误)

  • 诊断:连接报错从 session shutdown 变为 EOF
  • 根源身份校验参数不匹配。FRP v0.50+ 版本对配置格式要求极严,必须显式声明 [auth] 段落。

现象 4:frpc 报 dial tcp 127.0.0.1:7000: connection refused

  • 诊断:Mac nc 测试成功,但 frpc 日志始终显示连接本机 127.0.0.1:7000(服务器端 frps.log 无任何新记录)。
  • 根源:frpc.toml 中的 serverAddr 被错误写成 “127.0.0.1”(最常见手滑 + vi 未保存导致)。
  • 对策:先执行 rm -f .*.swp 删除 swap 文件,然后用 cat > ./frpc.toml << 'EOF' 强制完整重写(serverAddr = “162.14.77.140”)。

现象 5:vi 编辑后 cat 显示内容完全不同(甚至代理名都不一样)

  • 诊断:vi 里明明改成正确 IP 和 tls,但 cat 还是旧版 test-tcp + 127.0.0.1
  • 根源:vi 打开的是残留的 .frpc.toml.swp 恢复缓冲区,:w 只保存了 swap,未覆盖真实文件。
  • 对策:rm -f .*.swp + cat > ./frpc.toml << 'EOF' 重定向写入(彻底绕过 vi 保存坑)。
Pasted image 20260322011245

6、最终效果

Pasted image 20260322011447

经过服务器中转,远程操纵游戏本,丝滑的很,几乎没有延迟额,甚至可以非常流畅的看陈翔六点半。

Pasted image 20260322011603

我的服务器的性能是6MB的,因此带宽非常可以

  1. 静态操作与文字办公:非常丝滑
  • 表现:在进行代码编写(如 Neovim 配置)、文档阅读或网页浏览时,6Mbps 的带宽完全绰绰有余。
  • 感受:由于 NoMachine 采用了高效的 NX 协议,其对指令响应的压缩极好。在 6M 中继下,鼠标移动和键盘输入几乎感觉不到延迟,响应速度会非常接近本地操作。
  1. 窗口拖动与界面切换:表现良好
  • 表现:在 Ubuntu 桌面切换窗口、拖动文件夹时,由于带宽限制,可能会在快速移动时出现轻微的“边缘模糊”或“像素块”,但动作停止后会立即恢复清晰。
  • 建议:如果觉得不够顺滑,可以在 NoMachine 的显示设置(Display settings)中调低一点质量(Quality),以换取更高的帧率。
  1. 视频播放与高负载动画:会有明显压力
  • 表现:如果你尝试在远程桌面上播放 1080p 视频或进行复杂的 3D 渲染预览,6Mbps 会成为瓶颈。
  • 感受:视频可能会出现掉帧或明显的画面撕裂。对于这种高带宽需求场景,中继模式的性能不如局域网直连或更高带宽的公网。
  1. 关键指标:延迟(Latency)比带宽更重要
  • 网络环境:既然你已经通过 FRP 穿透成功 ,影响“丝滑感”的核心不再是那 6M 带宽,而是你的游戏本到腾讯云服务器之间的 Ping 值
  • 预期:如果你的 Ping 值在 30ms 以内,操作会感觉像是在本地;如果超过 100ms,即使带宽给到 100M,你也会感觉到明显的鼠标“粘滞感”。
Pasted image 20260322011922

UDP 协商失败 (UDP negotiation failed):这是一个小痛点。目前你走的是 TCP 协议。现状:在 74ms 的延时下,TCP 协议足以应对办公,但如果延时波动,TCP 的重传机制会让画面瞬间卡顿。

这是当前连接的性能,下面查看一下延时,在客户端ping一下服务器,txt文件是nomachine的检测报告:

tecent-server-ubuntu24.04 statistics 2026-03-22 01.22.21 Pasted image 20260322012048

你目前处于 “高压缩、中等延迟、极高稳定性” 的状态。

  • LLM 开发/写代码:⭐⭐⭐⭐⭐(完全胜任)
  • 看论文/网页浏览:⭐⭐⭐⭐(偶尔滚屏会有轻微模糊,但立刻清晰)
  • 观看视频/远程游戏:⭐⭐(100ms+ 的延迟和 6M 带宽会吃力)

txt报告解读:

1. 核心网络指标:延迟 (Latency)

报表最下方给出了最真实的协议层延迟:

  • 5s 窗口延迟:114 ms

  • 30s 窗口延迟:106 ms

解读:这个数值比你之前 ping 出来的 74ms 要高。

原因ping 只是物理层的往返,而这里的 100ms+ 包含了 FRP 转发损耗、NoMachine 协议封包以及服务器处理的时间。

体感:100ms 是远程办公的“分水岭”,你会感觉到鼠标略微有一点“飘”,但对于敲代码(LLM 开发)来说依然在舒适区。

2. 带宽利用率与压缩比

  • Protocol compression ratio (协议压缩比): 5.324:1
  • 整体流量: 约 42 MB 的数据经过压缩后,实际在网络上传输的有效负荷大大降低。

解读:NoMachine 的 NX 协议表现极其出色。它把你原始的桌面变化数据压缩了 5 倍多才发送。这意味着你的 6Mbps (约 750KB/s) 带宽,在 NX 协议的加持下,实际发挥了接近 30Mbps 的无损传输效果。这就是为什么你在 6M 中继下依然觉得顺滑的原因。

3. 渲染效率 (Render Statistics)

  • Request #72 (主要图像传输): 表现出极高的压缩比 (16.821:1)。
  • 硬件加速: 结合你之前的 NVENC 信息,系统在处理大面积画面更新(如滚动代码窗口)时,压缩效率极高。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com
Obsidian