コンピュータがどのポートを使用しているかを確認しようとしています。次の方法がリストされた記事をオンラインで見つけました。
$ sudo nmap -sT -O localhost
私はこれがTCPパケットをリッスンするすべてのポートのリストを提供すると信じています。ただし、このコマンドを入力すると、次の結果が表示されます。
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:07 EDT
socket troubles in HostOsScan: Permission denied (13)
sudoで実行している場合、自分のコンピュータで何かを実行する権限がどのように不足する可能性がありますか?
私は実行しようとしています:
$ sudo nmap -sT localhost
そして得る:
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:28 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
631/tcp open ipp
私は議論なしに試しましたが、再び許可nmap
が拒否されました! ?
$ sudo nmap localhost
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-03 11:05 EDT
Couldn't open a raw socket. Error: Permission denied (13)
nmap's
--help
オプションを見て、-O
OS検出が有効になっていることを確認しました。特に、このオプションを使用する権限があるのはなぜですかsudo
? (注:現在Ubuntu 18.04および20.04を実行しています。)
(注:許可された回答はポートを調べるなど、私の基本的な問題を解決しましたが、コメントセクションの回答では問題が発生した理由を説明しましたnmap
。snap
$ sudo snap connect nmap:network-control
以前はnmap
大丈夫だった。
ベストアンサー1
コンピュータがどのポートを使用しているかを確認したい場合は、検索する必要はありません。ポートを直接一覧表示できます。
netstat -nap
ss -nap
ルートでない場合は、この-p
フラグを無視してください。このLISTEN
行はあなたにとって重要です。この行フィルタリングを使用できますawk
。例えば
netstat -nap | awk 'NR==1 || /LISTEN/'