当前位置: 首页 > news >正文

【云服务器内网穿透】Debian + Nginx + HTTPS + SSH反向隧道

【云服务器内网穿透】Debian + Nginx + HTTPS + SSH反向隧道

目标

实现:

微信小程序 / 浏览器 ↓ https://test.xxx.cn ↓ Debian Nginx HTTPS ↓ SSH 反向隧道 ↓ Windows 本地 127.0.0.1:8080

也就是:

公网 HTTPS 域名 访问本地 Windows 开发环境

适用于:

  • 微信小程序真机调试
  • SpringBoot 本地开发-接口内网穿透(https)

一、服务器环境

服务器:

Debian 13 Nginx HTTPS 公网IP

域名:

xxx.cn www.xxx.cn test.xxx.cn api.xxx.cn admin.xxx.cn

二、DNS 解析

云厂商-DNS云解析-添加:

类型主机记录
A@你的服务器IP
Awww你的服务器IP
Atest你的服务器IP
Aapi你的服务器IP
Aadmin你的服务器IP

检查:

dig+short test.xxx.cn

返回:

你的服务器IP

说明解析成功。


三、HTTPS 证书

安装:

aptinstall-ycertbot python3-certbot-nginx

签发:

certbot--nginx\-dxxx.cn\-dwww.xxx.cn\-dtest.xxx.cn\-dapi.xxx.cn\-dadmin.xxx.cn

查看证书(签发后默认自动续期):

certbot certificates

查看自动续期:

systemctl status certbot.timer

四、Windows 本地服务

确保本地能访问(比如本地springboot后端接口8080端口):

http://127.0.0.1:8080

五、Windows 建 SSH 反向隧道(核心)

Windows PowerShell:

ssh-N-R 18080:127.0.0.1:8080 root@xxx.cn

输入 SSH 密码。

不要关闭窗口。


六、SSH 反向隧道原理

Windows 建 SSH 反向隧道这条命令意思:

服务器: 127.0.0.1:18080

映射到:

Windows: 127.0.0.1:8080

所以:

Debian访问18080 = 访问Windows本地8080

七、服务器验证

Debian:

curlhttp://127.0.0.1:18080

如果返回:

<html>

或者:

{"code":200}

说明穿透成功。


八、Nginx 配置

创建:

nano/etc/nginx/conf.d/test.conf

内容:

server { listen 80; server_name test.xxx.cn; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name test.xxx.cn; ssl_certificate /etc/letsencrypt/live/xxx.cn/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xxx.cn/privkey.pem; location / { proxy_pass http://127.0.0.1:18080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

九、重载 Nginx

nginx-tsystemctl reload nginx

十、正式访问

浏览器:

https://test.xxx.cn

实际上:

公网 → Debian HTTPS → SSH反向隧道 → Windows本地8080

十一、微信小程序调试

微信后台:

request 合法域名: https://test.xxx.cn

代码:

wx.request({url:'https://test.xxx.cn/api/test'})

实际上会请求:

Windows 本地 SpringBoot

十二、优点

相比:

  • frp
  • ngrok
  • cpolar
  • 花生壳

这个方案:

最稳 最轻 最安全 HTTPS现成

而且:

不暴露 Windows

十三、常见问题

1. 访问 502

说明:

SSH隧道断了

重新执行:

ssh-N-R 18080:127.0.0.1:8080 root@xxx.cn

2. 微信小程序无法请求

检查:

  • HTTPS
  • 合法域名
  • nginx reload
  • 防火墙

3. 浏览器 HTTPS 不安全

通常:

  • DNS缓存
  • Chrome缓存
  • AAAA IPv6 记录

十四、SSH心跳监测自动重连

ssh-N-v-o ServerAliveInterval=30-o ServerAliveCountMax=3-R 18080:127.0.0.1:8080 root@catdun.cn

十五、最终推荐架构

域名用途
xxx.cn官网
www.xxx.cn官网跳转
api.xxx.cnAPI
admin.xxx.cn后台
test.xxx.cn开发调试/内网穿透
http://www.cnnetsun.cn/news/2551322.html

相关文章:

  • Python文本词频分析与词云可视化|全网可复现实战,文本清洗到可视化全流程落地 引入多维度文本预处理,精准提取核心词汇、强化文本特征挖掘、助力舆情分析、学术文本挖掘、企业舆情监测有效落地
  • 深度学习结合PCA降维实现质子放射影像高精度WEPL重建
  • ARM-FM:用大语言模型自动生成奖励机,破解强化学习稀疏奖励难题
  • C++正在向C语言发起“进攻”!TIOBE7月榜单发布
  • Google I/O 2026 | 开发者主题演讲精华集锦
  • Linux服务器挖矿攻击应急响应与实战清除指南
  • 从MMD到UE5:技术美术视角下的资产缩放‘潜规则’与Send2UE插件平替方案
  • UE5.3实战:用‘打包型关卡Actor’把项目Drawcall从几千降到个位数(附前后性能对比)
  • UE5多人联机开发:从大厅到游戏,如何让玩家带着自定义名字‘出生’?
  • Unity WebGL打包避坑指南:自定义模板时那些没人告诉你的细节(以2021.3.2为例)
  • Windows10下Langchain-Chatchat保姆级部署:避开CUDA与PyTorch版本匹配的深坑
  • 单模态训练与傅里叶分析:线性PDE求解中模拟器优越性的产生机制
  • Unity时间控制系统:可编程基线+状态机+数据绑定
  • Unity模块化环境系统:让建筑成为可编程的游戏组件
  • Web安全 - 国密 SSL 接入到底要做什么
  • 仅剩237份|ChatGPT绘画提示词生成专家级训练集(含12类细分领域·2187组带标注正负样本+Prompt熵值评估模型)
  • 融合UFF与机器学习势:高通量筛选MOF吸附剂的高效精准方案
  • 使用pip安装Taotoken客户端并配置Python环境接入大模型API
  • SUSE运维实战:手把手教你用zypper添加第三方源,解决官方源找不到包的尴尬
  • 聊天机器人搭建05
  • JMeter深度实战:从HTTP接口测试到性能根因分析
  • 2026年降AI后语义失真攻略:过度改写论点跑偏4.8元修复语义同时达标完整方案
  • 关于 Multi-Agent,我目前的一些思考
  • 告别刻录盘!用Rufus 4.5把旧U盘秒变Win10安装神器(保姆级图文)
  • C#模拟Windows双击的底层原理与跨DPI安全实现
  • 别再为乱码头疼了!Linux离线安装LibreOffice 7.5完整指南:从RPM包到完美中文显示
  • 多模态融合与预训练语言模型在死因自动分类中的应用
  • Chiseling算法:交互式假设检验在因果亚组发现中的应用
  • 机器学习加速等离子体仿真:从初始条件预测到PIC计算效率提升
  • DVWA与Pikachu双靶场协同部署:宝塔+PHPStudy双环境实战指南