【旅行自用】手把手教你搭建自己的vpn服务器(需要树莓派)
新增 Argotunnel 一键脚本与 TCP 网络调优方案,澄清 Cloudflare Zero Trust 隐私边界及 IP 指纹定位风险。
1. 关键信息
- Argo Tunnel 自动化部署:#101 新增无需中转 VPS、无需端口暴露的 Argo Tunnel 方案。提供两个一键脚本:
sba.sh(Sing-box 内核)和argox.sh(Xray 内核)。利用自有 Cloudflare 账户固定隧道,或默认使用优选域名临时隧道。流量走 Cloudflare 内网,不依赖优化线路。 - TCP 网络调优:#102 提供
/etc/sysctl.conf激进调优参数(启用 BBR、调整缓冲区等),旨在跑满千兆带宽并改善晚高峰丢包。建议通过 Cron 任务在晚高峰(19:00)和凌晨(01:00)动态切换tcp_pacing_ca_ratio、netdev_budget_usecs和 `netdev_max_backlog参数以优化性能。 - Cloudflare Zero Trust (CF ZT) 隐私争议:#104 指出 CF ZT 可解决酒店/机场网络不安全,但 #105 质疑其无法隐藏真实 IP(仍暴露家庭宽带 IP)。#106 进一步澄清:现代追踪主要依赖浏览器指纹(开机时间、Canvas、窗口大小等),而非仅靠 IP,因此 IP 隐藏并非隐私保护的全部。
- 硬件与性能瓶颈:#103 引用 NodeSeek 帖子指出 VPS 性能瓶颈只能缓解,无法根本解决;若需极致性能应购买更优独立服务器。此前提到的树莓派 SD 卡可靠性问题及 N150 小主机替代方案依然有效(#6、#30)。
2. 羊毛/优惠信息
3. 最新动态
- 技术演进:Argo Tunnel 方案因“免端口暴露”和“一键脚本”特性成为新热点,降低了自建门槛(#101)。
- 性能优化精细化:用户开始关注底层 TCP 参数调优及基于时间的动态策略,以应对国内网络晚高峰拥堵(#102)。
- 隐私认知更新:社区讨论从单纯的“IP 隐藏”转向“浏览器指纹追踪”,对 CF ZT 等方案的局限性有了更清晰的认识(#105、#106)。
4. 争议或不同意见
- IP 隐藏 vs 指纹追踪:#105 认为 VPN 核心是隐藏 IP,而 #106 反驳称 IP 易被指纹技术绕过,隐私保护需多维度考虑。
- 自建复杂度:尽管 Argo Tunnel 简化了部署,但 TCP 调优和 Cron 任务配置仍对普通用户有门槛;部分用户仍坚持认为商业机场或路由器自带方案更省心(#4、#5)。
5. 行动建议
- 快速部署 Argo Tunnel:若希望免端口暴露且利用 Cloudflare 网络,可直接运行
sba.sh或argox.sh脚本,适合有一定技术基础的用户(#101)。 - 性能调优尝试:对于带宽利用率不足或晚高峰卡顿的情况,可参考 #102 的 sysctl 配置及 Cron 动态调整策略,但需注意系统稳定性风险。
- 隐私预期管理:使用 CF Zero Trust 等方案时,需意识到 IP 仍暴露,且浏览器指纹可能泄露身份;若追求高匿名性,需结合其他手段或选择更专业的商业服务(#104-106)。
- 硬件选择:VPS 性能有限,重要场景建议升级独立服务器;家庭自建优先考虑支持 WireGuard 的路由器或 N150 小主机,避免树莓派 SD 卡故障风险(#103、#6、#98)。
你是否有担心过酒店或者机场的网络不安全?
或者特定用户会担心某些奇怪的颜色软件如果换ip会导致不必要的风控,所以自建一个稳定的“回家通道”就很有价值。这样可以一定程度保持低调
这里教你怎么从0到1搭建自己的vpn服务器
重要免责声明
这个方案不适合用于翻墙/绕过GFW,因为UDP协议特征明显,在国内运营商环境下几乎秒封。本教程仅用于提升个人网络隐私与安全性(比如酒店/机场/咖啡厅等不信任的公共Wi-Fi),以及远程安全访问家里NAS/摄像头/内网服务。
前期准备
一台树莓派(推荐4B或5,性能更好;or 哪个便宜买哪个)
一张microSD卡和读卡器
一台电脑用来ssh进树莓派(或者愿意查显示器也行,这里推荐ssh)
家里宽带能端口转发(大部分家用路由器都可以)
拥有一个自己的域名(比如 .xyz / .top / .fun 都很便宜,一年十几块)
注册一个免费的Cloudflare账号
核心思路
用域名+cloudfalre来创建自己的DNS record,所以比如你去 vpn.mydomian.xxx 可以拿到自己家的ip地址
因为现在大部分都是动态ip,用ddclient service来更新cloudflare上自己域名的dns来point到正确的ip
用树莓派pivpn当服务器,简介方便创建profile
终端上(手机电脑)用wireguard来连进自己的pivpn
详细步骤
1. 树莓派系统准备
用 Raspberry Pi Imager 烧录最新 Raspberry Pi OS(64位 Lite 版推荐,省资源)
重要:别选错了,一定要64。 32 bit 的话如果你之后想deploy些别的service可能deploy不了或者特别麻烦,比如mcp。楼主就吃过这个亏
插上电源,开机,ssh 连上(或接显示器键盘)
2. 安装 PiVPN
curl -L https://install.pivpn.io | bash
安装过程中选择 WireGuard
DNS 选 Cloudflare(1.1.1.1)
完成后会提示你可以用 pivpn add 来添加客户端
3. 设置 Cloudflare DDNS(让域名始终指向你家IP)
在Cloudflare → 添加你的域名
在域名里创建一个 A 记录,例如:
名称:vpn
内容:先随便填一个IP(后面会自动更新)
Proxy status:关闭(灰色云朵!非常重要,WireGuard 是 UDP,不能开代理)
创建 API Token(只给 DNS 编辑权限)
My Profile → API Tokens → Create Token → 用 Edit zone DNS 模板
Zone Resources 选你的域名 → Permissions 选 Zone - DNS - Edit
在树莓派上安装 ddclient:
安装
sudo apt install ddclient -y
编辑配置文件:
sudo nano /etc/ddclient.conf
内容,注意等号后面没有空格,不然我记得好像会出问题
protocol=cloudflare
use=web
zone=你的域名.com
password=「第三步里的API Token」
vpn.你的域名.com
原神!启动!
sudo ddclient -force
sudo systemctl enable ddclient
sudo systemctl start ddclient
创建新的pivpn profile
pivpn add
pivpn qr
选择上面add 的profile展示qr code
打开你的手机,下载wire guard,扫上面的qr code
画蛇添足
太麻烦了
有这时间折腾 几十rmb买个机场用1年不舒服吗
真的别折腾了,就算跑通了,到了地方又不通,旅行变debug现场过于下头
真的有需求买个
image1584×190 47 KB
vpn client 各种配置UI都是现成的,商业化产品稳定性也强。先于LD进房间,插上这个,LD洗手的时候,把这个连上酒店Wi-Fi。之后ld的手机ipad自动都有网了,比啥都强
vpn server的话也别自己搭,要么泥潭110% cb免费的,要么直接10元买个机场(在中国用了两周,刷泥潭可快了)。不折腾。
【引用自 AnonAno】:
树莓派
2026年不要再买树莓派了,一个N150小主机性能是他的一倍,能跑完整X86,还能用ssd,也就100来块200出头。 树莓派以前流行是因为低价,现在涨价太凶,而且事实证明把系统塞SD卡里就是个错误的主意,SD卡这东西就不可靠。就算是廉价nuc里的ssd,可靠性也比sd卡好。
顺便一提泥潭用户不应该手上有无数吃灰的免费vpn吗,cb网站动不动就送120% 100%返现,不需要自己搭建。
【引用自 打豆豆】:
要么直接10元买个机场(在中国用了两周,刷泥潭可快了)。
not a good idea for
【引用自 AnonAno】:
个人网络隐私
小机场隐私政策不透明,很多连无日志政策都不承诺,天知道会拿你的数据去干什么。
当然你也可以说大vpn可能参与棱镜计划,国人小机场不会参与。只能说这种就是吃几碗粉的自证难题,全看你信得过谁,至少我不敢信任无日志政策都没承诺的小机场。
机场就是用来绕过墙的,vpn是为了隐私,不是一个目的。
没懂,在家里设备装个tailscale设置成出口节点不是一样的吗
arduino呢
vps搞活动的时候进货就行,至于怎么搭,甩给claude,基本上没有什么难度
【引用自 打豆豆】:
要么直接10元买个机场(在中国用了两周,刷泥潭可快了)
有机场推荐吗
【引用自 打豆豆】:
先于LD进房间,插上这个,LD洗手的时候,把这个连上酒店Wi-Fi。之后ld的手机ipad自动都有网了,比啥都强
这波服务拉满了,豆嫂都直呼内行
我买的 奇异云 (注意别买到盗版了
10元一个月1024GB,每次回国就花10元,两三周足够了。。。
【引用自 AnonAno】:
个人网络隐私
【引用自 klaxien】:
小机场
在中国翻墙是第一刚需,机场是必须要用的…否则刷不了泥潭心里痒
偶尔回国开个google fi漫游得了,机场还有个问题是ip质量一般都不高,访问美国的金融系网站容易被阻断。
【引用自 klaxien】:
google fi漫游
我是att 后付费无限漫游,速度太慢,几乎处于能用和不能用之间(大部分时间是LTE。Google Fi漫游时候速度如何? ld的老爷爷tmobile无限漫游也是非常慢
点外卖和打车基本上手机和放幻灯片一样,刷泥潭也很便秘。看YouTube就更别说了…
每次回国至少10天,还挺影响体验的。
【引用自 打豆豆】:
vpn server的话也别自己搭
買個asus router接到自己家解決,自帶VPN server,現在做為client在普通的VPN配置之外還可以下載他的App一鍵連
我回去了几趟都用的google fi,记得是漫游到移动,体验挺好的。网站没问题,视频稍微有点慢也能看。奇怪,按理来说几家大运营商应该都不会太差的。
点外卖和打车基本上手机和放幻灯片一样
这个肯定慢的,相当于流量走到美国一圈再回来,我的体验是能用,但是很慢,国内网站还是走国内网好。
【引用自 klaxien】:
记得是漫游到移动,体验挺好的
是LTE还是5G? ATT也是漫游到移动,但国内几个大城市都是一如既往的慢,我印象中speedtest国内版测试也就30 kbps,被歧视得太严重了。
买了机场在房间里刷泥潭飞速,还能YouTube看电视剧,关键是不用来回切,来回捣鼓每台设备,所有设备都生效,这个对我很重要…
【引用自 heheovereggs】:
router接到自己家
【引用自 Sundaysun13】:
tailscale
我家里路由器也是GL inet的,自带UI所以很简单就开了tailscale作为exit节点,但是在中国几乎也不能用,而且速度和那个10元的机场差远了。后来就没用过,只是ping通了,能打开家里router的portal,自娱自乐一下完事
那个 tailscale不是更好?
这种技术贴下面总能学到很多东西
无论是op还是评论
【引用自 打豆豆】:
是LTE还是5G
没记错的话,LTE和5G都有,大部分时间是LTE,偶尔有5G。
【引用自 AnonAno】:
不适合用于翻墙/绕过GFW
连这个都不行的话懒人版用tplink/asus之类路由器就好了啊,ddns加ftp加vpn一整套
【引用自 打豆豆】:
奇异云
截屏2026-01-02 20.11.052118×480 50.2 KB
只是为了刷泥潭,改个dns就行。用firefox在隐私设置里把安全dns设为强制,然后找一个国内可用的国外DoH地址。
所有被dns污染但后端接在cloudflare的网站都能开。
啊?没看懂为什么需要树莓派。家里有 static IP 的话直接家里电脑部署 Wireguard 不就好了,没有的话 VPS 上部署或者映射到 VPS 上也行,至于 profile 什么的,推荐 wg-esay 直接 WebUI 管理就好了啊。
https://%E5%A5%87ncloud.com
【引用自 klaxien】:
LTE和5G都有,大部分时间是LTE
image1179×2556 166 KB
合理怀疑att和中国移动没谈拢,或者wbgzcm恶意降速,还是说中国的5G频段美国的手机不支持
刚在曼谷测了一下,这漫游的5G速度飞快啊…
有什么推荐的机场吗?
有些地方会给你把所有vpn的协议都block的干干净净,只有shadowsocks可以用…
【引用自 打豆豆】:
10元买个机场
5元租个Linode不香吗,用别人的机场等于XP每天被人看光光
实在不行aws也可以白嫖最便宜的plan
需要自己动手的都太贵,我一行命令都不想打了(要不然也不会买gl路由器
额,我都是带迷你主机的,刷几个系统,一边当路由一边当电脑,比较方便
直接用tailscale不香吗
你用的是iPhone 吗?Android 回国以后会有一些奇奇怪怪的频段问题,建议用iPhone(开热点)。国内的东西用国内的流量比较好,速度很快,用外卡还要绕一大圈才能把线路跑完。
顺便问一下你有没有开international day pass?
美国买一个路由器回国插上,能自动翻墙吗
【引用自 Sundaysun13】:
tailscale不是更好
上周末刚让我国内兄弟试了,美国国内的话还行,在中国连我美国电脑能通,但可用性不好,和豆豆老师说的一样
我的设备是iPhone 16 (但之前14 pro,13 pro也是一样的症状,漫游到中国移动速度很慢,出奇地慢。只是绕路应该是延迟高,速度本身不应该那么慢,我觉得就是被恶意降速了…
【引用自 Anonymously】:
顺便问一下你有没有开international day pass?
我是公司的卡自动开启全球无限漫游(所以我觉得不应该是att的套餐挂壁,因为你看上面曼谷测速就很快)
【引用自 klaxien】:
能跑完整X86
其实在server端个人感觉ARM已经完全能用了,没看到什么软件是不支持ARM的……各大distro都有官方支持了
【引用自 打豆豆】:
在中国几乎也不能用
我在北美的Asus VPN server (走cisco IKEv2)在中國能用,機場Wi-Fi都可以用的那種
我Google Fi在中国快得飞起,带宽管够,ping比较高。
也是美版iPhone吗
用不着这么麻烦,任何能装linux的东西,包括旧电脑,旧机顶盒,旧手机(通过termux),openwrt路由器,都可以去装个xray一键脚本:
github.com
GitHub - mack-a/v2ray-agent: Xray、Tuic、hysteria2、sing-box 八合一一键脚本
Xray、Tuic、hysteria2、sing-box 八合一一键脚本
其中vless-reality和shadowsocket甚至不需要自己的域名就可以把本机当成代理服务器。
然后开服务器的机器在家里路由器设置好端口映射(或者直接搞成DMZ机器),配合ddns,就可以远程连回家了。
如果家里连公网IP都没有,可以用我写的这个服务,不需要任何中转机,利用TCP打洞,直接连回家:
github.com
GitHub - kanshurichard/GoHomeEasy: GoHomeEasy is a Serverless-based (Cloudflare...
GoHomeEasy is a Serverless-based (Cloudflare Workers / AWS Lambda) Shadowsocks/Clash subscription management tool, designed specifically for home broadband users without a public IP to access their home network remotely.
谢谢分享
不过基于美卡论坛的精神,免费的gigsky似乎更有性价比
【引用自 bill】:
免费多次白嫖 1GB 15天 eSIM 全球可用【Visa offer】
一张卡一个日历年可以白嫖1GB(部分卡可以白嫖2次),用完换号即可。
在自己家建,从中国连速度怎么样?这个线路没优化过。
在中国用去买优化线路VPS,有访问自己家的需求走remote desktop
在国内直接连的体验真的行么?我之前用 AWS 搭过,带宽很低,可用性极差,最后还是用机场了
泥潭薅的那些 VPN 大概都用信用卡支付的,被 subpoena 了还是相当于实名上网,我基本只用来下资源和跨区啥的
匿名支付这块我只服 Mullvad 的邮寄纸钞
这个你只能相信提供商的人品,还有就是不要干不该干的事。这东西只是给你保护隐私的,不是保护你干非法的事的。
我记得之前看到过一个用tor被警方盯上的,网络虽然完全匿名,最后是根据流量特征和上网时间确定的嫌疑犯。
美版iPhone ,之前用Android各种问题,换成iPhone 起飞。你可以确认一下你的套餐到底有没有高速流量,你说的那个限速我感觉是没有高速流量漫游。
【引用自 Anonymously】:
换成iPhone 起飞
那应该就是协议价里面没包括高速流量(或者我在美国用超了高速的部分?公司的套餐我看不到任何信息,算了。下次回国直接用中国移动的卡最省事
我是美国卡加中国卡一起用,凡是涉及到国内的东西并且速度要快一点的,我都用中国卡。不过这一次我发现有时候中国卡即使信号满格也会出现网速很慢的问题,可能还是一个基站附近的上网的人太多了。这时候WiFi 可以解决尴尬。
我还出现过火车站有信号但是完全没网(听着很像美国的tier 234那种子品牌),看来就是套餐没到位,被歧视了。
你敢的话,可以用hysteria2协议开在udp443端口模拟http3网站,从中国访问多差的线路都能跑满
我有两个日本的IP,看youtube都没问题,美国西海岸的话会慢不少
请问这个买国内版的刷成国际版系统功能一样吗?准备回国当透明代理用,发现京东上比美国便宜很多
我确实不是很了解这个,可能是老时代的人了哈哈 比较相信openvpn
早年买了两个树莓派3,建起vpn和HA都很方便,也省电。就是回国的时候依然经常连不上,用红茶解决。
不翻墙的话,你就搞个shadowsocks,搭建也方便,用起来也方便,无论是服务端还是客户端软件选择都超级多。
越简单的东西问题越少。
去楼下买包子就可以但是楼主想教大家做包子
【引用自 打豆豆】:
中国用了两周,刷泥潭可快了
我的搬瓦工访问泥潭都403
被迫折腾了t-mobile原生漫游通道
Beryl 可以搭配 机场一起使用吗?以前从来都没有搞过机场
【引用自 KanShu】:
旧手机(通过termux)
需要root吗?
不需要。
那方便多了
但可能需要搞个usb hub拖个有线网卡,用无线的话会很不稳定。
我去年回国用的是用asus xt8 创建的wireguard 访问完全没有问题
有没有反向翻回国的技术呢,不懂vpn,但是照着ai的操作搞了一个路由器刷成vpn路由器,完事了发现搞不到回国的节点
使用frp,找个有公网ip的机器反向代理回国内的家。只是可以用,速度不大行
也是个思路,感谢
我现在感觉还是tailscale最稳定,国内美国各放一个路由器
有反向回国的机场的,买一个就可以,自己搭建也不便宜
打豆豆: 我买的 奇异云 (注意别买到盗版了 谢谢豆豆老师,研究了一下准备上车,那个2.99$的App是必须要买? 这家做多久了?长期用是不是月付比较好?年付怕跑路了,不过也就100rmb
最近还有刷到用cloudflare workers搭梯子的github repo
877: 那个2.99$的App是必须要买? ??? 877: 长期用是不是月付比较好?年付怕跑路了,不过也就100rmb 是不是遇到假网站了 只有¥10一个月,童叟无欺啊。app不需要买,也没有年付 哦 看了下是有年付。我是每年买两次月付,2025年开始买的,目前没跑路。但这几天效果一般,我开始研究自建了 你是女生自用吗?别买了我直接把我的发给你吧…
机场是啥。。。
/uploads/short-url/hEHXfQu2YPV6UqpZq5PM7gnbHXF.png?dl=1 /uploads/short-url/TxvC9QepOrSxOUagHh3FhFXWTB.png?dl=1 我搜到的是这个 打豆豆: app不需要买 那个shadowrocket的软件是要2.99$,本来要下手了,觉得奇怪来找你问问 /uploads/short-url/xQ8WhnmhFW4xrWZjVp7ApOtkdwg.jpeg?dl=1 打豆豆: 但这几天效果一般,我开始研究自建了 具体怎么不好用,刚准备上车 打豆豆: 你是女生自用吗?别买了我直接把我的发给你吧… 我准备给在国内的我妈用,之前的年付surfshark到期了,最近靠我开小号30天一个30天一个续命,豆豆老师不用给我发,给我指个正版的路就好
网站是这个 但最近晚上延迟很大,甚至YouTube/爱一番看着都卡,有两天晚上接近不能用…
打豆豆: 网站是这个 那这个app是对的吗?难不成是去年app不收费,今年app变成收费2.99$赚点额外外快? 打豆豆: 但最近晚上延迟很大 最近zz因素,监管严了点,VPN基本都连不上,风头过了就好了
那个收费app不是必须的(我是旅行路由器命令行安装了 开源的openclash,直接复制粘贴订阅链接就能用了。 2.99的app只是一个壳,能用任何机场的订阅链接。同样其他clash client也能用任何机场的订阅链接。 手机上我记得有免费的 https://apps.apple.com/us/app/clash-mi/id6744321968 也是复制粘贴订阅链接就行。 电脑/安卓上免费的客户端应该更多… 有什么重大事件嘛 距离春夏之交还很远啊
打豆豆: 手机上我记得有免费的 https://apps.apple.com/us/app/clash-mi/id6744321968 也是复制粘贴订阅链接就行。 Clash MI 我用了没有两分钟就闪退了,还是得用 Shadowrocket
打豆豆: 有什么重大事件嘛 距离春夏之交还很远啊 最近打击机场居然不知道吗,大部分国内中转机场都阵亡了
奥感谢,一语点醒! 打豆豆: 有什么重大事件嘛 https://www.rfa.org/mandarin/shehui/2026/04/09/china-internet-vpn-block-greatfirewall/ https://www.rfa.org/mandarin/shehui/2026/04/09/china-internet-vpn-block-greatfirewall/ 海外社交媒体近期流传4至5份涉及中国加强网络管理的内部文件。文件显示,中共中央网信办及三大电信运营商正加强对跨境网络连接的管控,涉及企业和个人。 原因我就不知道了,实测surfshark想要连巨费劲巨费劲
这么说还是买一个吧
母鸡啊,我没什么国内技术论坛可以逛。 不过现在有AI自建也很方便了。用claude在我买的vps那里自建了一个,很快就拿到了订阅链接。可能我运气好买的vps的ip没被和谐,虽然是美东但速度不错,酒店看爱一番YouTube很丝滑。 /uploads/short-url/ylCM2HmMtJDK3fsBxzAfQe6uG4M.png?dl=1 我这2刀一个月的vps,感觉以后也不用买机场了
据说是因为天津超算中心被黑,10PB数据被人通过机场中转传了出去
最近X上都在说这个
我是买了美国机房针对 CN2 GIA 优化的 VPS,让 Claude 给我搭了一个 singbox 跑 Hysteria2,然后从这个 VPS 再用 wireguard 连回家里的 UDM,这样我在国内也可以一直使用我的家宽 IP,速度和延迟都还不错 /uploads/short-url/qec3Jp6Y0RfTbhsd9EsVGpG8BHm.png?dl=1
李十三: 然后从这个 VPS 再用 wireguard 连回家里的 UDM 妙啊 这样能解决人机验证的问题吗 我之前只用tailscale连家里的路由器/群晖,速度太慢了。不知道是协议不行还是家里线路不行 (等有空了再让ai从家里路由器搭一个
我是TMO/gigsky负责翻墙,再套wireguard冒充美国本土,基本上银行/券商都没问题 不翻墙硬连wireguard速度也是可以的,就是不知道啥时候被封杀 根据我公安的同学说,只是有时候他们懒得管,要管就不会有漏网之鱼
你可以去测一下你的 IP,家宽 IP 只要你不乱干肯定是最干净的,会少很多人机验证 Tailscale就是 wireguard,在国内很多地方基本上不能用,所以需要找一个线路优化过的中转box
wireguard 在中国很多地方基本上不能用,所以必须得中转一下
李十三: Tailscale就是 wireguard 那怪不得很慢,wireguard我记得特征太明显了,分分钟被封。 但我家静态ip好像更换还得找isp,我又怕搞黑了不舍得用
不翻墙的话,直接用家里的路由器不就行了(一般自带VPN服务的,直接开启就行了)?有点重复造轮子的意思了
只有你自己用为什么会黑?你在国内翻墙用的东西和你在美国用的又没什么区别
意思是被中国拉黑吧 留着以后关键时候用 好吃的要留到最后吃
不是,GFW又看不到你的家宽IP,你所有 traffic 都是先到 VPS 再回你家的
太高级了 有什么关键字吗 这个二次中转 晚上我让ai试试
我让 Claude 搞完以后复盘做的 skill,没有测试过 #p-8018266-name-proxy-tunnel-description-set-up-a-sing-box-hysteria2-proxy-on-a-fresh-debian-vm-with-a-wireguard-tunnel-back-to-a-home-udm-pro-so-that-client-traffic-exits-through-the-home-ip-invoke-when-the-user-wants-to-rebuild-or-deploy-this-tunnel-setup-on-a-new-vm-1name: proxy-tunnel description: Set up a sing-box Hysteria2 proxy on a fresh Debian VM, with a WireGuard tunnel back to a home UDM Pro, so that client traffic exits through the home IP. Invoke when the user wants to rebuild or deploy this tunnel setup on a new VM. #p-8018266-proxy-tunnel-hysteria2-wireguard-to-home-2Proxy tunnel: Hysteria2 + WireGuard-to-home Sets up a two-hop tunnel on a VM: [client in China] --Hysteria2/UDP--> [VM] --WireGuard--> [UDM Pro at home] --> internet (home IP) Sing-box terminates Hysteria2 and its direct outbound is bound to wg0 , so all proxied traffic exits through the home WireGuard. #p-8018266-what-to-ask-the-user-first-3What to ask the user first Before running anything, collect: VM SSH access : user@ip (usually root@<ip> ). Key is typically via 1Password SSH agent — don’t ask for key path unless the user brings it up. TLS mode : self-signed (default, easiest) or ACME with a real domain. Self-signed requires client insecure: true . ACME needs a domain pointed at the VM and port 80 open. WireGuard client config from the UDM Pro . The user must generate this in UniFi Network → Settings → VPN → VPN Server → WireGuard → add client peer → download/copy the .conf . It looks like: [Interface] PrivateKey = ... Address = 192.168.X.2/32 DNS = 192.168.X.1 [Peer] PublicKey = ... AllowedIPs = 0.0.0.0/0 Endpoint = <home-wan-ip-or-ddns>:51820 Port/password : default to UDP/443 + randomly generated password. Users can override. Obfuscation : default to salamander obfs enabled (GFW resistance). Use the same password as auth for simplicity. Remind the user that the UDM WAN firewall should allow UDP/51820 from the VM’s IP. #p-8018266-steps-4Steps #p-8018266-h-1-prep-the-vm-51. Prep the VM Always check for and kill a wedged unattended apt-get update first — this has happened before on fresh DMIT VMs and blocks installs for hours: ssh root@<IP> 'pgrep -ax apt-get; pgrep -ax unattended-upgr' # if stuck for >5 min on a CLOSE-WAIT connection: ssh root@<IP> 'pkill -9 apt-get; pkill -9 unattended-upgr; \ rm -f /var/lib/apt/lists/lock /var/cache/apt/archives/lock \ /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock' #p-8018266-h-2-install-sing-box-from-the-official-debian-repo-62. Install sing-box from the official Debian repo ssh root@<IP> 'set -e apt-get update apt-get install -y curl ca-certificates gnupg openssl mkdir -p /etc/apt/keyrings curl -fsSL https://sing-box.app/gpg.key | gpg --dearmor --yes -o /etc/apt/keyrings/sagernet.gpg chmod a+r /etc/apt/keyrings/sagernet.gpg echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/sagernet.gpg] https://deb.sagernet.org/ * *" \ > /etc/apt/sources.list.d/sagernet.list apt-get update apt-get install -y sing-box wireguard iptables conntrack' #p-8018266-h-3-generate-cert-password-and-sing-box-config-73. Generate cert, password, and sing-box config Self-signed cert with CN= bing.com (matches the masquerade). For ACME, replace the tls block per sing-box docs. PW=$(openssl rand -base64 24 | tr -d '/+=' | head -c 32) ssh root@<IP> "set -e mkdir -p /etc/sing-box/certs cd /etc/sing-box/certs openssl ecparam -genkey -name prime256v1 -out key.pem openssl req -new -x509 -days 3650 -key key.pem -out cert.pem -subj '/CN=bing.com' chown -R sing-box:sing-box /etc/sing-box/certs chmod 600 key.pem cat > /etc/sing-box/config.json <<EOF { \"log\": { \"level\": \"info\", \"timestamp\": true }, \"inbounds\": [ { \"type\": \"hysteria2\", \"tag\": \"hy2-in\", \"listen\": \"::\", \"listen_port\": 443, \"obfs\": { \"type\": \"salamander\", \"password\": \"$PW\" }, \"users\": [ { \"name\": \"me\", \"password\": \"$PW\" } ], \"masquerade\": \"https://bing.com\", \"tls\": { \"enabled\": true, \"alpn\": [\"h3\"], \"certificate_path\": \"/etc/sing-box/certs/cert.pem\", \"key_path\": \"/etc/sing-box/certs/key.pem\" } } ], \"outbounds\": [ { \"type\": \"direct\", \"tag\": \"direct\", \"bind_interface\": \"wg0\" } ] } EOF sing-box check -c /etc/sing-box/config.json" Save the password — needed for clients. Note the same password is used for both auth and obfs; this is fine for a single-user personal proxy. #p-8018266-h-4-configure-wireguard-with-policy-routing-dont-break-ssh-84. Configure WireGuard with policy routing (don’t break SSH) Paste the UDM-generated client config with two critical modifications : Add Table = 200 so wg-quick installs routes in a custom table instead of replacing the system default. Without this, SSH replies go out wg0 with source=192.168.x.2, home NATs them back to its WAN, and SSH breaks. Strip the DNS = ... line (don’t let wg-quick rewrite system resolv.conf). Add PersistentKeepalive = 25 . ssh root@<IP> 'umask 077 cat > /etc/wireguard/wg0.conf <<EOF [Interface] PrivateKey = <from-UDM> Address = 192.168.X.2/32 Table = 200 [Peer] PublicKey = <from-UDM> AllowedIPs = 0.0.0.0/0 Endpoint = <home-endpoint>:51820 PersistentKeepalive = 25 EOF chmod 600 /etc/wireguard/wg0.conf' #p-8018266-h-5-persist-loose-rp_filter-95. Persist loose rp_filter ssh root@<IP> 'cat > /etc/sysctl.d/99-wg-rpfilter.conf <<EOF net.ipv4.conf.all.rp_filter=2 net.ipv4.conf.default.rp_filter=2 EOF sysctl --system' #p-8018266-h-6-enable-and-start-services-106. Enable and start services ssh root@<IP> 'systemctl enable --now wg-quick@wg0 systemctl enable --now sing-box sleep 2 wg show systemctl is-active sing-box wg-quick@wg0' #p-8018266-h-7-verify-117. Verify # WG handshake (should show a recent timestamp and non-zero received bytes) ssh root@<IP> 'wg show wg0 latest-handshakes' # Egress IP through the tunnel (should be the HOME WAN IP, not the VM IP) ssh root@<IP> 'runuser -u sing-box -- curl -s -4 --max-time 10 ifconfig.me' If curl as sing-box returns empty or times out, the WG handshake didn’t complete — check UDM firewall (WAN LOCAL must allow UDP/51820 from the VM IP) and that the peer’s public key on the UDM matches what the private key in wg0.conf derives. #p-8018266-client-config-output-12Client config output Give the user all three forms: Shadowrocket URI (importable via clipboard): hysteria2://<PW>@<IP>:443/?sni=bing.com&insecure=1&alpn=h3&obfs=salamander&obfs-password=<PW>#<NAME> sing-box client outbound : { "type": "hysteria2", "server": "<IP>", "server_port": 443, "password": "<PW>", "obfs": { "type": "salamander", "password": "<PW>" }, "tls": { "enabled": true, "server_name": "bing.com", "insecure": true, "alpn": ["h3"] } } Mihomo / Clash.Meta YAML : - name: <NAME> type: hysteria2 server: <IP> port: 443 password: <PW> obfs: salamander obfs-password: <PW> sni: bing.com skip-cert-verify: true alpn: [h3] #p-8018266-gotchas-learned-the-hard-way-13Gotchas — learned the hard way Do NOT use iptables fwmark + OWNER-MATCH to route sing-box traffic through WireGuard. The WG kernel module propagates the inner skb’s mark onto its encapsulated UDP packets, which causes a recursive routing loop through wg0. Sing-box’s native bind_interface: "wg0" on the outbound avoids this entirely. Do NOT make wg0 the system default route . It breaks SSH (replies get routed through home) and requires complex source-based rules to work around. Use Table = 200 in wg-quick config so wg0 routes only apply when explicitly targeted (e.g. by bind_interface ). DMIT VMs often ship with a wedged initial apt-get update holding the dpkg lock for 20–30+ minutes on a stale CLOSE-WAIT TCP connection. Detect and kill it before trying to install. Home WAN IP change breaks the tunnel. Use DDNS on the UDM and set Endpoint to a hostname. Self-signed cert + GFW active probing : if the GFW probes the server with TLS, a self-signed cert claiming to be bing.com is a giveaway. For long-term China use, consider ACME with a real domain. Obfs + auth passwords : Hysteria2 salamander obfs takes its own password, separate from user auth. Using the same value for both is fine for a personal proxy; use different values if you prefer.
斯兰你的内哭
家里有两套deco,结果老的deco 55居然上面vpn server 支持WireGuard. 设置很简单,一路default, 然后添加一个peer, 再一路default. 之后生成一个barcode. 手机上下载wireguard app, 一扫那个barcode, 就妥了,前后就10分钟。 还有一套新一点的deco 75, 只支持open VPN, 不支持wireguard, 估计是firmware 还没有更新来支持wireguard. 在deco 55和 deco75上都设了open vpn, 结果一比较速度,还是wireguard vpn快的多。 open vpn 协议AES + TLS + OpenSSL,很吃CPU, WireGuard就先进多了,代码极少, 所以更快。 回国用就不能用wireguard了,得上3X-UI+Reality家里自建,或者洛杉矶有https://www.google.com/aclk?sa=L&pf=1&ai=DChsSEwiVs8iapsOUAxUjLdQBHdCONO0YACICCAEQARoCb2E&co=1&ase=2&gclid=CjwKCAjw8arQBhB9EiwAfIKdQmTwys8l2JBeyTn9epeM4K55Led3JyL-QbKfzuScVk6eEgr-GgVAEBoC5UwQAvD_BwE&cid=CAASuwHkaM90OL-yI67S9_DxJazAsDI__moPJJj0mwY_3u0UndQqqkquCkpeFM2h2Y_7E5p3TJlROqfrQXTBVMf_KSFBZ2Tuf0ydSaCymOPH5UtZwSMwefW4tIxY46TAY0yYzJDo_kfIwoniTjAPv-8arv1nOgdEgPQKfOuLRZ-hzMNQlcfIMHoV_7vylalFjmNUcE1Cjxj8MH4vgypcBbYmQkXsMOJffzHW_HtsNwjTkqapDqb7rrrfs4kYJCLR&cce=2&category=acrcp_v1_32&sig=AOD64_3TlDw2odaSLw_hLOhFlzXEXLafHg&q&nis=4&adurl=https://bandwagonhost.com/aff.php?aff%3D64224%26pid%3D87%26gad_source%3D1%26gad_campaignid%3D20335342266%26gbraid%3D0AAAAAp2dnCoe54IRjk01ZYAv48CQsNntw%26gclid%3DCjwKCAjw8arQBhB9EiwAfIKdQmTwys8l2JBeyTn9epeM4K55Led3JyL-QbKfzuScVk6eEgr-GgVAEBoC5UwQAvD_BwE&ved=2ahUKEwjEhMGapsOUAxUXmSYFHZnIFjQQpigoAXoECBsQEA线路的 VPS.
嗯对 我现在基本也适用x3-ui了。就是要买个shadowrocket
还可以cf zero trust tunnel + xray ws,但是速度抽奖,取决于国内运营商
不需要中转VPS,只需要一台在线的可联网服务器,不需要端口暴露,执行以下两个脚本中任意一个,可使用自有cloudflare账户固定隧道内网穿透,默认无需cloudflare账号直接使用优选域名临时隧道内网穿透,如果是在家庭服务器运行,那落地时是自己的美国家庭宽带IP argo(singbox内核) bash <(wget -qO- https://raw.githubusercontent.com/fscarmen/sba/main/sba.sh) argox(xray内核) bash <(wget -qO- https://raw.githubusercontent.com/fscarmen/argox/main/argox.sh) 线路走cloudflare内网,和优化线路无关
TCP调优 /etc/sysctl.conf配置参考(可以让Claude帮忙适当激进一些)(跑不满千兆才需要调优) net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr net.ipv4.tcp_rmem=4096 262144 33554432 net.ipv4.tcp_wmem=4096 262144 33554432 net.core.rmem_max=67108864 net.core.wmem_max=67108864 net.core.rmem_default=1048576 net.core.optmem_max=65535 net.ipv4.tcp_window_scaling=1 net.ipv4.tcp_adv_win_scale=1 net.ipv4.tcp_fastopen=3 net.ipv4.tcp_notsent_lowat=131072 net.core.netdev_max_backlog=32768 net.ipv4.udp_rmem_min=131072 net.ipv4.udp_wmem_min=131072 net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 net.core.netdev_budget=600 net.core.netdev_budget_usecs=8000 net.core.dev_weight=128 net.core.busy_poll=50 net.core.busy_read=50 net.ipv4.tcp_sack=1 net.ipv4.tcp_dsack=1 net.ipv4.tcp_fack=1 net.ipv4.tcp_early_retrans=1 net.ipv4.tcp_recovery=1 net.ipv4.tcp_retries2=8 net.ipv4.tcp_rto_min=200 net.ipv4.tcp_frto=2 net.ipv4.tcp_mtu_probing=1 net.ipv4.tcp_mem=786432 1048576 26777216 net.ipv4.udp_mem=65536 131072 262144 net.ipv4.tcp_gro_flush_timeout=20000 net.ipv4.tcp_pacing_ca_ratio=110 net.ipv4.tcp_pacing_ss_ratio=180 以下加入cron task (crontab -e),确保系统时间是大陆时间,不然就需要转换一下,针对晚高峰丢包问题有一些改善 0 19 * * * root /sbin/sysctl -w net.ipv4.tcp_pacing_ca_ratio=100 >/dev/null 2>&1 0 19 * * * root /sbin/sysctl -w net.core.netdev_budget_usecs=10000 >/dev/null 2>&1 0 19 * * * root /sbin/sysctl -w net.core.netdev_max_backlog=65536 >/dev/null 2>&1 0 01 * * * root /sbin/sysctl -w net.ipv4.tcp_pacing_ca_ratio=110 >/dev/null 2>&1 0 01 * * * root /sbin/sysctl -w net.core.netdev_budget_usecs=8000 >/dev/null 2>&1 0 01 * * * root /sbin/sysctl -w net.core.netdev_max_backlog=32768 >/dev/null 2>&1
https://www.nodeseek.com/post-299299-1 脚本合集,VPS性能瓶颈只能缓解,想提高VPS性能请购买更优的独立服务器(杜甫)
AnonAno: 你是否有担心过酒店或者机场的网络不安全? AnonAno: 注册一个免费的Cloudflare账号 打开cloudflare zero trust,结束
AnonAno: 用树莓派pivpn当服务器,简介方便创建profile 用VPN不是为了隐藏IP吗,你不还是用你家的IP吗?
IP没啥用,现在都是看指纹,https://browserleaks.com/ip 开机时间+窗口大小+cavans基本可以定位身份了