我使用的是 ZTE 无线路由器。我的笔记本电脑的私有 IP 是 192.168.1.2,Apache 服务器在端口 8080 上运行。我添加了 NAT 规则以将 http 流量转发到我的笔记本电脑。
协议 - 全部
起始端口 - 8080
结束端口 - 8080
本地 IP - 193.168.1.2
但是当我浏览 [public_ip]:8080 时什么也没有显示。当我浏览 [public_ip]:80 时我可以登录到路由器。
如何确定 ISP 正在阻止或路由器没有转发?
我尝试禁用 dhcp,结果还是一样。我使用 nmap 进行了端口扫描,结果如下。
港口国服务 21/tcp 开启 ftp 23/tcp 开启 telnet 80/tcp 开启 http
答案1
RFC 5128,第 2.10 节内容如下:
Hairpinning 在 [BEH-UDP] 中定义如下:
如果两台主机(称为 X1 和 X2)位于同一个 NAT 后面并交换流量,则 NAT 可能会在 NAT 外部为 X2 分配一个地址,称为 X2':x2'。如果 X1 向 X2':x2' 发送流量,则流量将转到 NAT,NAT 必须将流量从 X1 中继到 X2。这称为发夹式。
并非所有当前部署的 NAT 都支持发夹结构。
您的路由器根本不支持发夹式连接。请尝试从 NAT 外部连接到服务器。