開いているTCP/UDPポートを見つける方法|Windowsでの確認手順を徹底解説
この記事にたどり着いたということは、実行しようとしているアプリケーションが「ポートがブロックされている」とエラーを出しているか、あるいはネットワーク上の特定の「ポート」を開いたままにしておくことがセキュリティ上の問題になり得ると耳にしたことでしょう。
どちらの理由であっても、この記事を読み終える頃には、ポートとは何かを理解し、自分のパソコンで開いているポート・閉じているポートを確認する方法までマスターできるはずです。
ネットワークポートとは何か?
まず知っておくべきなのは、ここで扱うポートは仮想のものであるという点です。ルーターやテレビ、ゲーム機、パソコンなどにある物理的なネットワーク端子とは関係ありません。ポートとは、ネットワーク機器やソフトウェアが情報のやり取りを整理・管理するための仕組みです。
道路の専用レーンをイメージすると分かりやすいでしょう。歩道は歩行者用、自転車には自転車レーン、乗合車両やバスにも専用レーンがあります。ポートも同じ役割を果たします。あるポートはメールの受信に使われ、別のポートはファイル転送のリクエストやWebサイトへのアクセスを担当します。
現代のネットワークで一般的に使われているポートには2種類あります。システムのポート状況を確認する前に、それぞれの違いを簡単に押さえておきましょう。
TCPポートとUDPポートの違い
現代のネットワークで使われる2つの主要なポートタイプが、TCP(Transmission Control Protocol:伝送制御プロトコル)とUDP(User Datagram Protocol:ユーザーデータグラムプロトコル)です。この2つは異なるネットワークプロトコルを使用します。
プロトコルとは、情報のビット列をどう送受信するかを定めた一連のルールのようなものです。どちらのタイプも、インターネットや家庭内ネットワークを動かす基盤となるIP(Internet Protocol)の上に構築されていますが、それぞれ得意な用途が異なります。
最大の違いは、UDPで情報を送る場合、送信側は通信を始める前に受信側との接続を確立する必要がない点です。手紙を郵送するのに似ています。相手がメッセージを受け取ったかどうかは分からず、返事が来る保証もありません。
一方、TCPは電話通話に近いものです。受信側が接続に「応答」し、どちらかが意図的に切断するまで双方向のやり取りが続きます。
UDPのメッセージは通常、指定されたUDPポートをリッスンしている全員に向けてブロードキャストされます。そのため、ネットワークそのものの運用に関わる管理系メッセージに最適です。また、VoIP通話やオンラインゲーム、ライブ配信などのストリーミングにも向いています。
なぜなら、これらのアプリケーションはUDPの低遅延と絶え間ないデータストリームの恩恵を受けるからです。多少データが欠けても実用には支障ありません。Skype通話で少し音声が乱れるよりも、ラグが少ないことの方がずっと重要だというわけです。
TCPはUDPよりもはるかに広く使われており、すべてのデータがエラーなく確実に届くことを保証します。UDP特有の利点を必要としないほぼすべての通信は、TCPを採用しています。
デフォルトで開いていることが多いポート
ポート番号は0〜65535まで存在します。しかし、どんなアプリケーションでも好きなポートを選べるわけではありません。確立された標準と範囲があり、それによって混沌とした情報を整理できます。
ポート0〜1023は、最も重要かつ基本的なネットワークサービスに割り当てられています。番号の小さいポートから順に割り当てられた歴史があるためです。例えば、メール送信に使われるSMTPプロトコルはポート25専用です。
ポート1024〜49151は「登録済みポート」と呼ばれ、OpenVPN(ポート1194)やMicrosoft SQL Server(ポート1433・1434)といった重要な共通サービスに割り当てられています。
残りのポート番号は「ダイナミックポート」または「プライベートポート」と呼ばれます。これらは予約されておらず、誰でもネットワーク上で特定のサービスのために利用できます。問題が起きるとすれば、同じネットワーク上の複数のサービスが同じポートを使おうとした場合だけです。
重要なポートをすべて挙げることは不可能ですが、以下の代表的なポートは覚えておくと便利です。
- 20 – FTP(ファイル転送プロトコル)
- 22 – SSH(Secure Shell)
- 25 – SMTP(Simple Mail Transfer Protocol)
- 53 – DNS(Domain Name System)
- 80 – HTTP(Hypertext Transfer Protocol)
- 110 – POP3(Post Office Protocol)
- 143 – IMAP(Internet Message Access Protocol)
- 443 – HTTPS(HTTP Secure)
一般的なポート番号は数千種類もあるため、最も簡単なのは「範囲」で覚える方法です。これにより、あるポートが予約済みかどうかがすぐ判断できます。さらにGoogleを使えば、特定のポートがどのサービスで使われているのかも瞬時に調べられます。
Windowsで開いているポートを調べる方法
TCPとUDPに関する基礎知識が身についたところで、いよいよ自分のパソコンでどのポートが開いていて使用中なのかを確認する手順に入りましょう。
幸い、Windowsには、現在パソコン上で各アプリケーションやサービスが使用しているポートを表示できる便利なコマンドが標準搭載されています。
- まず、スタートメニューを開き、「CMD」と検索します。
- 「CMD」を右クリックし、「管理者として実行」を選択します。
- コマンドプロンプトが開いたら、次のように入力します。
netstat -ab
- 読む間もなく大量の情報が流れていっても慌てないでください。Ctrl+CとCtrl+Vを使って、情報をメモ帳などのテキストエディタにコピー&ペーストすれば落ち着いて確認できます。
- 角括弧[ ]内の情報は、そのポートを使用しているプログラム名です。「TCP」または「UDP」はそのポートで使われているプロトコルを示し、番号はIPアドレスと、コロン以降のポート番号で構成されています。
ブロックされているポートをスキャンする
ここまでの手順で、どのポートがどのアプリケーションに使われているかは分かりました。しかし、Windowsファイアウォールによって実際にブロックされているポートまでは分かりません。
- 再びスタートメニューを開き、「CMD」と検索します。
- 「CMD」を右クリックして「管理者として実行」を選択します。
- コマンドプロンプトが開いたら、次のように入力します。
netsh firewall show state
これは、Windowsファイアウォールの設定に基づいて、ブロックされているポートと開いているポートを表示するコマンドです。
このコマンドは非推奨(廃止予定)である旨の注意が表示されますが、新しいコマンドでは必要な情報が得られません。そのため、現時点では「show state」コマンドがポート情報を取得する最速かつ最も簡単な方法です。
ただし、Windowsファイアウォールがポートをブロックしていなくても、ルーターやISP(インターネットプロバイダー)側でブロックされている可能性があります。そこで最後に、外部からのブロックが発生していないかを確認しましょう。
- スタートメニューを開き、「CMD」と検索します。
- 「CMD」を右クリックして「管理者として実行」を選択します。
- コマンドプロンプトが開いたら、次のように入力します。
netstat -ano | findstr -i SYN_SENT
何も表示されなければ、ブロックされているものはありません。何らかのポートが表示された場合は、それらがブロックされていることを意味します。Windowsではブロックされていないはずのポートがここに現れた場合、別のポートへ変更することが難しいのであれば、ルーターの設定を確認するか、ISPに問い合わせてみましょう。
ポート状況を可視化できる便利なツール
コマンドプロンプトは手軽な道具ですが、より洗練されたサードパーティ製アプリケーションを使えば、ポート設定の全体像を把握しやすくなります。ここでは人気の高い2つの例を紹介します。
SolarWinds Free Port Scanner
SolarWindsはダウンロード時に氏名などの情報入力が必要ですが、フォームに実名を記入するかどうかは自由です。いくつかの無料ツールを試した結果、Windows 10で正常に動作し、操作性も優れていたのはこのツールだけでした。
また、ウイルス対策ソフトの誤検知を引き起こさなかった唯一のツールでもあります。ポートスキャンソフトの大きな問題の一つは、セキュリティ企業からマルウェアと見なされがちな点です。そのため多くのユーザーはこうしたツールのウイルス警告を無視しがちですが、誤検知と本物のウイルスを見分けることはできません。
SolarWindsには多少の条件はありますが、宣伝どおりに機能し、使い勝手も良好です。
CanYouSeeMe
名前からも想像できるように、これはアプリケーションではなくWebサービスです。外部からのデータがローカルポートを通過できるかどうかを最初に確認するのに適したツールです。IPアドレスは自動検出されるので、テストしたいポート番号を指定するだけでOKです。
その後、ポートがブロックされているかどうかが表示されます。ブロックされていた場合は、原因がパソコン側なのか、ルーターなのか、それともプロバイダー側なのかを切り分けて調査することになります。
まとめ
ほとんどのユーザーにとって、ポートは意識する必要のない存在です。オペレーティングシステム、アプリケーション、ネットワーク機器が自動的に管理しています。
しかし、トラブルが発生したときこそ、開いているポートを確認できるツールがあると心強いものです。不審なアクティビティを見つけたり、大切なデータがどこで行き詰まっているのかを突き止めたりするのに役立ちます。
-
JNLPファイルとは?Java Web Startやテキストエディタでの正しい開き方を解説
独自の拡張子を持つすべてのファイルは、それを実行するアプリケーションと関連付けられています。Javaに不慣れな方や学び始めたばかりの方の中には、一部のファイル拡張子についてご存じない方も多いでしょう。「.jnlpファイルとは何か」「どうやって開けばいいのか」と疑問に思うユーザーは少なくありません。また、JNLPファイルが誤って別のアプリケーションに関連付けられ、正しく開けなくなるケースもあります。この記事では、JNLPファイルの概要と、その具体的な開き方について詳しく解説します。JNLPファイルとは?JNLP(Java Network Launch Protocol)は、Webやネットワーク経
-
Windows 10で開いているポートを確認する2つの簡単な方法
Windows 10は、Microsoftが提供するオペレーティングシステムの中でも最も広く利用されているOSの一つです。定期的なアップデートによって機能改善やバグ修正が継続的に行われています。さて、ポートとは、すべてのアプリケーションがインターネットと通信する際に使用する窓口のようなものです。これらのポートは、アプリケーションによって自動的に開かれるか、場合によってはユーザーが手動で開く必要があります。ただし、ほとんどの場合、ポートはアプリケーションのインストール時に自動的に開かれるため、どのポートが開いたのかユーザーに通知されることはありません。そこで本記事では、自分のパソコンでどのポート