ちょっとトラブルがあった。内容は自分の備忘録。
このブログは一般のブログサイトやレンタルサーバでなく、自宅で運用しているサーバ機にWordpressをインストールして書いている。WANからサーバ機にアクセスできるように、ルータの静的IPマスカレード機能を用いて外からのWebアクセスをサーバ機にポートフォワーディングしている。
つまり、このサーバ機には、家の中、つまりLANからはローカルのIPアドレス、WANからはグローバルのIPアドレスでアクセスしなければならない。ところが宅内で普通にDHCPでIPアドレスを取得すると、ルータがDNSサーバになってしまい、サーバ機のIPアドレスとしてグローバルの方、つまりルータのWAN側のアドレスが返されてしまう(レジストラのDNSサービスででそう設定してあるため)。これではLAN内からはホスト名でサーバ機にアクセスできない。
それを解決するため、サーバ上にDNSサーバを立て、サーバ機のIPアドレスとしてローカルなアドレスを返すように設定してある。そして宅内のPCやタブレット、スマホはIPアドレスを固定にし、DNSサーバにサーバ機のIPアドレスを指定している。スマホでは宅内のWi-Fiアクセスポイントに接続したときにそうなるように設定してある。これで同じホスト名で、家の中と外からシームレスにサーバ機にアクセスできるようになっている。
ところで、スマホ(Android)のChromeにはデータセーバーという機能があり、これを使うとGoogleのプロキシを通して通信量を削減してくれる。最初からこの機能を使っていたのだが、そうすると宅内からサーバ機にWebアクセスする時、普通はWi-Fiでスマホからサーバ機に直接つながるのが、いったんWANに出てGoogleプロキシからサーバにアクセスされる。つまり宅内でもWANからのアクセスになる。
ところが、ふとデータセーバー機能をオフにしてみたのだ。そうすると宅内からサーバ機にWebアクセスできなくなった。サーバ機自体に全く接続できないわけではない。サーバ機に来たインターネットのメールをIMAPで読むアプリもちゃんと動いているし、pingやSSHもできる。tcpdumpで監視しても、グローバルのIPにpingを打ったりしてるわけではなく、ちゃんとサーバ機にホスト名でアクセスできているので、DNSに問題があるとは思えない。しかしWebアクセスしたときにはサーバ機のApacheログにも何も出ないし、逆にIPアドレスでアクセスしたらつながる。どこに問題があるのだろう。
しばらく時間を置いた後、今度はブラウザを変えてみようと思い、Yahooのブラウザをインストールした。普通にアクセスできる。なんでかなあ、と思ってもう一度Chromeをデータセーバーをオフにしてアクセスしてみる。すると、
すんなり繋がった。
なんだかわからんが解決した。何だったんだろう、あれは。システムの世界にはたまにこういうことがある。