vps-proxy
VPS & 代理管理
管理 envvar 的 VPS 服务器和代理服务。
服务器清单
| 名称 | IP | Tailscale IP | 位置 | SSH 连接 | 用途 |
|---|---|---|---|---|---|
| 新加坡 (AWS Lightsail) | ssh <REDACTED_TOKEN> |
Hysteria2 代理 | |||
| jgw | 日本 (Oracle) | ssh jgw |
Hysteria2 代理 | ||
| hk | 香港 | ssh hk |
Hysteria2 代理 | ||
| zgo-rsc | - | ssh zgo |
Hysteria2 代理 |
Tailscale 自建 DERP(CHEN.RS)
用途:当 Tailscale 无法直连(NAT/UDP 受限)时,作为中继(DERP + STUN)。
当前状态(2026-02-06):
<REDACTED_TOKEN>的derper已执行stop + disable,自建 DERP 已下线(保留历史配置供回滚参考)。
购买的 DERP(seset / )
你之前购买的香港 DERP:
<REDACTED_TOKEN> (<REDACTED_IP>),端口DERP 30010 / STUN 30011。卖家要求
omitDefaultRegions: true的常见原因是:如果不屏蔽官方 DERP,你的设备在需要走中继时可能会优先选官方(延迟更低/更稳定),导致他家的节点“买了但看起来没用”,也不好排障;这不代表技术上“必须”屏蔽官方才能工作。
tailscale debug derp HK01常见提示:
generate_204(80 端口)不通:这是 captive portal check,不影响 DERP 转发;想消掉只能让卖家开放http://<REDACTED_TOKEN>/generate_204。IPv6: lookup ... no such host:卖家域名没配 AAAA,不影响 IPv4 使用。
// 购买的 seset DERP(按卖家给的写法)
{
"regionID": 901,
"regionCode": "HK01",
"regionName": "Hong Kong (seset)",
"nodes": [
{
"name": "901a",
"regionID": 901,
"hostName": "<REDACTED_TOKEN>",
"ipv4": "<REDACTED_IP>",
"derpPort": 30010,
"stunPort": 30011
}
]
}
域名与 A 记录(Cloudflare 必须 “仅 DNS / 灰云”)
<REDACTED_TOKEN>→<REDACTED_IP><REDACTED_TOKEN>→<REDACTED_IP><REDACTED_TOKEN>→<REDACTED_IP>
端口要求(公网入站)
DERP 不是普通 Web 服务,不要放在任何反代/CDN 代理后面。
- TCP
443:DERP(TLS) - TCP
80:ACME//generate_204(建议开启,否则客户端可能报 captive portal warning) - UDP
3478:STUN
服务管理(每台机器)
systemd 服务名:derper
sudo systemctl status derper --no-pager -l
sudo journalctl -u derper -n 200 --no-pager
sudo systemctl restart derper
证书与节点 key:
sudo ls -la /var/lib/derper
# 会看到 derper.key、acme_account+key、derp-xxx.chen.rs
Tailscale derpMap(建议先保留官方节点)
说明:Tailscale 永远优先直连,只有直连失败(或暂时还没打洞成功)才会走 DERP。 所以你看到
tailscale ping xxx显示via <公网IP:端口>是正常的(说明直连成功);要看 DERP 是否生效,优先看tailscale netcheck/tailscale debug derp-map。
最终配置(屏蔽官方,只用你定义的几组 DERP)
"derpMap": {
"omitDefaultRegions": true,
"regions": {
"901": {
"regionID": 901,
"regionCode": "HK01",
"regionName": "Hong Kong (seset)",
"nodes": [
{ "name": "901a", "regionID": 901, "hostName": "<REDACTED_TOKEN>", "ipv4": "<REDACTED_IP>", "derpPort": 30010, "stunPort": 30011 }
]
},
"902": {
"regionID": 902,
"regionCode": "HK02",
"regionName": "Hong Kong (CHEN.RS)",
"nodes": [
{ "name": "902a", "regionID": 902, "hostName": "<REDACTED_TOKEN>", "ipv4": "<REDACTED_IP>", "derpPort": 443, "stunPort": 3478 }
]
},
"903": {
"regionID": 903,
"regionCode": "JP01",
"regionName": "Japan (CHEN.RS)",
"nodes": [
{ "name": "903a", "regionID": 903, "hostName": "<REDACTED_TOKEN>", "ipv4": "<REDACTED_IP>", "derpPort": 443, "stunPort": 3478 }
]
},
"904": {
"regionID": 904,
"regionCode": "SG01",
"regionName": "Singapore (CHEN.RS)",
"nodes": [
{ "name": "904a", "regionID": 904, "hostName": "<REDACTED_TOKEN>", "ipv4": "<REDACTED_IP>", "derpPort": 443, "stunPort": 3478 }
]
}
}
}
验证(本机):
tailscale debug derp-map
tailscale netcheck
tailscale debug derp HK01
tailscale debug derp HK02
tailscale debug derp JP01
tailscale debug derp SG01
Tailscale Exit Node(把某台 VPS 当“默认出网”)
注意:DERP 只是中继;Exit Node 才是“把全网流量走某台机器”。 如果你把
zgo-rsc选为 Exit Node,出现“连上了但上不了网/解析不了域名”,通常是 Exit Node 或本机 DNS 配置导致。
本机快速恢复(macOS)
先退回直连出网:
sudo tailscale set --exit-node=
如果仍然提示 cannot resolve ...(DNS 异常),先临时关闭接管 DNS 再试:
sudo tailscale set --accept-dns=false
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
然后再决定是否重新启用 Exit Node:
# 重新选择 exit node(示例)
sudo tailscale set --exit-node=zgo-rsc
一键测速脚本(对比 Exit Node / 小火箭 / 直连)
脚本:tools/net-bench.sh
输出:默认写到 ~/Downloads/net-bench/*.log(文件名带 UTC 时间和 label)
示例(每次切换网络形态后跑一遍,方便对比):
# 直连
./tools/net-bench.sh --label direct
# Tailscale Exit Node(例如 zgo-rsc)
./tools/net-bench.sh --label ts-exit-zgo
# 小火箭/Hysteria2(手动切好再跑)
./tools/net-bench.sh --label rocket-hy2
说明:
- 脚本会测:当前出口 IP、Tailscale
netcheck、DNS(只在 Tailscale 在线时测 100.100.100.100)、以及 Cloudflare 的下载吞吐(小流量,默认 5MB/20MB/80MB)。 ping/ICMP 不稳定,不作为“能不能上网”的判断;脚本用curl的时序/吞吐来比更靠谱。
BBR(TCP 拥塞控制)
BBR 主要影响 TCP(网页/HTTPS/部分视频流),对 WireGuard/Tailscale 数据面(UDP)没直接帮助;对 Hysteria2(UDP/QUIC)也不一定明显。
当前状态(2026-02-02):
<REDACTED_TOKEN>:已是bbr + fqzgo-rsc:已启用bbr + fq(写入/etc/sysctl.d/99-bbr.conf)
验证:
sysctl net.ipv4.tcp_congestion_control net.core.default_qdisc
云厂商防火墙备注
AWS Lightsail(
aws lightsail get-instance-port-states --region ap-southeast-1 --instance-name AlmaLinux-1
aws lightsail open-instance-public-ports --region ap-southeast-1 --instance-name AlmaLinux-1 --port-info fromPort=80,toPort=80,protocol=tcp,cidrs=0.0.0.0/0
aws lightsail open-instance-public-ports --region ap-southeast-1 --instance-name AlmaLinux-1 --port-info fromPort=443,toPort=443,protocol=tcp,cidrs=0.0.0.0/0
aws lightsail open-instance-public-ports --region ap-southeast-1 --instance-name AlmaLinux-1 --port-info fromPort=3478,toPort=3478,protocol=udp,cidrs=0.0.0.0/0
Oracle Cloud(jgw)
除了机器内 iptables,还要去 Oracle 控制台的 Security List/NSG 加入站规则(否则公网连不上):
- TCP 80 / 443(
0.0.0.0/0) - UDP 3478(
0.0.0.0/0)
Clawdbot Gateway()
当前配置为 loopback(给 macOS “Remote over SSH” 用):
- Gateway:
ws://127.0.0.1:18789(通过 SSH tunnel 访问) - Dashboard:
http://127.0.0.1:18789/(通过 SSH tunnel 访问)
运维:
ssh <REDACTED_TOKEN>
source ~/.clawdbot/<REDACTED_TOKEN>
~/.npm-global/bin/clawdbot status --plain
systemctl --user restart clawdbot-gateway.service
tail -n 200 /tmp/clawdbot/<REDACTED_TOKEN>
更多细节见:knowledge/<REDACTED_TOKEN>
Hysteria2 配置
服务端配置路径
/etc/hysteria/config.yaml
服务管理命令
# 启动/停止/重启
sudo systemctl start hysteria-server
sudo systemctl stop hysteria-server
sudo systemctl restart hysteria-server
# 查看状态
sudo systemctl status hysteria-server
# 查看日志
journalctl -u hysteria-server -f
客户端导入链接 (Shadowrocket/Clash)
AWS1 (新加坡)
hysteria2://<REDACTED_AUTH>@<REDACTED_IP>:443?insecure=1&sni=bing.com#AWS-SG
JGW (日本)
hysteria2://<REDACTED_AUTH>@<REDACTED_IP>:443?insecure=1&sni=bing.com#JGW-JP
HK (香港)
hysteria2://<REDACTED_AUTH>@<REDACTED_IP>:443?insecure=1&sni=bing.com#HK
ZGO-RSC
hysteria2://<REDACTED_AUTH>@<REDACTED_IP>:443?insecure=1&sni=bing.com#ZGO-RSC
安装 Hysteria2
# 一键安装
curl -fsSL https://get.hy2.sh/ | sudo bash
# 生成自签证书
sudo openssl ecparam -name prime256v1 -genkey -noout -out /etc/hysteria/server.key
sudo openssl req -new -x509 -key /etc/hysteria/server.key -out /etc/hysteria/server.crt -days 36500 -subj '/CN=bing.com'
sudo chown hysteria:hysteria /etc/hysteria/server.*
# 配置文件模板
cat > /etc/hysteria/config.yaml << 'EOF'
listen: :443
tls:
cert: /etc/hysteria/server.crt
key: /etc/hysteria/server.key
auth:
type: password
password: <REDACTED_TOKEN>
masquerade:
type: proxy
proxy:
url: https://www.bing.com
rewriteHost: true
EOF
# 启动
sudo systemctl enable hysteria-server
sudo systemctl start hysteria-server
Oracle Cloud 注意事项
Oracle 默认防火墙很严,需要:
- iptables 开放端口
sudo iptables -I INPUT 6 -p udp --dport 443 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
- 安全列表添加规则(在 Oracle Cloud 网页后台)
- 源 CIDR:
0.0.0.0/0 - IP 协议: UDP
- 目标端口: 443
- 源 CIDR:
服务器优化
# 开启 BBR
echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
# 开启 IP 转发(如果用作 exit node)
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
Tailscale
所有服务器都已加入 Tailscale 网络,可通过 Tailscale IP 互联:
# 查看所有设备
tailscale status
# 设为 exit node
tailscale up --advertise-exit-node
Tailscale SSH
所有 VPS 已启用 Tailscale SSH,可直接通过 Tailscale 网络 SSH 连接(不走公网 22 端口):
| 机器 | 命令 |
|---|---|
tailscale ssh ec2-user@<REDACTED_TOKEN> |
|
| hk | tailscale ssh root@hk |
| jgw | tailscale ssh ubuntu@jgw |
| zgo-rsc | tailscale ssh root@zgo-rsc |
启用命令(如需在新机器上启用):
sudo tailscale set --ssh