You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google Cloud搭建SSH反向隧道跨网访问树莓派

基于Google Cloud搭建树莓派SSH反向隧道操作步骤

前置条件

  • 1台绑定公网IP的Google Cloud Compute Engine(简称GCE)实例,系统选择Debian/Ubuntu即可,最低配机型足够使用
  • 可正常联网的树莓派,已本地开启SSH服务
  • 个人PC自带标准SSH客户端,网络与树莓派内网、GCE私有网络均不互通

一、GCE侧配置

  1. 先通过SSH登录GCE实例,编辑SSH服务配置文件:
    sudo nano /etc/ssh/sshd_config
    找到以下配置项,修改为对应值,不存在则直接新增:
GatewayPorts yes
AllowTcpForwarding yes
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3

核心参数说明:GatewayPorts yes是反向隧道可被外部访问的关键,默认配置下反向隧道仅绑定GCE本地回环地址,非GCE本机的设备无法连接。

  1. 保存配置后重启SSH服务生效:
    sudo systemctl restart sshd
  2. 配置防火墙放行隧道端口:
    • 到GCE控制台VPC防火墙页面,新建入站规则,协议选择TCP,端口自定义为一个高位端口(示例用22222,避免使用22、2222等常用端口减少扫描风险),来源IP初期可设为0.0.0.0/0调试,稳定后建议绑定个人PC的固定公网IP提升安全性,目标选择当前GCE实例
    • 如果GCE实例内部开启了ufw/iptables等系统防火墙,同步执行命令放行对应端口:sudo ufw allow 22222/tcp

二、树莓派侧配置(建立持久反向隧道)

  1. 先测试临时隧道连通性,在树莓派终端执行:
    ssh -NfR 22222:localhost:22 <GCE登录用户名>@<GCE公网IP>
    参数说明:
  • -N:不执行远程命令,仅做端口转发
  • -f:SSH进程后台运行
  • -R:端口映射规则,格式为<GCE监听端口>:<本地目标地址>:<本地SSH端口>,树莓派默认SSH端口为22
    执行后输入GCE的登录凭证,回到GCE终端执行ss -tulpn | grep 22222,如果看到sshd进程监听0.0.0.0:22222即代表临时隧道建立成功。
  1. 配置树莓派到GCE的SSH免密登录,避免后续持久化服务需要交互输入密码:
    在树莓派终端执行ssh-keygen -t ed25519,一路回车不设置密钥密码,生成密钥后执行ssh-copy-id <GCE登录用户名>@<GCE公网IP>,按提示输入GCE密码完成公钥下发,完成后测试SSH登录GCE无需输入密码即配置成功。
  2. 配置systemd服务实现隧道开机自启、异常自动重连:
    新建服务配置文件:
    sudo nano /etc/systemd/system/ssh-reverse-tunnel.service
    写入以下内容,替换占位符为你的实际信息:
[Unit]
Description=SSH Reverse Tunnel to GCE
After=network.target

[Service]
User=<树莓派当前登录用户名,默认一般为pi>
Restart=always
RestartSec=15
ExecStart=/usr/bin/ssh -N -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -R 22222:localhost:22 <GCE登录用户名>@<GCE公网IP>

[Install]
WantedBy=multi-user.target

保存退出后执行以下命令启动服务并设置开机自启:

sudo systemctl daemon-reload
sudo systemctl enable ssh-reverse-tunnel.service
sudo systemctl start ssh-reverse-tunnel.service

执行sudo systemctl status ssh-reverse-tunnel.service,看到服务状态为active (running)即代表持久化隧道配置完成。


三、个人PC侧远程连接

隧道正常运行后,在任意网络下的个人PC终端直接执行以下命令即可接入树莓派shell:
ssh <树莓派登录用户名>@<GCE公网IP> -p 22222
首次连接会提示主机指纹校验,确认后输入树莓派对应用户的登录密码(或配置SSH密钥登录),即可进入树莓派的命令行界面。


常见问题排查

  • 个人PC连接提示Connection refused:依次检查GCE侧GatewayPorts配置是否生效、GCE云防火墙/系统防火墙是否放行22222端口、树莓派隧道服务是否处于运行状态
  • 隧道频繁自动断开:确认GCE侧ClientAlive相关保活参数、树莓派侧ServerAlive保活参数已正确配置,避免运营商NAT超时切断空闲连接
  • 隧道服务启动失败:手动在树莓派执行隧道连接命令查看具体报错,或通过journalctl -u ssh-reverse-tunnel.service查看服务日志定位问题

安全优化建议

  • 稳定使用后将GCE防火墙22222端口的放行来源限制为个人PC的公网IP,禁止全网段访问
  • GCE、树莓派的SSH服务均禁用密码登录,仅允许密钥认证
  • 隧道端口选择10000以上的随机高位端口,降低被恶意扫描的概率
  • 可在GCE实例部署fail2ban服务,自动封禁多次尝试登录隧道端口的恶意IP

内容的提问来源于stack exchange,提问作者MATteo Piras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 12:36:16