first commit
This commit is contained in:
189
解决Postman连接问题.txt
Normal file
189
解决Postman连接问题.txt
Normal file
@@ -0,0 +1,189 @@
|
||||
========================================
|
||||
解决Postman无法连接公网IP的问题
|
||||
========================================
|
||||
|
||||
一、问题诊断
|
||||
-----------
|
||||
从Postman截图可以看到错误: "Could not get any response"
|
||||
这表明是网络连接问题,而不是认证问题。
|
||||
|
||||
检查结果:
|
||||
✓ 服务器正在运行 (监听在 :::8039)
|
||||
✓ 本地localhost可以访问
|
||||
✗ 公网IP 101.43.95.130:8039 无法访问
|
||||
|
||||
二、可能的原因
|
||||
-------------
|
||||
|
||||
1. 防火墙未开放8039端口 (最可能)
|
||||
2. 云服务器安全组未开放8039端口
|
||||
3. 服务器只监听在localhost,未绑定到公网IP
|
||||
|
||||
三、解决方案
|
||||
-----------
|
||||
|
||||
【方案1: 开放防火墙端口 (推荐)】
|
||||
|
||||
如果使用firewalld:
|
||||
sudo firewall-cmd --permanent --add-port=8039/tcp
|
||||
sudo firewall-cmd --reload
|
||||
sudo firewall-cmd --list-ports # 验证端口已添加
|
||||
|
||||
如果使用iptables:
|
||||
sudo iptables -A INPUT -p tcp --dport 8039 -j ACCEPT
|
||||
sudo service iptables save # CentOS 6
|
||||
# 或
|
||||
sudo iptables-save > /etc/sysconfig/iptables # CentOS 7
|
||||
|
||||
【方案2: 配置云服务器安全组】
|
||||
|
||||
如果使用腾讯云/阿里云等云服务器:
|
||||
1. 登录云服务器控制台
|
||||
2. 找到"安全组"配置
|
||||
3. 添加入站规则:
|
||||
- 协议: TCP
|
||||
- 端口: 8039
|
||||
- 源: 0.0.0.0/0 (允许所有IP访问)
|
||||
- 或限制为特定IP
|
||||
|
||||
【方案3: 临时关闭防火墙测试】
|
||||
|
||||
仅用于测试,生产环境不推荐:
|
||||
sudo systemctl stop firewalld # 临时关闭
|
||||
# 测试完成后记得开启
|
||||
sudo systemctl start firewalld
|
||||
|
||||
四、验证步骤
|
||||
-----------
|
||||
|
||||
1. 开放端口后,在服务器上测试:
|
||||
curl http://localhost:8039/appLogin -X POST \
|
||||
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||
-d "username=admin&password=admin123"
|
||||
|
||||
2. 从外部测试 (使用另一台机器或手机):
|
||||
curl http://101.43.95.130:8039/appLogin -X POST \
|
||||
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||
-d "username=admin&password=admin123"
|
||||
|
||||
3. 在Postman中测试:
|
||||
- Method: POST
|
||||
- URL: http://101.43.95.130:8039/appLogin
|
||||
- Headers: Content-Type: application/x-www-form-urlencoded
|
||||
- Body: username=admin&password=admin123
|
||||
|
||||
五、快速修复命令
|
||||
--------------
|
||||
|
||||
【CentOS 7 (firewalld)】
|
||||
sudo firewall-cmd --permanent --add-port=8039/tcp
|
||||
sudo firewall-cmd --reload
|
||||
echo "端口8039已开放"
|
||||
|
||||
【验证端口是否开放】
|
||||
sudo firewall-cmd --list-ports | grep 8039
|
||||
# 应该显示: 8039/tcp
|
||||
|
||||
【如果使用iptables】
|
||||
sudo iptables -I INPUT -p tcp --dport 8039 -j ACCEPT
|
||||
sudo service iptables save
|
||||
|
||||
六、云服务器安全组配置
|
||||
--------------------
|
||||
|
||||
【腾讯云】
|
||||
1. 登录腾讯云控制台
|
||||
2. 云服务器 → 安全组
|
||||
3. 选择对应的安全组
|
||||
4. 入站规则 → 添加规则
|
||||
- 类型: 自定义
|
||||
- 来源: 0.0.0.0/0
|
||||
- 协议端口: TCP:8039
|
||||
- 策略: 允许
|
||||
|
||||
【阿里云】
|
||||
1. 登录阿里云控制台
|
||||
2. 云服务器ECS → 网络与安全 → 安全组
|
||||
3. 配置规则 → 入方向 → 添加安全组规则
|
||||
- 端口范围: 8039/8039
|
||||
- 授权对象: 0.0.0.0/0
|
||||
- 协议类型: TCP
|
||||
|
||||
七、测试连接脚本
|
||||
--------------
|
||||
|
||||
创建测试脚本 test_public_access.sh:
|
||||
|
||||
#!/bin/bash
|
||||
echo "测试公网访问..."
|
||||
echo ""
|
||||
|
||||
# 测试1: 检查端口是否开放
|
||||
echo "1. 检查端口8039是否开放:"
|
||||
timeout 3 bash -c "</dev/tcp/101.43.95.130/8039" && echo "✓ 端口开放" || echo "✗ 端口未开放或无法访问"
|
||||
|
||||
# 测试2: 测试HTTP连接
|
||||
echo ""
|
||||
echo "2. 测试HTTP连接:"
|
||||
curl -v --connect-timeout 5 http://101.43.95.130:8039/appLogin \
|
||||
-X POST \
|
||||
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||
-d "username=admin&password=admin123" 2>&1 | head -20
|
||||
|
||||
八、常见问题
|
||||
-----------
|
||||
|
||||
Q1: 开放端口后仍然无法访问
|
||||
A1: 检查云服务器安全组是否也开放了端口
|
||||
|
||||
Q2: 如何确认是防火墙问题还是安全组问题?
|
||||
A2:
|
||||
- 临时关闭防火墙测试: sudo systemctl stop firewalld
|
||||
- 如果关闭防火墙后可以访问,说明是防火墙问题
|
||||
- 如果仍然无法访问,说明是安全组问题
|
||||
|
||||
Q3: 服务器内网IP可以访问吗?
|
||||
A3: 如果服务器内网IP是 10.0.4.13,可以尝试:
|
||||
http://10.0.4.13:8039/appLogin
|
||||
(仅在同一局域网内可访问)
|
||||
|
||||
Q4: 如何查看当前开放的端口?
|
||||
A4:
|
||||
sudo firewall-cmd --list-ports # firewalld
|
||||
sudo netstat -tlnp | grep 8039 # 查看监听端口
|
||||
sudo ss -tlnp | grep 8039 # 另一种方式
|
||||
|
||||
九、完整操作流程
|
||||
--------------
|
||||
|
||||
1. 开放防火墙端口:
|
||||
sudo firewall-cmd --permanent --add-port=8039/tcp
|
||||
sudo firewall-cmd --reload
|
||||
|
||||
2. 配置云服务器安全组 (如果使用云服务器)
|
||||
|
||||
3. 验证端口开放:
|
||||
sudo firewall-cmd --list-ports | grep 8039
|
||||
|
||||
4. 测试连接:
|
||||
curl http://101.43.95.130:8039/appLogin -X POST \
|
||||
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||
-d "username=admin&password=admin123"
|
||||
|
||||
5. 在Postman中测试
|
||||
|
||||
十、注意事项
|
||||
-----------
|
||||
|
||||
1. 生产环境建议限制访问IP,不要开放给所有IP (0.0.0.0/0)
|
||||
2. 如果使用HTTPS,需要开放443端口
|
||||
3. 定期检查防火墙规则,确保安全
|
||||
4. 建议使用Nginx反向代理,而不是直接暴露应用端口
|
||||
|
||||
========================================
|
||||
如果问题仍然存在,请检查:
|
||||
1. 云服务器安全组配置
|
||||
2. 服务器网络配置
|
||||
3. 服务器是否在运行
|
||||
4. 端口是否被其他程序占用
|
||||
========================================
|
||||
Reference in New Issue
Block a user