私はこれを使用して、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
イスタイネン T
CPおよびU
DPポート。
ポート番号とIPアドレスをサービス名とホスト名に変換したくない場合は、この-n
オプション(ss
またはその場合)を追加してください。netstat
どのプロセスがリッスンしているかを確認するオプションを追加します-p
(NFSなどの一部のポートがカーネルによってバインドされる可能性があります)(スーパーユーザー権限がない場合は、ユーザーに代わって実行されるプロセスに関する情報のみが提供されます)。
これにより、アプリケーションがリッスンしているポートが一覧表示されます(UDPの場合はソケットがバインドされています)。一部は、指定されたアドレス(IPv4および/またはIPv6)でのみリッスンできます。これはss
/出力に表示されますnetstat
。0.0.0.0
どのすべてのIPv6アドレスのIPv4アドレス[::]
)。それにもかかわらず、これは、ネットワーク内の他の特定のホストがそのポートとそのアドレスのシステムに接続できるという意味ではありません。ファイアウォール(ホストファイアウォールを含む)は、状況によってはある程度これをブロックまたはブロック/リダイレクトできるからです。ポートからの着信接続の規則(たとえば、このホストまたはそのホスト、またはそのソースポートからの接続のみを許可し、1分あたりの最大数など)。
ホストファイアウォール設定の場合は、出力を表示できますiptables-save
。
また、1つ以上のプロセスがTCPソケットを受信していますが、受け入れる保留中の受信接続数が最大バックログより大きい場合、接続は許可されなくなり、リモートホストからの接続はポートがブロックされているように見えます。このような状況(着信接続が許可されておらず、キューがいっぱいになっている場合)を確認するには、/出力Recv-Q
の列を観察してください。ss
netstat
答え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