
私は MacBook の出力を見てきましたnetstat
。一部のアプリケーションでは、使用するポートを指定できることに気付きました。たとえば、ではutorrent
それが可能です。ポート 55743 を選択して実行したところnetstat | grep 55743
、出力は次のようになりました。
udp6 0 0 *.55743 *.*
udp4 0 0 *.55743 *.*
終了するとutorrent
ポートが解放されます。しかし、ポート番号がわからない場合、どのアプリケーションがどのポートを使用しているかをどのように確認すればよいでしょうか? また、一部のアプリケーションがポートを秘密裏に使用して外部サーバー デバイスと通信することは可能ですか?
答え1
David Houde が述べたように、lsof -i
友人は現在のソケット接続/操作のスナップショットを提供します。残念ながら、OS X ではnetstat
この機能はサポートされていません。
その他のオプションは次のとおりです:
Activity Monitor.app
アプリケーションによって開かれているファイルとポートを確認できます。これは、プロセスをダブルクリックして「開いているファイルとポート」タブを開くことで実行できます。
Dtrace - チェックアウトソコネクト終了するまで (control+c)、ネットワーク操作に関する継続的な情報を提供するスクリプト。出力例:
sudo /tmp/soconnect.d
PID PROCESS FAM ADDRESS PORT LAT(us) RESULT
8211 X-Lite 2 192.168.1.109 5060 25 Success
4112 Google Chrome 2 173.194.34.134 443 53 In progress
8211 X-Lite 2 192.168.1.109 5060 30 Success
私が個人的に気に入っているアプリケーションの 1 つは little snitch ですが、これは商用ソフトウェアです。これはデスクトップ ファイアウォール ソフトウェアですが、興味深い機能がいくつかあります。
- ネットワークモニター。どのアプリケーションがどこに接続しているかを示します(soconnect.d の出力に似ています)
- アプリケーションごとにネットワーク トラフィックをキャプチャします (つまり、Wireshark と同様に、ネットワーク トラフィックを監視できますが、特定のアプリケーションのみに制限できます)
2 番目の質問にお答えします。はい、従来のオペレーティング システム (OS X、Windows など) では、アプリケーションはさまざまな方法でサード パーティ システムに接続し、あらゆる情報を送信できます。多くのデスクトップ ファイアウォールでは、各アプリケーションが接続できる場所を指定できるようにすることで、この問題に対処しようとしています。つまり、一種のホワイトリストを用意するのです。セキュリティの他の部分と同様に、このアプローチにも落とし穴がないわけではありません。
追伸:私はデスクトップ ファイアウォール ソフトウェア ベンダーとは一切関係がありません :)
答え2
これを実現するには、netstat 引数をいくつか追加するか、lsof を使用します。
netstat -lp
lsof -i udp:55743