# 【随笔】2026-10-05 | 从"连不上家里的电 脑"到全链路打通
---
date: 2026-10-05
tags: [内网穿透, frp, SSH, NAT, CGNAT, 华为云, Windows, 计划任务, 远程访问, 折腾实录]
type: 随笔
---
> 需求很朴素:人在外面,用手机 SSH 连回家里电脑。现状很骨感:家宽没有公网 IP、光猫防火墙拦一切入站、路由器连管理权限都拿不 到。这篇文章复盘我两天的完整探索——从方案 海选到 13 个坑逐一取证,从"能连上"的及格 线,一路走到"重启后还能连、闲置一晚不断线"的毕业线。
## 一、起点:现代家宽的"三无"困境
先交代需求。我不只是想"看看"家里的电脑: 在外面临时改两行代码、跑个脚本、让 tmux 里的长任务夜里自己跑——这些都需要一个真正 的 SSH 会话,不是远程桌面能替代的。
想在外面的任意网络里 SSH 回家,先得回答一个问题:**外面的包,凭什么进得了你家的门 ?**
我的家宽现状是标准的"三无":
| # | 墙 | 现状 |
|---|---|---|
| 1 | 无公网 IPv4 | 运营商早已不分配独立 公网 IP,家宽普遍缩在 CGNAT(运营商级 NAT)后面,几百户共用一个公网出口 |
| 2 | IPv6 有了,但白搭 | 光猫/路由器自带 IPv6 防火墙,拦截一切入站连接;想改配置 需要**电信运营商的超级账号**——普通用户这 辈子拿不到 |
| 3 | 路由器零配置权限 | 端口映射、DMZ、UPnP,想都别想 |
结论其实只有一个:**一切依赖"外面主动连进来"的方案,全部死刑。** 唯一的活路,是让 家里的电脑**主动伸出手去**。
## 二、方案海选:四条路线的否决与胜出
方向定了,接下来是选路。我把能找到的路线 挨个过了一遍:
| 方案 | 结局 | 一句话点评 |
|---|---|---|
| IPv6 直连 + 防火墙放行 | ❌ | 卡在路由 器超级账号,普通人无解 |
| EasyConnect | ❌ | 方向反了——那是"你连 单位内网"的商用 SSL VPN,个人根本没有服务端可部署,安全口碑还差 |
| Tailscale | 备选 | 优秀,但协调服务器在境外,国内使用有不确定性 |
| EasyTier + 公共共享节点 | 中途翻车 | 国产开源、去中心化,电脑端轻松入网;但**手 机流量死活入不了网**——疑似运营商 CGNAT 对公共节点 UDP 限流 |
| **云服务器 + frp** | ✅ 最终胜者 | 出站穿透的经典解法,配一台最低配云服务器,连 接确定性 100% |
EasyTier 那次翻车反而成了整个选型的**关键转折**:手机端无法稳定运行组网类工具(VPN 常驻、电池优化杀后台、部分平台压根没有客户端),这个事实反向逼出一个洞察——
> **客户端越"傻"越好,理想状态是手机只需 要一个普通 SSH App。**
frp 恰好满足:手机直连云服务器公网 IP,对组网协议零感知。家里的网络再复杂,也复杂 不到手机头上。
## 三、买服务器:三个新手概念题
方案定了,先买服务器。这一步踩的不是技术 坑,是**概念坑**。
### 1. VPC ≠ VPS(一字之差,天壤之别)
云控制台里最显眼的"VPC"是个大坑爹名词——它是**虚拟私有云**,本质是一张"网络规划图" ,**不是服务器**,装不了任何东西。真正要 买的是 **ECS / 轻量应用服务器**:一台有公网 IP 的真机器。
### 2. "仅 IPv6 无限流量"的诱惑
便宜是因为服务器只有 IPv6 地址。看似划算 ,实则埋雷:**你发起连接的每一个网络都必 须有 IPv6**。一旦连上 IPv4-only 的 WiFi(公司、酒店、朋友家)→ **彻底失联,连服务 器都摸不到**。
多花几块钱买 IPv4 标准型,买的是"任何网络都连得上"的保底。
### 3. 镜像与规格选择
- Windows Server?1G 内存跑不动它自己
- CentOS 8.2?已停止维护(EOL),无安全更新
- 最终选 **Ubuntu 24.04 LTS**——教程最多、生态最广、支持到 2029
- 规格 2 核 1G,跑一个 frps(内存占用仅 20MB 左右),属于"大材小用"级别的匹配
## 四、原理篇:frp 凭什么绕过一切封锁
动手之前先想明白原理。frp 的穿透靠三层技 巧,层层递进:
### 1. 状态型防火墙的"漏洞"
防火墙/NAT 只拦"不请自来"的入站包,但**放行合法出站连接的所有回程数据**。frpc 开机就主动连服务器的 7000 端口——合法出站,一 路绿灯。
### 2. 长连接 = 永不挂断的专线
这条出站连接靠心跳包死死保持。之后所有数 据都"装在"它里面运输——对家里的防火墙来说 ,这些全是"合法出站连接的回程数据",无差 别放行。
### 3. 连接拼接
```
[手机] --TCP--> [服务器 frps:6000] ==长连接隧道== [家电脑 frpc] --TCP--> [sshd:2222]
```
手机连服务器 6000 → frps 通过长连接喊 frpc 接应 → frpc 回头连本机 sshd → 两段字节 流无缝对接。**SSH 加密是端到端的**:手机 和 sshd 直接协商密钥,服务器夹在中间只是 个搬运工,搬的全是看不懂的密文。
> 一句话总结:**家里的人够不着外面?那就 让家里的人先伸手出来,所有人沿着这条手双 向通话。**
## 五、部署实录:从 frps 到手机首连
### 服务器端
```bash
# 下载 frp v0.61.1(GitHub 国内龟速的解法见坑 3)
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
tar -xzf frp_0.61.1_linux_amd64.tar.gz
sudo mkdir -p /opt/frp
sudo cp frp_0.61.1_linux_amd64/frps /opt/frp/
```
`/opt/frp/frps.toml`:
```toml
bindPort = 7000
auth.token = "<你的token>"
```
用 systemd 托管(崩溃自重启):
```ini
# /etc/systemd/system/frps.service
[Unit]
Description=frps service
After=network.target
[Service]
Type=simple
ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
```
```bash
sudo systemctl daemon-reload
sudo systemctl enable --now frps
sudo ufw allow 7000/tcp # frpc 的生命线
sudo ufw allow 6000/tcp # 对外代理口
# 验证:frps 存活、端口已监听
systemctl status frps
ss -tlnp | grep 7000 # 此刻只应看到 7000——6000 要等 frpc 注册后才出现(见坑 2)
```
**别忘了云控制台的安全组**——网页上还有一 层防火墙,7000 和 6000 都要放行(这个"双 层防火墙"是后面坑 5 的主角)。
### 家电脑端
`C:\frp\frpc.toml`(终态版本,含后文坑 13 的药方):
```toml
serverAddr = "<服务器公网IP>"
serverPort = 7000
auth.token = "<你的token>"
# 关键:首次登录失败不退出,内置无限重连 (坑 13 的药方)
loginFailExit = false
[log]
to = "C:/frp/frpc.log"
level = "info"
maxDays = 7
[[proxies]]
name = "home-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 2222
remotePort = 6000
```
命令行党可以直接给 Defender 加排除(为什 么需要排除,见坑 8):
```powershell
Add-MpPreference -ExclusionPath "C:\frp"
```
### 手机首连
Termius 里新建 Host:
| 字段 | 值 |
|---|---|
| Address | `<服务器公网IP>` |
| Port | `6000` |
| Username / Password | 家电脑的账户密码 |
连上那一刻,提示符是家里电脑的主机名。
**手机永远只连 6000**。它不知道也不需要知道:这条连接在服务器上被"换乘"了一次,最 后敲的是家电脑的 2222。
## 六、踩坑实录:13 个坑的取证式展开
部署一路走下来,我总共踩了 13 个坑。按剧 本类型分组复盘。
### 连通类:三个"不通",各有各的剧本
**坑 1:端口测试的时序陷阱。** 部署 frps 之前就测 `Test-NetConnection <服务器公网IP> -Port 7000` → False,差点误判为防火墙 问题。真相:**没进程监听的端口,内核直接 拒绝连接**。端口连通测试必须在服务部署之 后做,否则你根本无法区分"防火墙拦了"和"压根没人听"。
**坑 2:6000 端口"不通"的虚惊。** frps 起来了,6000 还是 False?正常——6000 要等 frpc 连上来"注册映射"后,frps 才开始监听。**要分清哪些端口是服务启动即监听,哪些是客户端注册后动态出现的。**
**坑 5:防火墙是两层的。** 云厂商安全组(网页配置)和系统防火墙(ufw)**相互独立,都要放行**。排查"配置全对但就是不通"的顺 序:先 `sudo ufw status` 看系统层,再查云控制台安全组。这是我"按步骤做但不通"的头 号元凶。
### 下载类
**坑 3:GitHub 国内龟速。** 服务器 wget GitHub Release 卡在重定向——真实下载地址是 objects.githubusercontent.com,国内极慢。解法组合拳:
- GitHub 加速代理前缀(搜"GitHub 文件加速"找当前可用的)
- Gitee 社区同步仓库(站内搜 frp)
- aria2 多线程硬啃:`aria2c -x 8 <地址>`
- 终极大招:本地下载好,scp 传上去
**下载完记得 `ls -lh` 校验大小**(frp 0.61.1 linux 包约 13M),偏小就是没下完整, 解压必报错。
### 稳定性类
**坑 4:SSH 频繁掉线。** `client_loop: send disconnect: Connection reset`,闲置几 分钟必掉。病根:**SSH 太安静,被中间 NAT 设备判死**(状态登记被清掉了)。客户端侧 的药方是给 `~/.ssh/config` 加心跳:
```text
Host *
ServerAliveInterval 30
```
每 30 秒一个心跳包骗过闲置检测;长任务再 进 tmux 兜底,掉线重连 `tmux attach` 回到现场,任务零中断。服务端全局心跳的展开见 第八章——这个坑后来还以"手机掉线"的形态返 场了一次。
### Windows 特产
**坑 6:sshd 端口竟是 2222。** 家电脑的 sshd 早已改过端口(非默认 22)。好在 frp 架构下这无所谓——frpc.toml 的 `localPort` 填 2222 即可,**手机端永远只连 6000,本地端口对外完全透明**。这也是端口映射架构的 优雅之处:内外端口解耦。
**坑 8:杀毒软件把 frp 判成"黑客工具"。** frp 一下载就被 Windows Defender 报毒(HackTool)。这不是误报恐慌——frp 确实是内网 穿透工具,天然长着一张"远控"的脸。解法:Windows 安全中心 → 病毒防护 → 管理设置 → 排除项 → 给 `C:\frp` 整个文件夹加排除。只在自有设备、自有服务器之间使用,加排除是 安全的。
**坑 9:frp 压根没有"装成服务"的子命令。** 我想当然地跑 `frpc service install`,得到 `unknown command "service"`——新版 frp 早已移除该子命令。替代方案是 Windows 计划任务托管,其中三个参数是灵魂:
- 触发器 `AtStartup`——开机即启,不依赖任 何用户登录
- 运行账户 `SYSTEM` + `-RunLevel Highest`
- **`ExecutionTimeLimit = 0`**——不设它, 计划任务默认 72 小时强杀长进程,隧道会在 第三天准时断流且毫无征兆
注册命令(管理员 PowerShell):
```powershell
$action = New-ScheduledTaskAction -Execute "C:\frp\frpc.exe" -Argument "-c C:\frp\frpc.toml"
$trigger = New-ScheduledTaskTrigger -AtStartup
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries `
-ExecutionTimeLimit (New-TimeSpan -Seconds 0) -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1)
Register-ScheduledTask -TaskName "frpc" -Action $action -Trigger $trigger -Principal $principal -Settings $settings
```
注册完当场体检(注意用管理员身份跑,否则 会撞上坑 12 的"薛定谔状态"):
```powershell
Get-ScheduledTask -TaskName "frpc" # State 应为 Ready
Get-ScheduledTaskInfo -TaskName "frpc" # LastRunTime / NumberOfMissedRuns
```
**坑 10:注册成功的计划任务,复查时凭空消失。** `Register-ScheduledTask` 显示成功 、State=Ready,几分钟后 `Get-ScheduledTask` 查无此人,原因未明(疑似被安全软件或系统优化清理)。教训:**计划任务要做"存在性体检"**——部署完成后隔段时间复查一次。
### 工具链与权限
**坑 7:安全红线——密码绝不进聊天框。** 我曾想"把服务器密码发给 AI 助手让它帮我干" 。两层否定:第一,AI 没有终端工具,物理上干不了;第二,更重要的是**密码一旦出现在 对话里就视同泄露**。正确的"AI 帮我干"形态,是把 AI 助手装在服务器上本地执行——密码 永不出服务器。
**坑 11:编码连环坑——中文是 PowerShell 5.1 的天敌。** 同一天被同一根源连坑三次:
1. **中文注释脚本**:UTF-8 无 BOM 的 .ps1 被老版 PowerShell 按 GBK 误读,注释行"吞掉"下一行代码,报错行号整体偏移——看着像语法错误,其实是编码错误
2. **中文路径**:脚本里写死的 `C:\Users\<用户名>\...` 日志路径,经编码错乱写进了一个乱码目录,日志"凭空消失"
3. **乱码目录别有洞天**:想清理时才发现里面还住着第三方应用的历史数据(连枚举都被 ACL 拒绝)——**清理"垃圾"目录前,先验明正 身**
终极解法一句话:**Windows 自动化脚本,一 律纯 ASCII。**
**坑 12:SYSTEM 任务的"薛定谔状态"。** SYSTEM 注册的计划任务,普通权限下 `Get-ScheduledTask` 报"找不到"、`schtasks` 报 Access denied——看起来任务没了,实际是安全描述符挡住了普通用户的读取。**验证系统级任务 的存活,必须以管理员视角。**(坑 10 的"消失",有一半概率其实只是坑 12 的错觉。)
### 第 13 个坑,藏在明天早晨
到这里,12 个坑全部填平,隧道稳定、开机自启"配置完毕",一切测试通过。我信心满满地 关机睡觉——
第二天早晨,手机连上去的那一刻:`Connection refused`。
## 七、重启考:一次阵亡与 7 秒自救
这是全套流程里最隐蔽的一枪,值得单开一章 。
### 现场
重启后的家电脑就在眼前,隧道却死了。手机 Termius 报 `Connection refused`。我做了四路探测:
| # | 探测 | 结果 | 说明 |
|---|---|---|---|
| 1 | 家电脑 `Get-Process frpc` | 无此进 程 | **frpc 死了** |
| 2 | `Test-NetConnection <服务器公网IP> -Port 7000` | True | 服务器和 frps 活得好好的 |
| 3 | `Test-NetConnection <服务器公网IP> -Port 6000` | False(refused) | 没人监听 6000 = frpc 压根没注册映射 |
| 4 | 家电脑开机时间 | 08:46 | 计划任务(AtStartup)早就该拉起它了 |
推理链:服务器无辜 → frpc 被任务拉起过、 但**死了** → AtStartup 触发器没有失败 → **它不是被拉起失败的,是被拉起之后自己退出的**。
顺带一个取证细节:6000 探测回来的是 **refused 而不是 timeout**——服务器内核明确说" 没人在听",而不是防火墙默默丢包。refused = 无人监听,timeout = 防火墙拦截,这组区 别第一次在实战里派上用场。
### 病根:loginFailExit 的默认值
可它为什么退出?没有日志,死无对证——这本 身就是第一个教训(下一章"可观测性先行"的 由来)。只能查配置和文档,最后在 frp 文档里定罪:
> **`loginFailExit` 默认为 `true`:首次登录服务器失败,进程直接退出。**
时间线还原:开机 → AtStartup 任务抢在**网络就绪之前**拉起 frpc → 首连必败 → frpc 直接自杀 → 任务的 3 次重试若仍撞上无网窗 口,就死透了。配置"看起来全对",死的却悄 无声息。
### 药方
`frpc.toml` 顶层加一行,同时把日志配上:
```toml
loginFailExit = false
[log]
to = "C:/frp/frpc.log"
level = "info"
maxDays = 7
```
首连失败不退出,内置无限重连——网络一就绪 ,立刻自己爬起来。
### 复考:7 秒自救实录
再重启一次。这次日志在场,铁证如下:
| 时间 | frpc.log 实录 | 解读 |
|---|---|---|
| 09:15:26 | `connect error: A socket operation was attempted to an unreachable network` | 首连失败:网络未就绪 |
| 09:15:28 | `connect error: ...`(重试 #1) | 仍然无网——但进程还活着 |
| 09:15:33 | `login to server success` → `start proxy success` | 网络就绪,**7 秒 完成自救** |
手机再连:一次成功。
### 复盘:第一次考试输在哪
输在两处:
1. **考试方法错**:AtStartup + 真实重启 + 开机无网窗口,这个组合我从头到尾没真实跑过——"每一步都单独测过"和"整条链路考过", 是两回事
2. **考场没有监控**:第一次失败时 frpc.log 还不存在——计划任务后台进程没有控制台, 死因只能靠推理定罪;日志配上之后复考,才 拿到 7 秒自救的铁证。**先有可观测性,才谈得上排查**
> 一句话概括:**装成开机任务 ≠ 开机真能用。** 自启可靠性必须用真实重启来考——而且要先把日志配上,再谈排查。
## 八、可靠性工程与两场毕业考
打通隧道只是及格线。真正要交付的是:**重 启后还能连、放一晚上不断线。**
### 0. 可观测性先行
frpc 以计划任务后台运行时**没有控制台**,不落盘日志就等于全程盲诊:进程死了不知道 、怎么死的不知道、什么时候复活的也不知道 。坑 13 能拿到 7 秒自救的铁证,正是日志的功劳。所以 frpc.toml 的 `[log]` 不是可选 项,是**地基**。
### 1. 重启自愈三保命
| 配置 | 做法 | 作用 |
|---|---|---|
| sshd 启动类型改 Automatic | `Set-Service sshd -StartupType Automatic` | 开机自动监听 2222 |
| frpc 计划任务托管 | AtStartup + SYSTEM + ExecutionTimeLimit=0 + RestartCount 3 | 开机拉起、崩溃自重启、无 72h 强杀 |
| 睡眠/休眠全关 | `powercfg /change standby-timeout-ac 0`(dc 同理,hibernate 同理) | 电脑永远醒着 |
### 2. 手机掉线痊愈三件套
手机闲置几分钟掉线,和坑 4 的 PC 端掉线是**同一种病**:NAT 设备把"太安静"的连接登 记项清掉了——只是这次被清的是"手机→服务器"那一段。药方:
- **服务端全局心跳**:sshd_config 追加 `ClientAliveInterval 30` + `ClientAliveCountMax 5`——家电脑每 30 秒探测一次,**一处修改,覆盖所有客户端**(手机、平板、任何人 的电脑)
- **客户端双保险**:Termius → Settings → SSH → Keep Alive Interval = 30
- **治锁屏杀后台**:安卓对 Termius 关闭电池优化,否则心跳包根本发不出去
### 3. 提权执行的正确姿势
注册计划任务、改 sshd、关睡眠,全都需要管理员权限,非提权上下文一律 `Access is denied`。最稳的形态:**把全部修改写成一个自 检脚本**,每步打印 `[1]~[6]` 的结果,管理员身份一气呵成跑完,输出形如:
```text
[1] sshd StartupType = Automatic ... OK
[2] ClientAliveInterval = 30 ... OK
[3] 睡眠/休眠已全关 ... OK
[4] 计划任务 frpc 已注册 ... OK
[5] ExecutionTimeLimit = 0 ... OK
[6] frpc 日志配置 ... OK
ALL DONE
```
输出即验收单,六步全绿再收工。
### 两场毕业考成绩单
| 考试 | 内容 | 结果 |
|---|---|---|
| 重启考 | 真实重启,隧道自动恢复 | ✅ 实际 **7 秒**(frpc.log 铁证,见第七章) |
| 闲置考 | 放置 10~15 分钟不断线 | ✅ 30 秒心跳双保险生效 |
双考全过,这套系统才算毕业。
## 九、最终架构与成本
```
[手机 Termius] --ssh--> [云服务器 frps:6000] <--长连接隧道-- [家电脑 frpc] --> [sshd:2222]
```
- **服务器**:华为云轻量 2 核 1G · Ubuntu 24.04 · IPv4 标准型,月成本一杯奶茶钱
- **家电脑**:frpc 由计划任务托管(开机自启、崩溃自动拉起、`loginFailExit = false` 抗开机竞速);日志落盘 frpc.log;sshd 心跳 30 秒;睡眠全关
- **服务器 frps**:systemd 托管,`Restart=on-failure` 崩溃自重启
- **手机**:Termius 直连 `公网IP:6000` 免密登录;Termux 接入为第二客户端——`ssh-keygen` 生成密钥,`ssh <用户名>@<服务器公网IP> -p 6000` 即连
- **加固收尾**:密钥登录 + 关闭密码 + 账 户白名单,sshd_config 终态节选(账户名脱 敏):
```text
Port 2222
ClientAliveInterval 30
ClientAliveCountMax 5
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers <用户名>
```
Termux 的新公钥要进的就是 `administrators_authorized_keys`——它被 ACL 锁定,普通权 限写不进去,必须经管理员 PowerShell 追加 。这也是"一处配置,所有客户端通用"的落点 :心跳在全局段,授权在 Match 块,新设备接入只需追加一行公钥。
双客户端的意义在于验证了架构的优雅:**服 务端一处配置(心跳 + 授权),所有客户端通用**。新设备想接入?生成密钥、追加公钥, 完事。
## 十、心法与进化设想
### 写给同样困境的你:四条心法
1. **认清方向**:家宽 NAT/防火墙下,"由内向外"是唯一活路——先找"让家电脑主动出站"的方案,再谈其他
2. **客户端越傻越好**:方案优劣的隐藏维度是**客户端的环境依赖**——最好客户端只需要 一个标准 SSH App,VPN 常驻类方案在手机端 都是定时炸弹
3. **能连上只是及格线**:真正交付的是"重 启后还能连、闲置一晚不断线"——开机自启、心跳保活、睡眠关闭,可靠性工程才是最后一公 里
4. **坑都是知识点**:端口测试时序、双层防火墙、NAT 闲置超时、编码连环坑……每个坑背 后都是一条原理,踩过就真正懂了
### 进化设想:让家电脑从公网隐身
毕业不是终点,这套系统还有一条清晰的进化 路线。
**现状的取舍**:一条命令直达家电脑,**连 服务器的账号都不需要**——frps 只是字节搬运工,SSH 的密钥协商与内容全程不经过它(手 机↔家电脑端到端加密)。便利拉满,代价是 6000 端口对全网开放,家电脑的 sshd 天天被 扫描器敲门(好在只进得来持密钥的人)。
**进阶形态:跳板模式(堡垒机思路)**:
```
现在:手机 ──直接敲──→ 公网:6000 ──→ 家电脑 (6000 全网可敲)
设想:手机 ──先登──→ 服务器:22 ──→ 本机:6000 ──→ 家电脑(6000 收回服务器本机)
```
三个动作,缺一不可:
1. frps.toml 加 `proxyBindAddr = "127.0.0.1"`——6000 只绑回环网卡,公网物理不可达
2. 云防火墙删掉 6000 放行规则——双保险
3. **7000 保持开放**——家电脑 frpc 的生命 线,与 6000 是两码事(最易搞混的一步)
成立前提是服务器为自己的专用机——两段加密 的信任模型才成立。而"专用"同时意味着**守 门责任在己**:服务器变成唯一入口后,它的 22 端口就是全家的门锁,fail2ban 与密钥化 登录正是这门工程的地基。代价是 Termius 要配 Jump Host(体验仍是一键),以及服务器 理论上可见中转流量(自有机,可接受)。
**同场加映:服务器兼任常驻基地**。它 7×24 在线、机房带宽、不依赖家里供电断网。Termius 加一个 Host(`root@公网IP:22`)即可与"家电脑 Host"并存:需要家里的环境走隧道,需要稳定的 Linux 环境直连服务器——**两把钥匙,各开各的门**。
---
> **随笔小结**:内网穿透的胜负手不在工具 ,而在方向——家宽的墙只拦"进来",不拦"出去",让家电脑先伸手,一切自然打通。工具链本身两天就能跑通,真正的工程量在可靠性:13 个坑里最狠的一个(loginFailExit 默认值) 专门猎杀"配置全对但没真机重启过"的人——** 装成开机任务 ≠ 开机真能用**,能连上只是及格线,重启后 7 秒能自己爬起来,才算毕业。
*懿路向前 · AI辅助整理*
*2026-10-06*