ポートがLinuxサーバーでリッスンしているかどうかを確認するにはどうすればよいですか?
netstat -an | grep PORTNUMBER | grep -i listen
出力が空の場合、ポートは使用されていません。
ポートがLinuxサーバーでリッスンしているかどうかを確認するにはどうすればよいですか?
netstat -an | grep PORTNUMBER | grep -i listen
出力が空の場合、ポートは使用されていません。
回答:
を使用して、プロセスがTCPまたはUDPポートでリッスンしているかどうかを確認できますnetstat -tuplen
。
一部のポートが外部からアクセス可能かどうかを確認するには(おそらくこれが必要です)、別のシステムのNmapなどのポートスキャナーを使用できます。確認したい同じホストでNmapを実行することは、目的にはまったく役に立ちません。
-t
、-u
、-p
、-l
、-e
、と-n
。オプションパーサーのおかげで、と表現できます-tuplen
。linux.die.net/man/8/netstat
telnet
コマンドは通常TCPのみをサポートしているため、チェックするサービスが別のプロトコルで実行されている場合は運が悪いです。
sudo netstat -tuplen
。これにより、自分だけでなく他のユーザーが所有するプロセスが提供されます。また、非ルートユーザーとして表示されていない場合は、追加の詳細(PID /プログラム名など)が出力されます。
TCPポートが開いているかどうか(ハードウェアファイアウォールを含む)をテストする最も簡単な方法は、リモートコンピューター(デスクトップなど)から入力することです。
telnet myserver.com 80
そのサーバーのポート80への接続を開こうとします。タイムアウトになるか拒否される場合、ポートは開いていません:)
if you get a time out or deny, the port is not open
OK、要約すると、ログインできるサーバーがあります。あるポートで何かがリッスンしているかどうかを確認します。ルートとして、次を実行します。
netstat -nlp
これにより、TCPおよびUDPポートでリッスンしているプロセスのリストが表示されます。興味のあるプロセスや表示されると予想されるポート番号をスキャン(またはgrep)できます。
期待するプロセスがない場合は、そのプロセスを起動して、netstatを再度確認する必要があります。プロセスはあるが、予期しないインターフェイスとポートでリッスンしている場合、構成の問題があります(たとえば、リッスンしている可能性がありますが、ループバックインターフェイスのみであるため、127.0.0.1:3306と表示されます) MySQLのデフォルト設定の場合、ポート3306の他の行はありません)。
プロセスが起動していて、期待するポートでリッスンしている場合は、オフィス/自宅のMacbookからそのポートに「telnet」を実行してみてください。
telnet xxxxxxxxxxxx.co.uk 443
これは、SSL用に設定されたWebサーバーがあるかどうかをテストします(標準ポートを想定)。telnetを使用したこのテストは、プロセスがTCPポートでリッスンしている場合にのみ機能することに注意してください。UDPポートの場合、接続に使用するクライアントを試してください。(ポート224を使用したことがわかります。これはmasqdialerであり、それが何であるかわかりません)。
サービスは存在するが、外部からアクセスできない場合は、ファイアウォールがユーザーをブロックしています。その場合、次を実行します。
iptables -L -n
これにより、システムで定義されているすべてのファイアウォールルールが表示されます。それを投稿することはできますが、一般に、INPUTチェーンのすべてを許可していない場合は、問題のポートのトラフィックを明示的に許可する必要があるでしょう。
iptables -I INPUT -p tcp --dport 224 -j ACCEPT
またはそれらの線に沿って何か。知らない人がインターネット上で言ったことに基づいて、ファイアウォールコマンドを盲目的に実行しないでください。何をしているのか考えてください。
ボックス上のファイアウォールが必要なトラフィックを許可している場合、ホスティング会社がファイアウォールを実行している可能性があります(たとえば、SSH(22 / tcp)、HTTP(80 / tcp)およびHTTPS(443 / tcp)のみを許可している他のすべての着信トラフィックを拒否します)。この場合、ヘルプデスクチケットを開いてこの問題を解決する必要がありますが、cPanelにそれを許可するものがあるかもしれません。
私は、のコンボを使用するnetstat
とlsof
:
netstat -an | grep <portnumber>
lsof -i:<portnumber>
ポートが使用されているかどうか、およびポートが何を使用しているかを確認します。
システムに接続していて、rootとしてコマンドを実行できる場合、iptablesの出力を確認できます
iptables -L -vn
これにより、ファイアウォールルールと、開いているターゲットACCEPT
と明示的に閉じているポートがターゲットであるポートが一覧表示されますREJECT
。
firewall-cmd --query-port=port/protocol
例えば、firewall-cmd --query-port=80/tcp
。