Apache는 Telnet http 요청에 응답하지만 브라우저에는 응답하지 않습니다.

Apache는 Telnet http 요청에 응답하지만 브라우저에는 응답하지 않습니다.

CentOS에서 Apache 실행:

  • 서버하지 않습니다응답원격 http 요청다음을 통해 만들어짐컬 또는 웹 브라우저(연결이 이루어지고 요청이 전송되지만 잠시 후 시간이 초과됩니다.)
  • 서버하다응답원격 http 요청다음을 통해 만들어짐텔넷,
  • 이상하게도 그하다응답로컬 컬 http 요청.

원격 텔넷 요청:

$ telnet www.MYDOMAIN.com.cn 80                                                                                                                     
Trying XXX.XX.X.XX...
Connected to www.MYDOMAIN.com.cn.
Escape character is '^]'.

GET / HTTP/1.1
User-Agent: curl/7.39.0
Host: www.MYDOMAIN.com.cn
Accept: */*

HTTP/1.1 200 OK
Date: Wed, 17 Jun 2015 23:21:10 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Wed, 17 Jun 2015 19:31:35 GMT
ETag: "601a7-8-518bbbd2925bd"
Accept-Ranges: bytes
Content-Length: 8
Connection: close
Content-Type: text/html; charset=UTF-8

Hello !
Connection closed by foreign host.

원격 컬 요청:

$ curl -v http://www.MYDOMAIN.com.cn/
* Hostname was NOT found in DNS cache
*   Trying XXX.XX.X.XX...
* Connected to www.MYDOMAIN.com.cn (XXX.XX.X.XX) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.39.0
> Host: www.MYDOMAIN.com.cn
> Accept: */*
> 

따라서 이는 방화벽 문제가 아닌 것 같습니다(iptables는 원격 텔넷 요청에 응답하므로 포트 80을 통해 들어오는 TCP 트래픽을 허용하도록 구성되어 있습니다).

나는 이것으로 하루 종일 내 머리를 강타했습니다. 모든 제안을 환영합니다.

편집하다:

PMTUD 문제인 것 같습니다. iptables-save수정을 시도한 후의 결과는 다음과 같습니다 (여전히 작동하지 않음).

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [29:2820]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT
*mangle
:PREROUTING ACCEPT [6344:506105]
:INPUT ACCEPT [601:53242]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [29:2820]
:POSTROUTING ACCEPT [29:2820]
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 
COMMIT

관련 정보