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.
특정 포트를 수신 대기하는 프로세스가 있습니다. 해당 포트에 연결하면 결국 원격 측에서 연결을 종료합니다.
두 번째 경우(여기서는 명시적으로 지정하지 않았으므로 동일한 포트를 지정했다고 가정합니다):
$ 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
청취 소켓만 나열됩니다.-t
TCP 소켓만 나열-p
연관된 프로세스 정보를 나열합니다. 이를 위해서는 루트 액세스가 필요합니다.
이렇게 하면 프로세스가 예상한 포트에서 수신 대기하고 있는지 확인할 수 있습니다.