역방향 SSH 터널에서 connect_to localhost 포트 9190: 실패가 발생하는 이유는 무엇입니까?

역방향 SSH 터널에서 connect_to localhost 포트 9190: 실패가 발생하는 이유는 무엇입니까?

안녕하세요. 저는 대학의 원격 서버를 사용하여 역방향 SSH 터널을 만들려고 합니다. 내 노트북에서 다음 명령을 실행합니다.

< home >$ ssh -R 9999:localhost:9190 my_user@school_server.edu

그런 다음 다른 터미널을 열고 실행합니다.

< home >$ nc -l 9190

터널을 생성한 터미널에서 로그인 후 다음을 실행합니다.

< university >$ nc localhost 9999

다른 컴퓨터에서 시도해 보면 원격 서버와 로컬 컴퓨터의 연결에는 문제가 없는데 노트북에서는 이렇게 뜹니다.

< university >$ connect_to localhost port 9190: failed.

원격 서버에서 nc 명령을 실행할 때.

랩톱에 MacOS와 Manjaro가 모두 설치되어 있고 둘 다에 문제가 있으므로 방화벽이나 OS 네트워크 구성 문제가 아닙니다. 다른 네트워크를 사용해 보았지만 문제가 지속됩니다. 나는 방금 내 여동생의 노트북으로 똑같은 일을 시도했고, 내 반 친구들도 문제 없이 작동했기 때문에 원격 서버는 문제가 되지 않았습니다.

이런 문제가 발생할 수 있는 원인이 무엇인지 아시나요? 감사해요.

편집: 비역방향 터널링이 잘 작동한다는 사실을 언급하는 것을 잊어버렸습니다.

추가 정보: -v 플래그를 사용하여 실행하면 연결을 시도할 때 다음이 출력됩니다.

debug1: client_input_channel_open: ctype forwarded-tcpip rchan 3 win 2097152 max 32768
debug1: client_request_forwarded_tcpip: listen localhost port 9999, originator 127.0.0.1 port 34590
debug1: connect_next: host 127.0.0.1 ([127.0.0.1]:9190) in progress, fd=9
debug1: channel 1: new [127.0.0.1]
debug1: confirm forwarded-tcpip
debug1: channel 1: connection failed: Connection refused
connect_to 127.0.0.1 port 9190: failed.
debug1: channel 1: free: 127.0.0.1, nchannels 2

답변1

이는 작업 순서의 문제입니다. SSH 클라이언트는 ncSSH 연결이 설정된 후, 대학 시스템의 원격 부팅 이전에도 가정 컴퓨터의 포트 9190에 선제적으로 연결을 시도합니다. 이때 로컬 포트 ​​9190이 수신 대기하고 있지 않으면 원격 전달 설정이 실패합니다.

따라서 로컬을 실행해야 합니다.nc -l 9190 앞으로대신 SSH 연결을 시작하세요뒤쪽에그것.

원격 전달의 정확한 동작에는 OpenSSH 버전 간에 차이가 있을 수 있습니다. 최신 버전에서는 원격 측에 무언가가 연결될 때까지 터널의 로컬 확장 열기가 지연될 수 있습니다.

답변2

localhost의 관점에서 본 것입니다 school_server.edu. 그래서 리모콘으로 9190에 연결을 시도하고 있습니다.

나는 당신이 그것을 당신의 지역에 연결하기를 원한다고 생각합니다. 따라서 (100% 확실하지는 않습니다) 호스트 이름을 제거해야 합니다.ssh -R 9999:9190 my_user@school_server.edu

관련 정보