답변:
참고 :이 메시지는 해결하려는 문제의 증상입니다. 메시지의 원인을 이해하면 궁극적으로 문제를 해결하게됩니다.
'연결이 거부되었습니다'라는 메시지에는 두 가지 주요 원인이 있습니다.
듣고있는 프로세스가 없습니다.
이것이 메시지의 가장 일반적인 이유입니다. 먼저 올바른 시스템에 연결하려고합니다. 문제가 있는지 확인하려면 원격 시스템에서 netstat 또는 ss 1을 실행하십시오 ( 예 : 포트 22222에서 프로세스가 수신 대기 중일 경우).
sudo netstat -tnlp | grep :22222
또는
ss -tnlp | grep :22222
OSX의 경우 적절한 명령은
sudo netstat -tnlp tcp | grep '\.80 '
아무것도 듣지 않으면 위의 결과는 출력되지 않습니다. 일부 출력이 표시되면 원하는 결과인지 확인한 후 아래의 방화벽 섹션을 참조하십시오.
원격 시스템에 액세스 할 수없고 관련 관리자에게보고하기 전에 문제점을 확인하려면 tcpdump (wireshark 또는 이와 유사한)를 사용할 수 있습니다.
아무것도 수신하지 않는 IP : 포트에 연결을 시도하면 원격 시스템에서 초기 SYN 패킷으로의 응답은 플래그 RST, ACK가 설정된 패킷입니다. 연결이 닫히고 연결 거부 메시지가 표시됩니다.
$ sudo tcpdump -n 호스트 192.0.2.1 및 포트 22222
tcpdump : 상세 출력 억제,
enp14s0, 링크 유형 EN10MB (이더넷), 캡처 크기 262144 바이트
12 : 31 : 27.013976 IP 에서 전체 프로토콜 디코드 청취에 -v 또는 -vv 사용 192.0.2.2.34390> 192.0.2.1.22222 : 플래그 [S] , seq 1207858804, win 29200, 옵션 [mss 1460, sackOK, TS val 15306344 ecr 0, nop, wscale 7], 길이 0
12 : 31 : 27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390 : 플래그 [R.] , seq 0, ack 1207858805, 승리 0, 길이 0
tcpdump는를 사용합니다 . ACK 플래그 를 나타냅니다 .
방화벽으로 포트가 차단되었습니다
포트가 방화벽에 의해 차단되고 방화벽이 이에 응답하도록 구성된 icmp-port-unreachable
경우 연결 거부 메시지도 발생합니다. 다시 tcpdump (또는 이와 유사한)로 이것을 볼 수 있습니다
$ sudo tcpdump -n icmp
tcpdump : 상세 출력 억제,
enp14s0, 링크 유형 EN10MB (이더넷), 캡처 크기 262144 바이트 13 : 03 : 24.149897 IP 192.0.2.1> 192.0 에서 전체 프로토콜 디코드 청취에 -v 또는 -vv를 사용하십시오 . 2.2 : ICMP 192.0.2.1 TCP 포트 22222에 연결할 수 없음, 길이 68
이것은 또한 차단 방화벽이 어디에 있는지 알려줍니다.
이제 연결 거부 메시지의 원인을 알았습니다. 방화벽 관리자에게 문의하거나 프로세스가 수신 대기하지 않는 이유를 조사하는 등 적절한 조치를 취해야합니다.
1 다른 도구를 사용할 수 있습니다.
데비안 6 짜기 에서 SSH 서비스 를 확인하는 것만 큼 간단했습니다 .
sudo service ssh status
그리고 찾는 것도 (메시지와 함께 존재하지 ssh: unrecognized service
단지) 서비스를 설치 :
sudo apt-get install openssh-server
SFTP는 SSH의 하위 세트 (FTPS는 FTP의 하위 세트 임)이므로 SFTP 연결이없는 경우에도 작동합니다.