![无法通过 IP/主机名访问网站](https://linux22.com/image/601243/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20IP%2F%E4%B8%BB%E6%9C%BA%E5%90%8D%E8%AE%BF%E9%97%AE%E7%BD%91%E7%AB%99.png)
我正在为我的 Web 应用租用一台安装了 Debian 并运行 JBoss AS6 的 VPS。我的 DNS 主机最近出现了一些问题,因为它们弄乱了我域名的 A 记录,导致一些新的 A 记录被错误地添加。
DNS 问题现在已经解决并且域名可以正常工作,但是我注意到 Web 服务器不再通过 Web 浏览器中的直接 IP 或主机名进行响应(尽管它可以 ping 通并且我可以使用主机名通过 SSH 登录)。
更新:
我正在使用 rinetd 将流量从 80 转发到端口 8080,请参阅下面的 rinetd 日志的输出(屏蔽了 IP 地址)
使用 www.mydomain.com 请求的网页
16/Jan/2013:11:04:15 92.23.40.45 77.**.6.32 80 77.**.6.32 8080 4923 6196 done-local-closed
使用 IP、主机名或裸域(不带 www)请求的网页
16/Jan/2013:11:08:21 92.23.40.45 77.**.6.32 80 77.**.6.32 8080 0 0 done-remote-closed
这表明服务器正在接收请求,但 rinetd 日志显示没有从客户端发送/接收数据?这是否意味着请求被阻止了?
再次更新:
根据以下答案,我检查了防火墙规则的 IP 表,输出为
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
这似乎表明没有设置额外的规则?
我仍然认为这是我的 DNS 主机的问题,因为在他们弄乱 A 记录之前它一直在运行,但他们坚持认为映射是正确的,有没有办法验证这一点?
答案1
如果您可以使用某些协议 (ICMP/SSH) 连接它,但不能使用 HTTP,则似乎是防火墙阻止了它(我想您在发帖之前已经考虑过了)。请仔细检查是否存在软件或硬件防火墙!如果您尝试测试机器的端口,它会返回什么?在客户端命令行上输入以下内容:“nc -z 80 ; echo $?” 如果一段时间内服务器没有回复,尽管使用 22 代替 80 的相同命令有效,那么这确认您有东西丢弃了数据包!如果上述命令返回 1,那么似乎端口已从外部关闭。也许 Web 服务器不再监听端口 80。如果您收到 0,则表示可以访问端口(那么一切都应该正常)。
答案2
这个问题的根源实际上是由于应用服务器(JBoss AS 6)配置不正确,我需要在 server.xml 文件中为裸域添加一个额外的标签条目