ssh -L でポートフォワーディングしたら、その後ブラウザでポート番号が変更できなくて焦った話

多分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にも伝搬したのは謎です。何か共有しているんでしょうか。

それにしても、何故にこういったことが起きたのかはなんとも釈然としません。お節介(?)が過ぎて謎めいたエラーが起きるのは、昔から変わらないですね。

本サイトはUXを悪くするevilなGoogle広告を消しました。応援してくださる方は おすすめガジェット を見ていってください!
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次