我正在尝试在我的 Raspberry Pi 上设置一个 Web 服务器。我可以使用 Raspberry Pi 的 IP 地址在当前网络内连接到它,但是当使用端口转发(我的路由器 IP 地址:端口)时,我得到:
此网页无法使用
连接重置
与(我的路由器 IP 地址)的连接已中断。
可能有帮助的额外信息:我尝试过 HTTP 和 HTTPS,没有什么区别。
允许客户端设备访问配置页面。
我也尝试从不同的网络进行操作,但仍然出现相同的错误。
我有一个 Linksys E3200
答案1
我自己也经常遇到这个问题,并且不仅仅是我的树莓派。
无论您设置了哪些端口,路由器都会阻止连接。假设您已经尝试过端口转发(不是端口触发,两者有区别),请尝试将您的 Raspberry Pi 放在 DMZ 中。这样,无论来源如何,所有传入流量都可以转发到您的 Raspberry Pi。这不是世界上最安全的东西,但目前可以让您过关。
我解决这个问题的方法是将路由器恢复出厂设置。我曾经使用过运行 stock 和 ddwrt 固件的路由器,但都出现这种情况,我不太清楚原因是什么。如果 DMZ 或恢复出厂设置不起作用,请尝试安装一台新路由器(借用朋友的路由器),看看是否能解决问题。
答案2
在没有更多有关您尝试访问的服务/应用程序的信息的情况下,可能需要确认请求确实是被路由器拒绝而不是被 Pi 本身拒绝。
为此,您可以sudo tcpdump -i eth0 port [port] and '(tcp-syn|tcp-ack)!=0'
在 Pi 上运行以记录网络流量。
检查当您从 LAN 内部连接时是否看到记录的数据包(如果没有:尝试用其他可用的网络接口替换 eth0)。一旦成功,尝试通过您的公共 IP 访问服务并检查是否记录了某些内容:如果有,则您的 Pi 确实收到了请求但没有响应。如果您什么也没得到,则连接在网络上的其他地方断开。
您可以从 LAN 内的机器和外部网络(电话、朋友)执行该测试:如果它从外部客户端工作但不从您自己的 LAN 内部工作,则很可能是您的路由器存在某些限制,不允许环回连接。
如果您需要更多帮助,请提供更详细的信息,例如:
- 您尝试设置的服务
- 路由器的品牌和型号(如果您安装了 DD-WRT 或 Tomato 等自定义固件,则需要提供固件版本)
- 您在路由器配置中设置的详细信息