|
|
发表于 2025-4-15 11:34:56
|
显示全部楼层
根据你的描述,问题可能出在多个环节。以下是逐步排查和解决方案:
1. 确认公网IP是否变化(首要检查)
家用宽带的公网IP通常是动态的,可能会定期变化。
检查方法:在路由器管理界面或通过 curl ifconfig.me 查看当前公网IP,与之前成功的IP对比。
解决方案:如果IP变化,需更新DDNS(动态域名解析)或重新配置连接。
2. 检查端口映射配置
主路由(TP-Link):
确保端口转发规则指向旁路由(OpenWRT)的局域网IP(如 192.168.x.x)。
协议类型选择 TCP(或根据服务需求选TCP/UDP)。
外部端口(如 8443)和内部端口(如OpenWRT的SSH端口 22)需对应。
旁路由(OpenWrt):
在 网络 > 防火墙 > 端口转发 中,确认将主路由转发的端口再次指向内网服务(如NAS、服务器等)。
3. 防火墙设置
OpenWRT防火墙:
确保 WAN 区域的入站流量规则为 接受(默认可能为拒绝)。
路径:网络 > 防火墙 > 通用设置,检查WAN区域的入站、出站、转发规则。
在 通信规则 中添加一条规则,允许从WAN访问转发的端口。
TP-Link主路由:
检查是否有SPI防火墙或安全策略拦截了入站连接(可尝试临时关闭测试)。
4. 测试端口是否开放
外部测试:
使用手机4G网络或其他外部网络,通过工具(如 Port Checker)测试公网IP的端口是否开放。
如果端口不通,可能是:
运营商封锁(尤其常见80/443/8080等常用端口)。
主路由未正确转发。
内部测试:
在家庭网络内,用 telnet <公网IP> <端口> 测试(需关闭NAT回环功能,部分路由器不支持)。
5. 排除运营商封锁
更换非标准端口:
尝试使用高位端口(如 50000-65535),避免常用端口(如22/3389)。
协议混淆:
在PassWall中启用 WebSocket + TLS 或 SSH over HTTPS,伪装流量(需域名和证书)。
联系ISP:
确认是否封锁了入站连接(部分ISP禁止家庭宽带开服务器)。
6. PassWall服务端配置
检查服务状态:
登录OpenWRT,运行 netstat -tuln 查看PassWall是否监听目标端口。
重启PassWall服务:/etc/init.d/passwall restart。
日志排查:
查看PassWall日志:logread | grep passwall,检查错误信息。
7. 其他可能性
UPnP冲突:
关闭主路由和OpenWRT的UPnP功能,避免自动端口映射干扰。
IPv6干扰:
如果网络支持IPv6,需单独配置IPv6防火墙规则。
客户端配置:
确保手机/电脑的客户端配置(IP、端口、协议)与服务器端一致。
临时替代方案
如果问题仍未解决,可尝试:
Tailscale/ZeroTier:组建虚拟局域网,绕过公网端口映射。
Cloudflare Tunnel:通过Cloudflare反向代理访问内网服务(需域名)。
总结步骤
确认公网IP是否变化 → 配置DDNS。
检查主路由和旁路由的端口转发规则。
关闭防火墙临时测试 → 逐步调整规则。
更换高位端口 + 协议混淆。
联系ISP确认限制。
按此流程逐步排查,通常能定位问题。如果仍有疑问,可以提供具体配置截图或日志进一步分析。
|
|