特定のマシンで開いているポートを確認するためにnmap
を使用できることを知っています。しかし、私が必要なのは、ホスト側からそれを取得する方法です。
現在、私のマシンの1つで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
Linuxでは、以下を使用できます。
ss -ltu
または
netstat -ltu
l
isteningT
CPおよびU
DPポートを一覧表示します。
ポート番号とIPアドレスからサービスとホスト名への変換を無効にする場合は、-n
オプション(ss
またはnetstat
のいずれか)を追加します。
-p
オプションを追加して、リッスンしているプロセス(存在する場合、一部のポートはNFSのようにカーネルによってバインドされている可能性があります)を確認します(スーパーユーザー権限がない場合、実行中のプロセスの情報のみを提供します)あなたの名前で)。
これにより、アプリケーションがリッスンしているポートがリストされます(UDPの場合、ソケットがバインドされています)。 ss
/netstat
(0.0.0.0
はリッスンすることを意味します-の出力に表示される特定のアドレスのみ(IPv4またはIPv6、あるいはその両方)のみをリッスンする場合があることに注意してください。 any IPv4アドレス、任意のIPv6アドレスでは[::]
)。それでも、ネットワーク上の特定の他のホストがそのポートのシステムに接続し、ホストファイアウォールを含むファイアウォールがそのポートの着信接続をブロックまたはマスク/リダイレクトして、多かれ少なかれシステムにアクセスする可能性があるという意味ではありません複雑なルール(このまたはそのホスト、このまたはその送信元ポートからの接続のみを現在またはその時点で、最大でこの時間またはその時間までしか許可しないなど).
ホストのファイアウォール構成については、iptables-save
の出力を確認できます。
また、1つまたは複数のプロセスがTCPソケットでリッスンしているが、accepting接続ではリッスンしていない場合)、保留中の着信接続の数が最大数よりも大きくなると、バックログ、接続は受け入れられなくなり、リモートホストからは、ポートがブロックされたかのように表示されます。ss
/netstat
の出力のRecv-Q
列を確認してくださいこれらの状況(着信接続が受け入れられず、キューがいっぱいになる状況)を特定します。
あなたも使うことができます
Sudo lsof -i |grep LISTEN
現在リスニングしているすべてのポートが表示されます。
ただnmap localhost
またはnmap 127.0.0.1
編集:
もあります ss -lntu
from https://superuser.com/questions/529830/get-a-list-of-open-ports-in-linux#529844
このようにして、すべての詳細を含む完全なリストtpcを確認できます。
netstat -nltu
すべてのポート
netstat -plan
または、特定のポートの場合
netstat -plan | grep :<portnumber>
netstat -plan
または、特定のポートの場合
netstat -plan | grep :<portno.>
アプリケーション/ポートの組み合わせの使用のリストを表示するには
cat /etc/services
端末で開いているTCP/UDPポートを表示するには、次のように入力します。
netstat -lntu
または
ss -lntu