多分Chromeブラウザの仕様の話です。表題だけ見るとよくわかりませんが、example.comの80番にアクセスできずに焦った話です。
sshでトンネル
sshの便利なオプションに-Lがあります。これを使うとsshサーバーを踏み台にすることができます。それで、VPSで借りている非公開のWebサーバーについて、ssh経由でアクセスして動作を確認していました。以下のような感じです。
$ ssh -L 22000:example.com:80 hackle@example.com
こうすると、localhost:22000でexample.comの80番に繋がります。80番を外部に公開せずに、Webサーバーの動作を検証できるわけです。
ブラウザでポート番号が勝手に指定される
そして、作業が完了していざWebサーバーを公開したまではよかったのですが、その後Chromeでexample.comにアクセスすると、勝手にポート番号が22000に指定されてしまう現象に見舞われました。URLでexample.com:80と指定してもダメ。勝手にポート番号が22000に変更されます。どういうこっちゃ、と思ってChromeではなくSafariでアクセスしたところ、これまた同じ現象に見舞われました。iPadのChrome・Safariでも、iPhoneでも、Xperiaでも漏れなく撃沈。それでは……とコマンドラインのブラウザw3mでアクセスしてみると、これはちゃんとポート番号80で繋がりました。うーん、やはりクライアント側のブラウザの問題であるらしい。
考えられることと言えばキャッシュくらいだよなぁと、「設定」→「その他のツール」→「閲覧履歴を消去」より、あらゆるキャッシュを軒並み削除しました。そして再度example.comにアクセスしてみたところ、ちゃんと80番にアクセスすることができました。やはり、キャッシュが何か悪さをしていたらしい。Googleアカウントでログインしているので、他のデバイスにも伝搬してしまっていたのでしょう。しかしSafariにも伝搬したのは謎です。何か共有しているんでしょうか。
それにしても、何故にこういったことが起きたのかはなんとも釈然としません。お節介(?)が過ぎて謎めいたエラーが起きるのは、昔から変わらないですね。
コメント