SSH 隧道配置指南:通过云服务器访问家庭内网
前言:本篇文章目的是为了临时访问家庭的树莓派,然后通过 WOL 唤醒家庭里的电脑实现远程访问家里电脑的目的。
注:本文由 AI 生成并手动修改完善
一、需求场景
- 云服务器(公网) + 24 小时在线设备(如树莓派)(家庭内网)
- 偶尔需要访问树莓派
- 要求简单、安全的解决方案
二、SSH 隧道安全优势
端到端加密
- 所有数据都经过 AES-256 等强加密
- 密钥交换使用 Diffie-Hellman,防中间人攻击
- 完整性校验防止数据篡改
认证机制
- 推荐使用 SSH 密钥认证(比密码更安全)
- 可以禁用密码登录,只允许密钥
- 支持多因素认证
网络安全性
- 无需开放额外端口
- 只需要树莓派的 SSH 端口(默认 22)
- 不需要在路由器上做端口映射
- 云服务器作为中转,不暴露家庭网络
连接特性
- 连接是按需建立的,用完即断
- 没有持久的后门或服务运行
三、推荐方案:反向 SSH 隧道
3.1 工作原理
1 | 用户 → 云服务器(公网) ←[反向隧道]← 树莓派(内网) |
3.2 配置步骤
云服务器准备
1 | # 创建专用用户(可选但推荐) |
树莓派配置
1 | # 生成 SSH 密钥对(如果还没有) |
建立反向隧道
在树莓派上执行:
1 | # 建立反向隧道:将树莓派的 22 端口映射到云服务器的 2222 端口 |
使用隧道访问
1 | # 这里的your-user需要与orange-pi-tunnel相同(或者下面通过隧道访问树莓派时需要指定用户名),注意通过隧道访问树莓派时需要输入树莓派上的密码 |
四、自动化和稳定性优化
自动重连脚本
在树莓派上创建脚本文件 ~/tunnel.sh并添加如下内容:
1 |
|
然后给该脚本添加可执行权限
设置为系统服务
1 | # 创建 systemd 服务文件 |
服务文件内容:
1 | [Unit] |
启用服务:
1 | # 启用服务 |
五、安全加固措施
1. 限制 SSH 用户权限
在云服务器上,编辑 /etc/ssh/sshd_config:
1 | Match User orange-pi-tunnel |
2. 使用专用密钥
1 | # 为隧道创建专用密钥 |
3. 防火墙规则
1 | # 云服务器上只允许特定 IP 访问隧道端口 |
六、其他实用隧道类型
访问树莓派上的 Web 服务
1 | # 在树莓派上建立隧道(假设 Web 服务在 8080 端口) |
本地端口转发(临时需要)
1 | # 直接从你的本地电脑建立隧道 |
七、使用体验指标
- 连接速度:取决于云服务器和树莓派的网络质量
- 延迟:通常在 50-200ms 之间(双重跳转)
- 稳定性:配合自动重连脚本,非常可靠
- 资源消耗:极低,SSH 进程占用很少 CPU 和内存
八、总结
对于”偶尔访问”需求,SSH 反向隧道是最佳选择:
最简单:几条命令就能搞定
最安全:端到端加密,无需暴露内网
最轻量:不需要安装额外软件
最灵活:可以转发任意端口
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Thee!
评论




