안녕하세요. 저는 대학의 원격 서버를 사용하여 역방향 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 클라이언트는 nc
SSH 연결이 설정된 후, 대학 시스템의 원격 부팅 이전에도 가정 컴퓨터의 포트 9190에 선제적으로 연결을 시도합니다. 이때 로컬 포트 9190이 수신 대기하고 있지 않으면 원격 전달 설정이 실패합니다.
따라서 로컬을 실행해야 합니다.nc -l 9190
앞으로대신 SSH 연결을 시작하세요뒤쪽에그것.
원격 전달의 정확한 동작에는 OpenSSH 버전 간에 차이가 있을 수 있습니다. 최신 버전에서는 원격 측에 무언가가 연결될 때까지 터널의 로컬 확장 열기가 지연될 수 있습니다.
답변2
localhost
의 관점에서 본 것입니다 school_server.edu
. 그래서 리모콘으로 9190에 연결을 시도하고 있습니다.
나는 당신이 그것을 당신의 지역에 연결하기를 원한다고 생각합니다. 따라서 (100% 확실하지는 않습니다) 호스트 이름을 제거해야 합니다.ssh -R 9999:9190 my_user@school_server.edu