我已经运行 Web 服务器一年多了,突然我的家庭网络之外的任何人都无法访问它。在我的网络内部,它一如既往地工作。我可以更新 DNS 并通过常规地址访问它,DNS 指向正确的 IP。我的网络之外的人甚至无法通过 IP 地址访问它。
它是一个在 Tomcat 6 端口 80(Windows 7)上运行的 JEE 应用程序。
我不知道问题具体是什么时候开始的,因为从我的网络内部看一切正常。
近期变动:
- 安装了 WampServer(用于不相关的 Joomla!内容)。
我已尝试过:
- 重启;
- 将 Tomcat 端口更改为 8080;
- 禁用 Windows 防火墙;
- 在路由器页面检查端口转发规则;
- 在同一网络中的另一台机器(Ubuntu)上运行它。在 Ubuntu 中,我使用了端口 8080,问题完全相同;
- 使用 Tomcat 6 的新副本;
- 不同的浏览器。
现在我已经没什么主意了。
答案1
我首先想到的是,我怀疑您的 ISP 已开始过滤传入流量。由于这是在您的家庭网络上,因此您可能通过运行网站违反了使用条款。
也许他们已经开始使用一些 NAT,因为他们不想获取额外的 IP 地址。
因为这是您的家庭网络,为什么不直接将运行 wireshark 的计算机连接到调制解调器并让某人尝试传入连接呢?如果您没有看到连接尝试,则说明您的 ISP 已更改某些内容以阻止传入流量。您必须与他们合作,或寻找替代 ISP。
答案2
如果您使用的是家庭网络,那么这很可能违反了 ISP 的服务条款。也许一年后,他们终于意识到您在这么做,并封锁了端口?
答案3
许多 ISP 现在已经添加了阻止端口
- 25(标准 SMTP/电子邮件服务器端口)
- 80(标准 Web 服务器端口)
(以及其他各种...)
原因是 99% 的家庭(非商务)人员不需要在家中设置邮件服务器或 Web 服务器...而许多邪恶的木马/病毒实际上最终会使用这些端口进行邪恶活动。更重要的是...在过去,一些家用计算机实际上默认安装并激活了一项或两项服务...因此这成为黑客入侵的简单点,利用这些服务中的漏洞...而他们的所有者不知道这些服务正在自己的计算机上运行(这意味着它不是必需的...但仍然是一个安全风险)。
因此,您需要通过 ISP 的主网页登录您的 ISP 帐户,并检查是否有解锁所有/各种端口的选项。通常,如果 ISP 正在阻止端口,他们会为用户提供解锁这些端口的选项。但您通常需要选择参加解除封锁<--他们的观点是谨慎一点总比后悔好。
答案4
另一个步骤是尝试从远程机器通过该端口 telnet 到服务器,看看是否能够成功。
例如,从网络外部运行
telnet (ip address) 80
只是为了看看您是否可以访问 Web 服务器。然后在正在转发的其他端口上尝试相同的命令。这可能会让您知道您是否被 ISP 阻止。