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

如何将RPi上LAN Node.js应用通过GCP映射端口绑定自定义域名公网访问

你要的操作完全可行,核心是使用SSH远程端口转发能力,把树莓派本地8080端口的HTTP流量代理到GCP虚拟机端口即可,无需依赖第三方内网穿透服务,具体实现和域名绑定步骤如下:

一、RPi 8080端口流量转发到GCP虚拟机步骤
  • 第一步:配置GCP虚拟机SSH权限
    编辑GCP虚拟机的/etc/ssh/sshd_config文件,确认以下参数配置正确:
    GatewayPorts yes
    AllowTcpForwarding yes
    
    注意:GatewayPorts默认是no,只会绑定本地回环地址的端口,外部无法访问,必须修改为yes才会监听所有网卡的请求
    修改完成后执行sudo systemctl restart sshd重启SSH服务使配置生效。
  • 第二步:放行GCP防火墙端口
    在GCP控制台的VPC防火墙规则页,添加入站规则,放行你要对外暴露的TCP端口(比如本次用8080,后续用80、443也要同步放行),源地址填0.0.0.0/0。
  • 第三步:树莓派端建立反向SSH隧道
    在树莓派终端执行以下命令建立隧道:
    ssh -fN -R 0.0.0.0:8080:localhost:8080 GCP虚拟机用户名@GCP公网IP
    参数说明:-f表示SSH后台运行,-N表示不执行远程命令,-R后面跟的是远程端口转发规则,意为将GCP虚拟机所有网卡8080端口的请求,转发到树莓派本地的8080端口。
  • 第四步:配置隧道保活与开机自启
    可以使用autossh工具实现网络波动时自动重连隧道,也可以把上述隧道命令加到树莓派的/etc/rc.local文件,或者配置systemd服务实现开机自动运行。
    配置完成后,访问GCP公网IP:8080即可正常访问你的Node.js应用。
二、自定义域名公网发布指引
  • 第一步:配置域名解析
    购买自定义域名后,登录域名服务商的解析后台,添加一条A记录,主机记录填你要使用的前缀(比如要使用app.xxx.com就填app,要直接用根域名就填@),记录值填你的GCP虚拟机公网IP,保存后等待解析生效,通常10分钟内即可生效。
  • 第二步:GCP虚拟机安装Nginx做反向代理
    直接用端口加IP访问体验差,也不方便配置HTTPS,推荐安装Nginx做反向代理:
    1. 执行sudo apt install nginx安装Nginx(Debian/Ubuntu系系统,其他发行版对应替换包管理器命令即可)
    2. 新建站点配置文件/etc/nginx/sites-available/你的域名.conf,写入以下配置:
    server {
        listen 80;
        server_name 替换为你的实际域名;
        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    
    1. 执行sudo ln -s /etc/nginx/sites-available/你的域名.conf /etc/nginx/sites-enabled/启用站点配置,再执行sudo nginx -t验证配置没有语法错误后,执行sudo systemctl restart nginx重启Nginx生效。
  • 第三步:配置HTTPS(可选但推荐)
    可以使用Let's Encrypt提供的免费SSL证书,安装certbot工具后即可一键申请、自动配置证书和自动续期,配置完成后就可以通过HTTPS协议访问你的应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:15:02