1단계. 포트 확인
netstat -tnlpa
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6443 0.0.0.0:* LISTEN -
tcp6 0 0 :::8080 :::* LISTEN -
2단계. SSH를 사용해 보세요.
ssh -N -f -L 8888:localhost:8888 -p 5000 [email protected]
> No response.
3단계. SSH 재시도
ssh -N -f -L 8888:localhost:8888 -p 5000 [email protected]
bind [127.0.0.1]:8888: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 8888
Could not request local forwarding.
4단계. 포트 확인
netstat -tnlpa
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6443 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 228/ssh
tcp 0 0 172.23.246.199:46180 20.194.107.22:5000 ESTABLISHED 228/ssh
tcp 0 0 172.23.246.199:46182 20.194.107.22:5000 ESTABLISHED 230/ssh
tcp6 0 0 :::8080 :::* LISTEN -
tcp6 0 0 ::1:8888 :::* LISTEN 228/ssh
로컬: WSL2 LTS 20.04
서버: AzureVM LTS 18.0X
부족한 영어 실력과 컴퓨터 과학 지식으로 인해 충분히 설명하지 못해 죄송합니다.
추가 정보가 필요하면 답변해 드리겠습니다.
답변1
첫 번째 명령(응답 없음)에 제공된 옵션의 효과는 명령이 성공할 때 피드백이 없다는 것입니다.
따라서 첫 번째 명령에는 눈에 띄는 결과가 없지만 예상대로 작동합니다. 즉, 포트 8888을 전달하도록 터널을 설정하고 다른 것은 표시되지 않습니다.
두 번째 명령은 부분적으로만 성공했습니다. 여전히 백그라운드에서 두 번째 원격 SSH 연결을 실행하지만 전달할 수는 없습니다.다시동일한 포트: 이전 명령이 완료되었습니다. 그래서 그것에 대해 불평했습니다. 터널을 생성하지 않고 어떤 명령도 허용하지 않는 이 SSH 명령은 자원 낭비일 뿐입니다.
무엇을 더 잘할 수 있나요? 목표에 따라 다릅니다. 그러나 리소스 낭비를 방지하기 위해 간단히 수행할 수 있는 작업은 추가 옵션을 사용하여 요청된 터널을 설정할 수 없는 SSH 명령이 완전히 실패하도록 강제하는 것입니다 -o ExitOnForwardFailure=yes
.
ssh(1)이 모든 요청에 대해 동적, 터널링된 로컬 및 원격 포트 전달을 설정할 수 없는 경우 연결을 종료해야 하는지 여부를 지정합니다. [...]
따라서 결국 한 번 실행해야 하지만 오류 메시지가 나타나는 것 외에 여러 번 시도하는 것은 실제로 문제가 되지 않습니다.
ssh -N -f -o ExitOnForwardFailure=yes -L 8888:localhost:8888 -p 5000 [email protected]
이 명령이 성공하기 전에 이전에 실행된 ssh 명령을 먼저 종료해야 합니다(OP는 그 중 적어도 두 개를 실행했습니다). 그 중 하나는 실제로 포트 8888에 바인딩되어 이 명령이 성공하지 못하게 합니다.
Linux에서는 다음을 사용하여 PID를 찾을 수 있습니다 ss
.
ss -tnp dst == destination.com and dport == 5000
이런 식으로 그들은 명령에 따라 살해될 수 있습니다 kill
.