CentOS 上で Apache を実行する:
- サーバーではないに対応するリモート http リクエスト経由してcurlまたはウェブブラウザ(接続は確立され、リクエストは送信されますが、しばらくするとタイムアウトになります)
- サーバーするに対応するリモート http リクエスト経由してテルネット、
- 奇妙なことに、それはするに対応するローカル curl http リクエスト。
リモート Telnet 要求:
$ 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 リクエスト:
$ 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 は、着信 TCP トラフィックがポート 80 を通過できるように構成されており、リモート Telnet 要求が応答されるため、そのように動作します)。
この件で一日中頭を悩ませています。あらゆる提案を歓迎します。
編集:
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