경고: 수신 포트 'xxxx'에 대한 원격 포트 전달에 실패했습니다.

경고: 수신 포트 'xxxx'에 대한 원격 포트 전달에 실패했습니다.

포트 'xxxx'에서 수신 대기 중인 프로세스를 찾아 종료하려면 어떻게 해야 합니까?

RemoteForward 2022 remote.host:22내 .ssh/config 파일에 있습니다 .

원격 서버에 SSH로 연결할 때마다 ssh staging-environment다음 오류가 발생합니다.Warning: remote port forwarding failed for listen port 2022

포트 포워딩을 위해 이 포트를 열어야 합니다.

포트 2022에서 수신 대기 중인 프로세스를 찾아 종료하려면 어떻게 해야 합니까?

업데이트:

출력netstat -tulpn

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:81                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:83                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:84                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:85                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:86                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:2022              0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:2023              0.0.0.0:*                   LISTEN      -

답변1

누가 포트 2022를 사용하고 있는지 확인하는 올바른 명령은 다음과 같습니다.

  sudo ss -ntp

첫째, 지금은 더 이상 사용되지 않는 Nestat를 사용해서는 안 됩니다(Linux를 사용하는 경우에는 그렇게 생각하지만 Unix를 사용하는 경우에는 이것을 잊어버리십시오). 둘째, 다음과 같이 명령을 실행해야 합니다.sudo, 그렇지 않으면 포트를 사용하여 프로세스를 표시할 권한이 없습니다. 셋째, 반드시 해야 한다~ 아니다깃발을 사용하다, 이는 UDP 포트를 보는 것을 의미하기 때문에 오류가 발생하는 동안SSH이는 UDP가 아닌 TCP를 가장 확실하게 사용하고 있습니다.

답변2

이를 위해 몇 가지 방법을 사용할 수 있습니다. netstat는 원하는 작업을 수행하는 명령줄 도구입니다. 명령줄 예는 다음과 같습니다.

# netstat -tulpn

이렇게 하면 시스템의 포트와 이를 수신하는 응용 프로그램이 방지됩니다.

도움이 되었기를 바랍니다

답변3

현재 이 오류를 해결하는 방법은 내 서버에 로그인하고 ps -ef | grep ssh내 사용자가 생성한 모든 세션을 종료하는 것입니다.

답변4

빠른 한 줄만 사용하면됩니다.

for pid in `netstat -tunpl | awk '{print $4, $7}' | grep ':2022' | awk '{print $2}' | cut -d '/' -f1`; do kill -9 $pid; done

관련 정보