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

[投稿日] 2016年1月12日
[最終更新] 2016年7月31日

多分Chromeブラウザの仕様の話です。表題だけ見るとよくわかりませんが、hoge.comの80番にアクセスできずに焦った話です。

sshでトンネル

sshの便利なオプションに-Lがあります。これを使うとsshサーバーを踏み台にすることができます。それで、VPSで借りている非公開のWebサーバーについて、ssh経由でアクセスして動作を確認していました。以下のような感じです。

$ ssh -L 22000:hoge.com:80 hackle@hoge.com

こうすると、localhost:22000でhoge.comの80番に繋がります。80番を外部に公開せずに、Webサーバーの動作を検証できるわけです。

スポンサーリンク

ブラウザでポート番号が勝手に指定される

そして、作業が完了していざWebサーバーを公開したまではよかったのですが、その後Chromeでhoge.comにアクセスすると、勝手にポート番号が22000に指定されてしまう現象に見舞われました。URLでhoge.com:80と指定してもダメ。勝手にポート番号が22000に変更されます。どういうこっちゃ、と思ってChromeではなくSafariでアクセスしたところ、これまた同じ現象に見舞われました。iPadのChrome・Safariでも、iPhoneでも、Xperiaでも漏れなく撃沈。それでは……とコマンドラインのブラウザw3mでアクセスしてみると、これはちゃんとポート番号80で繋がりました。うーん、やはりクライアント側のブラウザの問題であるらしい。

考えられることと言えばキャッシュくらいだよなぁと、「設定」→「その他のツール」→「閲覧履歴を消去」より、あらゆるキャッシュを軒並み削除しました。そして再度hoge.comにアクセスしてみたところ、ちゃんと80番にアクセスすることができました。やはり、キャッシュが何か悪さをしていたらしい。Googleアカウントでログインしているので、他のデバイスにも伝搬してしまっていたのでしょう。しかしSafariにも伝搬したのは謎です。何か共有しているんでしょうか。

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

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。