スマートフォンからアクセスしようとしたところつながりません。なんで?
その場をなんとかするために色々試したところ、
別のスマートフォンでならつながったので事なきを得たのですが、
かなり焦りました。
で、後日色々疑い、色々調べたところ、
IPv4でだとアクセスできないことに気付きました。
いつものWi-Fi経由だとIPv6が利用可能なのですが、
MVNOにはIPv6をサポートしていないところが結構あって、
LTE経由でIPv4オンリーだと繋がらないのです。
ただしsshだとIPv4でも通るので、これはウェブ関連だけの症状であり、
つまりウェブサーバApacheに対してIPv4のTCPの80/443番ポート宛の
パケットが届いていないことがわかりました。
となるとクラウド内のネットワークの設定のせい当たりをつけ
確認してみましたが、設定は間違っていません。
http/httpsのIPv6やsshのIPv4の設定と見比べてもこれ以上どうするの
と言うぐらいのレベルで問題が見つかりません。
それならもしかしてApacheの設定か?
実際に
$ netstat -an --inet6 tcp6 0 0 :::443 :::* LISTEN tcp6 0 0 :::80 :::* LISTENとIPv6ではポートがlistenされている(表示省略あり)のに、IPv4では
$ netstat -an --inet4とlistenされていません(表示省略あり)。
しかし、Apacheの設定に特に問題があるように見えないorz
というかIPv6だけ通すような特殊な設定になってればすぐ気付くだろうと。
後でわかったのですが、前述のnetstatの件は
特定の条件下でIPv4のlistenポートがIPv6側にまとめて表示される
仕様のせいのようで、これでも問題ないことが分かりました。
また一つ賢くなってしまいました。
それはともかく、もうしょうがないので無闇矢鱈とググっていたところ、
ファイアウォールがどうこうという公式文書を発見。
ということで
# iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT # iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT # netfilter-persistent saveを実行するとIPv4でもウェブサーバに接続できるようになりました。
まさかの仮想マシン内ファイアウォールが原因でした。
セキュリティの名のもとにこういうことされると
言い返す言葉がないのですが、
この余計なお世話によって結構な時間を費やしました。
Ubuntuというなら素のUbuntuの状態にしておいてくれよ。
0 件のコメント:
コメントを投稿