ChromeやFirefoxといった主要なブラウザでは、10080ポートがデフォルトでブロックされています。今回はそんな数年前の話のリバイバルです(それは、単に忘れていたと言う)。
とあるwebシステムを作成していたとき、考えなしにポート10080を指定してブラウザからアクセスしました。ところが、ブラウザ側でこのポートへのアクセスがブロックされてしまいました。ブラウザにこの仕様が追加されたのは2021年ごろと記憶していますが、そんなことすっかり忘れて今回の事態に陥って「そういえばそんな仕様あったな」って思い出すまで若干時間を無駄にした次第なので、ここでメモしておこうと思います。また忘れた頃に同じことすると思うので(;´Д`)
簡単に言うと、セキュリティ対策のためです。10080ポートは、NAT Slipstreaming攻撃という(当時の)新たな攻撃手法に対するセキュリティ対策として、ブラウザがブロックするような仕様になっています。この攻撃は、特定のポートを利用してネットワーク内の他のデバイスに不正アクセスを試みるものです。
ブロックされるポートは10080だけではありません。Fetch StandardでBad portという扱いになっているポートは、このようにブロックされる対象です。このあたりのポートはBugzillaにも記載のあったポートです。
このポートブロックに関してはFireFoxが先行していたようですが、Google Chromeもバージョン91以降からFirefoxに倣って、10080ポートをデフォルトでブロックするようになりました。
ここからはこのポートブロックを解除する方法について検討します。
10080ポートをブロックする機能は、基本的にはセキュリティ対策のためのものですので、そのままブロックしておくのがベストな対応です。となると、アクセスする先のポートを変更し、ブロックされないポートに変更すべきでしょう。たとえば10080で指定していたポートを10085にする、などです。これであればブロック機能を確保しつつ、アクセスできるようになります。
何らかの理由で「どーー-しても10080ポートを利用する必要がある」というケースでは、ブラウザ側のブロック機能を解除する必要があります。ここではChromeにおいてブロック機能を解除する方法を記述します。記述しますが、推奨しません。
--explicitly-allowed-ports=10080
を追加します。about:config
と入力し、エンターキーを押します。network.security.ports.banned.override
と入力し、新しい文字列として「10080」を追加します。これらの手順により、一時的に10080ポートへのアクセスが可能になります。が、セキュリティの面からすれば、先述のとおり10080以外のポートを使用することが望ましいでしょう。