⭐隧道端口、公网 IP、原生端口使用场景全解

先了解:127.0.0.1永远代表当前项目正在运行的机器,并非固定设备;端口隧道仅存在于本地电脑,云服务器无隧道转发能力.

一、开发环境 dev(程序运行在本地电脑,用隧道自定义端口访问服务器里的原生端口)

本地开启端口隧道做转发映射关系:

例:

本地隧道自定义端口8880↔ 云服务器 RabbitMQ 原生端口5672

本地隧道自定义端口8888↔ 云服务器 Nacos 自定义端口10020

nacos: address: 127.0.0.1:8888 rabbitmq: address: amqp://xxx:xxx@127.0.0.1:8880/vhost
  • 此处127.0.0.1指代自己的电脑
  • 程序访问本机隧道端口,由隧道加密转发至云服务器真实中间件;
  • 优势:无需在服务器开放 5672、10020 公网端口,安全性高、网络连接稳定;
  • 使用前提:必须提前启动隧道工具,否则直接抛出连接失败异常

二、生产环境 prod(程序部署在云服务器)

项目、Nacos、RabbitMQ 部署在同一台云服务器,服务器不存在本地隧道工具,只能直连中间件原生端口

nacos: address: 127.0.0.1:10020 rabbitmq: address: amqp://xxx:xxx@127.0.0.1:5672/vhost
  • 此处127.0.0.1指代云服务器本身,不再是本地电脑;
  • 端口要求使用原生端口:RabbitMQ 默认端口 5672,Nacos 自定义端口 10020;
  • 禁止填写127.0.0.1:8889:服务器无隧道转发,8889 端口无服务监听,直接连接拒绝;
  • 禁止填写公网 IP:本机服务走公网访问内部中间件会增加路由损耗,性能大幅下降,不符合企业线上规范。