从另一个网络调用端口 80 上的应用程序时超时,telnet 正常

从另一个网络调用端口 80 上的应用程序时超时,telnet 正常

我有一个应用程序,一个简单的网页,可通过 RHEL Linux 发行版上的 apache 网络服务器上的端口 80 访问。

该服务器的服务器名称为“xyz.domain.com”,可通过 2 个网络接口访问。

从两个网络 telnet xyz.domain.com 80 都没问题:服务器可用。问题是,从网络 2,wgethttp://xyz.domain.com/index.html超时。

我不是设置这些机器的人,根据你的说法,问题可能出在哪里?也许是一些 iptables 配置?

我按照建议设置了详细标志,但出现以下情况,似乎设置了“TCP NODE RELAY”,这是什么意思?在它工作的网络上不存在,我认为这就是原因。

* TCP_NODELAY set
* Connected to xyz.domain.com (10.10.8.1) port 80 (#0)
> GET / HTTP/1.1
> Host: xyz.domain.com
> User-Agent: curl/7.56.1
> Accept: */*
>
 0     0    0     0    0     0      0      0 --:--:--  0:00:20 --:--:--     
 0* Recv failure: Connection was reset
* stopped the pause stream!
 0     0    0     0    0     0      0      0 --:--:--  0:00:21 --:--:--     0
* Closing connection 0
curl: (56) Recv failure: Connection was reset

答案1

wget在使用或测试时使用详细标志curl来查看更多正在发生的事情,而不仅仅是导致的超时。

如果没有这些,我只能做出一些有根据的猜测:

  • 实际的 Web 客户端不仅会建立连接,还会遵循 HTTP 协议指令:
    • 客户将尊重网络代理设置(例如http_proxy设置/缺少环境变量,没有相应的https_proxy或需要 proxy_ignore)
    • HTTP 301 和 302 重定向 http://www.example.com可能会在 HTTP 协议级别重定向到 HTTPS 或其他站点,并且其他域/端口就是被阻止的。
    • 有点相关:符合标准的浏览器应该尊重高速传输系统(预加载)设置,无论 http URL 如何,你的浏览器都会转到 https

相关内容