| .. | ||
| cleanup_8080.bat | ||
| cleanup_8080.ps1 | ||
| PROTOCOL.md | ||
| proxy_client.py | ||
| proxy_server.py | ||
| README.md | ||
内网代理方案使用说明
问题描述
- A设备(当前设备):可以监听端口,但无法访问内网网站
- B设备(局域网设备):可以访问内网网站,但无法监听端口
解决方案
通过反向代理方式实现访问:
- A设备:运行代理服务器,监听端口接收用户请求和B设备连接
- B设备:主动连接到A设备,负责转发请求到内网网站
文件结构
proxy/
├── proxy_server.py # 运行在A设备上
├── proxy_client.py # 运行在B设备上
└── README.md # 使用说明
使用步骤
第一步:在A设备(当前设备)上启动代理服务器
python proxy_server.py
输出示例:
A设备代理服务器已启动,监听端口 8080
等待B设备连接和用户请求...
记录A设备的IP地址(假设为 192.168.1.50)
第二步:在B设备上运行客户端程序
python proxy_client.py 192.168.1.50 8080
输出示例:
成功连接到A设备: 192.168.1.50:8080
准备转发请求到: superstar.geelytravel.com:443
第三步:在A设备上访问内网网站
方式一:设置浏览器代理
- 打开浏览器设置
- 设置HTTP/HTTPS代理为:
localhost:8080 - 访问:
https://superstar.geelytravel.com
方式二:使用curl测试
curl -x http://localhost:8080 https://superstar.geelytravel.com
工作原理
用户浏览器 → A设备(监听端口8080) → B设备 → 内网网站
↑ |
└────────────────────┘
响应返回路径
配置说明
A设备(proxy_server.py)
TARGET_HOST = 'superstar.geelytravel.com' # 目标内网网站
TARGET_PORT = 443 # HTTPS端口
LISTEN_PORT = 8080 # A设备监听端口
B设备(proxy_client.py)
TARGET_HOST = 'superstar.geelytravel.com' # 目标内网网站
TARGET_PORT = 443 # HTTPS端口
注意事项
- 确保两台设备在同一局域网内
- A设备的防火墙需要允许端口
8080的入站连接 - B设备需要能正常访问目标内网网站
- 启动顺序:先启动A设备的服务器,再启动B设备的客户端
故障排除
B设备无法连接到A设备:
- 检查A设备的IP地址是否正确
- 检查A设备的防火墙设置
- 确保A设备的代理服务器已启动
网站无法访问:
- 检查B设备是否能直接访问目标网站
- 检查网络连接是否正常
连接不稳定:
- 检查网络稳定性
- 考虑增加超时重试机制