ホストで開いているポートを見つける方法

ホストで開いているポートを見つける方法

私はこれを使用して、nmap特定のコンピュータにどのポートが開いているかを確認できることを知っています。しかし、私にとって必要なのは、ホスト側自体からそれを取得する方法です。

現在、nmapあるコンピュータで別のコンピュータを確認するために使用すると、次の例が表示されます。

smb:~# nmap 192.168.1.4

PORT    STATE  SERVICE
25/tcp  open   smtp
80/tcp  open   http
113/tcp closed ident
143/tcp open   imap
443/tcp open   https
465/tcp open   smtps
587/tcp open   submission
993/tcp open   imaps

ホスト自体でこれを行う方法はありますか?リモートシステムから特定のホストに行くわけではありません。

私もできることを知っています

nmap localhost 

しかし、それは私がやりたいことではありません。なぜなら、私はすべてのマシンを通過するスクリプトにコマンドを入れるからです。

編集する:

このようnmapに見せながらも22 5000 5001 5432 6002 7103 7106 7201 9200見せlsof commandながら22 5000 5001 5432 5601 6002 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7201 7210 11211 27017

答え1

Linuxでは、次のものを使用できます。

ss -ltu

または

netstat -ltu

リストlイスタイネン TCPおよびUDPポート。

ポート番号とIPアドレスをサービス名とホスト名に変換したくない場合は、この-nオプション(ssまたはその場合)を追加してください。netstat

どのプロセスがリッスンしているかを確認するオプションを追加します-p(NFSなどの一部のポートがカーネルによってバインドされる可能性があります)(スーパーユーザー権限がない場合は、ユーザーに代わって実行されるプロセスに関する情報のみが提供されます)。

これにより、アプリケーションがリッスンしているポートが一覧表示されます(UDPの場合はソケットがバインドされています)。一部は、指定されたアドレス(IPv4および/またはIPv6)でのみリッスンできます。これはss/出力に表示されますnetstat0.0.0.0どのすべてのIPv6アドレスのIPv4アドレス[::])。それにもかかわらず、これは、ネットワーク内の他の特定のホストがそのポートとそのアドレスのシステムに接続できるという意味ではありません。ファイアウォール(ホストファイアウォールを含む)は、状況によってはある程度これをブロックまたはブロック/リダイレクトできるからです。ポートからの着信接続の規則(たとえば、このホストまたはそのホスト、またはそのソースポートからの接続のみを許可し、1分あたりの最大数など)。

ホストファイアウォール設定の場合は、出力を表示できますiptables-save

また、1つ以上のプロセスがTCPソケットを受信して​​いますが、受け入れる保留中の受信接続数が最大バックログより大きい場合、接続は許可されなくなり、リモートホストからの接続はポートがブロックされているように見えます。このような状況(着信接続が許可されておらず、キューがいっぱいになっている場合)を確認するには、/出力Recv-Qの列を観察してください。ssnetstat

答え2

また、使用することができます

sudo lsof -i |grep LISTEN

現在受信しているすべてのポートが表示されます。

答え3

nmap localhostちょうどやってくださいnmap 127.0.0.1

編集する:

そしてss -lntuからhttps://superuser.com/questions/529830/get-a-list-of-open-ports-in-linux#529844

答え4

使用されたアプリケーション/ポートの組み合わせのリストを見る

cat /etc/services

開いているTCP / UDPポートを表示するには、端末に次のように入力します。

netstat -lntu

または

ss -lntu

関連情報