2025年5月30日
本日上午 客户突然打电话说还是要研究 Nginx 网络透传以办理IBM MQ和宝马IBM MQ的通讯问题。本来这是一个备选方案,他们周一决定直接连接**IBM MQ的。
我是完全不懂的,上周二在无锡我问了一个从前很熟悉的***的老师,他告诉我可以实现。然后我就用deepseek开始了我的工作。
工作是出奇的顺利,deepseek给出了完全无误的方案。
我用华为云模拟了企业专线,很快就实现了公有云上的IBM MQ和私有数据中心的IBM MQ的数据通讯。
明白了您的网络拓扑结构,我来重新配置 Nginx 的端口透传规则。Nginx 服务器有两个 IP:内网 IP 10.11.13.60 和公网 IP 36.*.*.218,必要连接的外部机器 IP 是 192.168.2.15。
修正后的 Nginx 配置(完备版)
nginx
复制
下载配置阐明
- 内网访问 → 外部机器:
nginx
复制
下载
- server {
- listen 10.11.13.60:1414; <em># </em><em>监听</em><em>Nginx</em><em>的内网</em><em>IP</em>
- proxy_pass 192.168.2.15:1414; <em># </em><em>转发到外部机器</em>
- }
复制代码
- 当内网客户端访问 10.11.13.60:1414 时
- Nginx 将流量透明转发到 192.168.2.15:1414
- 外部访问 → 内网服务器:
nginx
复制
下载
- server {
- listen 36.*.*.218:1414; <em># </em><em>监听</em><em>Nginx</em><em>的公网</em><em>IP</em>
- proxy_pass 10.11.13.26:1414; <em># </em><em>转发到内网服务器</em>
- }
复制代码
- 当外部客户端访问 36.*.*.218:1414 时
- Nginx 将流量透明转发到 10.11.13.26:1414
部署步骤
- 安装 stream 模块(如果尚未安装):
bash
复制
下载
- sudo dnf install nginx-mod-stream
复制代码 - 验证配置:
bash
复制
下载
- 重启 Nginx:
bash
复制
下载
- sudo systemctl restart nginx
复制代码 - 检查端口监听:
bash
复制
下载
- sudo ss -tulnp | grep nginx
复制代码 应该看到:
复制
下载
- tcp LISTEN 0 4096 10.11.13.60:1414 *:* users:(("nginx",pid=xxx,fd=yy))
- tcp LISTEN 0 4096 36.*.*.218:1414 *:* users:(("nginx",pid=xxx,fd=zz))
复制代码 - 配置防火墙:
bash
复制
下载
- <em># </em><em>开放内网端口</em>
- sudo firewall-cmd --permanent --zone=internal --add-port=1414/tcp
- <em># </em><em>开放公网端口</em>
- sudo firewall-cmd --permanent --zone=public --add-port=1414/tcp
- sudo firewall-cmd --reload
复制代码 网络拓扑阐明
复制
下载- 内网客户端 → [Nginx内网IP:10.11.13.60:1414] → 专线 → [外部机器:192.168.2.15:1414]
- 外部客户端 → [Nginx公网IP:36.*.*.218:1414] → Nginx → [内网服务器:10.11.13.26:1414]
复制代码 测试方法
- 测试内网到外网透传(在内网恣意机器实行):
bash
复制
下载
- telnet 10.11.13.60 1414
- <em># </em><em>检查外部机器</em><em>192.168.2.15</em><em>是否收到连接</em>
复制代码 - 测试外网到内网透传(在外部网络实行):
bash
复制
下载
- telnet 36.*.*.218 1414
- <em># </em><em>检查内网服务器</em><em>10.11.13.26</em><em>是否收到连接</em>
复制代码 安全加固建议
- 限定内网访问范围:
nginx
复制
下载
- server {
- listen 10.11.13.60:1414;
- allow 10.11.13.0/24; <em># </em><em>只允许内网网段</em>
- deny all; <em># </em><em>拒绝其他所有</em>
- proxy_pass 192.168.2.15:1414;
- <em># ...</em>
- }
复制代码 - 限定外部访问源IP(如果可能):
nginx
复制
下载
- server {
- listen 36.*.*.218:1414;
- allow 192.168.2.15; <em># </em><em>只允许外部机器</em><em>IP</em>
- deny all; <em># </em><em>拒绝其他所有</em>
- proxy_pass 10.11.13.26:1414;
- <em># ...</em>
- }
复制代码 - 启用连接限定:
nginx
复制
下载
- server {
- listen 36.*.*.218:1414;
- proxy_pass 10.11.13.26:1414;
- proxy_connect_timeout 10s;
- proxy_upload_rate 1m; <em># </em><em>限制上传速度</em>
- proxy_download_rate 1m; <em># </em><em>限制下载速度</em>
- }
复制代码 这个配置正确地反映了您的网络拓扑,使用 Nginx 的两个不同 IP 地址分别处置惩罚内网和外网的 1414 端口透传需求。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|