没有到端口 80 上的主机的路由,但端口已打开

没有到端口 80 上的主机的路由,但端口已打开

port 80: No route to host我正在尝试使机器 A(Ubuntu 16.04)上的 nginx“状态”页面可从机器 B(Ubuntu 20.04)访问,但是在尝试访问该页面时出现错误。

两台机器通过内部网络连接,地址为 10.3.1.1 和 10.3.2.201。

ping 在两个方向上都可以工作,并且我已经设置了我的 nginx conf 文件,如下所示:

server {
    listen 127.0.0.1;
    listen 10.3.1.1:80;
    root /home/www/public_html;
    index index.html;

    location /basic_status {
      stub_status on;
      allow 127.0.0.1;
      allow 10.3.2.201;
      allow 10.3.1.1;
      deny all;
    }
}

由于某种原因,我可以/basic_status从机器 A 访问机器 A 上的页面,但不能从机器 B 访问:

ubuntu@machine-a:~$ curl http://10.3.1.1/basic_status
Active connections: 1
server accepts handled requests
 187325 187325 2010480
Reading: 0 Writing: 1 Waiting: 0

ubuntu@machine-a:~$ curl http://127.0.0.1/basic_status
Active connections: 1
server accepts handled requests
 187326 187326 2010481
Reading: 0 Writing: 1 Waiting: 0
ubuntu@machine-b:~$ curl http://10.3.1.1/basic_status
curl: (7) Failed to connect to 10.3.1.1 port 80: No route to host

ufw 在机器 A 上配置为接受来自任何地方到端口 80 的传入连接:

ubuntu@machine-a:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

此时我不知道还有什么其他设置可能导致这种情况......

答案1

经过进一步调查,似乎 UFW 是“说实话”的 - 但它只是代表您为 iptables 创建规则……并且已经存在一堆取代 UFW 的 iptables 规则。经过彻底清理后,它现在可以正常工作了。

相关内容