特定のポートへのアクセスが不安定な理由は何ですか?

特定のポートへのアクセスが不安定な理由は何ですか?

netdataツール(オペレーティングシステムパフォーマンスツール)をインストールします。

netdataのインストールが失敗したことが確認されました。

curl -sSL --connect-timeout 10 --retry 3 http://localhost:19999/netdata.conf

そして:

ポート19999がブロックされたり、アクセス可能な場合があることを確認しました。

example when we have access

 telnet localhost 19999
Trying ::1...
Connected to localhost.
Escape character is '^]'.
CConnection closed by foreign host.

時々ポートが詰まることがあります。

Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

この非常に奇妙な行動の理由は何ですか?

注 – iptables と同様に、ファイアウォールは無効になって停止します。

ベストアンサー1

最初のケース

$ telnet localhost 19999
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

特定のポートをリッスンするプロセスがあります。そのポートに接続すると、最終的にリモート側で接続を終了します。

2番目のケース(ここでは明示的に指定していないので、同じポートを指定したとします):

$ telnet localhost 19999
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

これはConnection refused、指定されたホスト/ポートを受信するプロセスがないことを意味します。ホスト名を使用し、localhostそのホスト名がIPv4アドレスとIPv6アドレスの両方にマップされるので、両方のアドレスtelnetに接続してみてください。最後に、指定されたポートで(IPv4またはIPv6を介して)ホストをリッスンするプロセスはありません。

ss以下を使用して、どのプロセスがどのポートでリッスンしているかを一覧表示できます。

# ss -nlpt
State    Recv-Q    Send-Q    Local Address:Port         Peer Address:Port
LISTEN   0         0           <address>:<port>                 0.0.0.0:*    users:(("<process-name>",pid=<process-id>,fd=<file-descriptor>))

オプション:

  • -nアドレスをホスト名に変換しないでください
  • -lリスニングソケットのみが一覧表示されます。
  • -tTCPソケットのみリスト
  • -p関連するプロセス情報をリストします。これにはルートアクセスが必要です。

これにより、プロセスが予想されるポートでリッスンしていることを確認できます。

おすすめ記事