无法仅通过我的 IP 访问服务器?

无法仅通过我的 IP 访问服务器?

我使用 CentOS 7 和 Apache 2.4 作为我的网站主机。我尝试了许多其他机器,有些可以连接到服务器,有些则无法连接到我的电脑。我已经禁用了停止的防火墙(systemctl stop firewalld.service甚至service iptables stop)并关闭了selinux(setenforce 0)。然而,无法访问该网站,并且 http 请求将超时。这有什么问题吗?

>> netstat -tunalp | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      9480/httpd          
udp        0      0 127.0.0.1:802           0.0.0.0:*                           1897/rpc.statd     

并且 ApacheListen指令设置为Listen 80

我什至无法从我自己的 PC(具有公共 IP)对服务器执行 ping 操作。 CentOS 的哪一部分可能会阻碍我的连接?

答案1

>> netstat -tunalp | grep :80  
tcp6       0      0 :::80                   :::*                    LISTEN      9480/httpd          

您打算只监听 ipv6 连接吗? (看到该行以 tcp6 开头吗?)如果您希望它仅绑定到 ipv4 地址,请尝试使用Listen 0.0.0.0:80

答案2

看来你有一些网络问题。您可以netstat -tunalp | grep :80以 root 用户身份运行此命令并检查 http 正在哪个 IP 地址上列出。另请检查您的 apache 配置中的Listen指令。

答案3

正如您所描述的,我发现您的配置存在两个问题。

  1. 你说你禁用了防火墙然后提到命令systemctl start firewalld.service。该命令将启动防火墙。用systemctl stop firewalld.service它来阻止它。
  2. 您提到您无法从您的 PC 访问服务器,并且您的 PC 有公共 IP。您使用的是 IPv4 还是 IPv6?如果是后者,那么只要两台机器都使用“真实”地址而不是链接本地(fe80::)地址,这里就没有问题。但如果您尝试使用 IPv4 网络,您需要确保您的服务器使用公共地址或已正确进行 NAT。

答案4

如果您自己设置 CentOS,您应该知道是否已阻止firewalld或中的特定远程 IP iptables。 IOW我怀疑这就是问题所在。同样,SELinux 不应该存在歧视特定远程 IP 的问题。同样的逻辑也适用于 Apache...我不相信 CentOS 是问题所在。

您能否尝试确认哪个网络跃点阻止 HTTP 但允许 SSH?

例如,Google 让我查看他们的网站,但他们在其内部网络的边界阻止了 SSH。我可以通过任何合适的 Linux 安装上可用的 TCP 跟踪路由来看到这一点。

# traceroute -T google.com    # port 80 is the default
traceroute to google.com (216.58.210.78), 30 hops max, 60 byte packets
 1  gateway (172.16.9.1)  3.070 ms  3.048 ms  3.024 ms
 2  host-89-243-96-1.as13285.net (89.243.96.1)  17.659 ms  17.664 ms  21.510 ms
 3  xe-11-2-0-bragg001.bre.as13285.net (78.151.225.39)  21.524 ms  21.643 ms  25.172 ms
 4  host-78-151-225-88.static.as13285.net (78.151.225.88)  25.170 ms  27.548 ms host-78-151-229-28.as13285.net (78.151.229.28)  27.538 ms
 5  host-78-144-8-63.as13285.net (78.144.8.63)  34.949 ms host-78-144-12-227.as13285.net (78.144.12.227)  37.634 ms host-78-144-10-17.as13285.net (78.144.10.17)  37.581 ms
 6  72.14.214.222 (72.14.214.222)  37.591 ms  32.854 ms  32.763 ms
 7  216.239.54.159 (216.239.54.159)  35.622 ms 72.14.237.253 (72.14.237.253)  23.919 ms  23.775 ms
 8  72.14.238.185 (72.14.238.185)  26.728 ms  23.559 ms  23.496 ms
 9  lhr14s24-in-f14.1e100.net (216.58.210.78)  26.608 ms  22.107 ms  24.961 ms

# traceroute -T google.com -p 22    # port 22 for SSH
traceroute to google.com (216.58.198.206), 30 hops max, 60 byte packets
 1  gateway (172.16.9.1)  3.020 ms  2.977 ms  2.960 ms
 2  host-89-243-96-1.as13285.net (89.243.96.1)  16.724 ms  16.728 ms  16.713 ms
 3  xe-11-2-0-bragg001.bre.as13285.net (78.151.225.39)  22.195 ms  22.205 ms  24.498 ms
 4  host-78-151-225-18.static.as13285.net (78.151.225.18)  24.507 ms host-78-151-225-116.static.as13285.net (78.151.225.116)  24.552 ms  27.647 ms
 5  host-78-144-10-21.as13285.net (78.144.10.21)  34.491 ms host-78-144-12-117.as13285.net (78.144.12.117)  34.474 ms host-78-144-10-235.as13285.net (78.144.10.235)  34.463 ms
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *

请注意,这假设 ICMP“超出 TTL”错误未在某处被阻止。尽管如此,traceroute 在工作时总是很有趣:)。

相关内容