SSH 터널을 사용하여 VNC 서버에 연결할 수 없습니다

SSH 터널을 사용하여 VNC 서버에 연결할 수 없습니다

Ubuntu 18.04에서 xtightvnc를 실행하는 Linux 서버가 있습니다. 내 노트북을 사용하여 Windows에서 PuTTY를 사용하여 SSH 터널 연결을 설정하고 localhost:5901을 통해 vnc에 대한 연결을 설정할 수 있습니다. 이것은 문제 없이 작동합니다. 동일한 노트북에서 Debian 9로 부팅하고 다음을 사용하여 연결을 복사하려고 하면:

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

오류가 발생합니다.

bind: Cannot assign requested address

verbose 옵션을 사용하여 동일한 명령을 실행합니다.

ssh - v -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

다음과 같은 출력을 제공합니다(출력을 단축했습니다).

debug1: Local connections to LOCALHOST:5901 forwarded to remote 
address 127.0.0.1:5901
debug1: Local forwarding listening on 127.0.0.1 port 5901.
bind: Address already in use
debug1: Local forwarding listening on ::1 port 5901.
bind: Cannot assign requested address
channel_setup_fwd_listener_tcpip: cannot listen to port: 5901
Could not request local forwarding.
debug1: Requesting [email protected]
debug1: forking to background
debug1: Entering interactive session.
debug1: pledge: network

이것이 무엇을 의미하는지 잘 모르겠지만 이전에 Windows에서 열었던 연결이 여전히 활성 상태인 것 같습니다.

또한 Windows에서와 동일한 설정을 사용하여 PuTTY를 사용하여 Debian에서 터널을 설정해 보았습니다. 이전에는 작동하지 않았지만 동일한 설정을 사용하여 연결할 수 있고 vnc에 연결할 수 있는 것 같습니다. (아마도 내가 알지 못하는 어떤 종류의 냉각 설정이 여전히 연결을 열어두거나 연결이 닫힌 후에도 주소를 할당하는 것일까요?)

편집: 주소가 아직 재설정되지 않은 경우 Linux에서 PuTTY를 사용할 때 발생하는 오류는 다음과 같습니다.

VNC 오류

여기서 가장 큰 문제는 아마도 PuTTY를 닫을 때 연결이 여전히 활성 상태라는 것입니다(localhost:5901을 사용하여 vnc에 연결할 수 있었기 때문에 방금 테스트했습니다). PuTTY 세션을 종료하는 데 사용합니다 exit.

다음의 출력 netstat -tulpn도 관련이 있을 수 있습니다.

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
PID/Program name    
tcp        0      0 127.0.0.1:6342          0.0.0.0:*               LIS 
TEN      
21618/megasync      
tcp        0      0 127.0.0.1:5901          0.0.0.0:*               
LISTEN      
21527/Xtightvnc     
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               
LISTEN      
21527/Xtightvnc     
tcp        0      0 127.0.0.53:53           0.0.0.0:*                 
LISTEN      
796/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               
LISTEN      
874/sshd            
tcp6       0      0 :::22                   :::*                    
LISTEN      
874/sshd            
udp    33024      0 127.0.0.53:53           0.0.0.0:*                           
796/systemd-resolve 

고쳐 쓰다:

모든 것이 잘 작동하는 것 같지만 PuTTY에 대한 연결을 닫은 후 다른 Windows 또는 Linux 인스턴스에서 다른 연결이 설정되는 데 시간이 걸립니다. 이 프로세스의 속도를 높이는 방법을 아는 사람이 있다면 해결책을 알려주시면 매우 감사하겠습니다.

업데이트 2:

Linux에서는 pkill ssh(현재 모든 ssh 연결을 종료함)를 사용하여 ssh 터널을 효과적으로 종료할 수 있는 것 같습니다. 따라서 PuTTY는 로그아웃 시 서버에 대한 터널을 제대로 닫지 않는 경향이 있는 것 같습니다.

답변1

5901에서 이미 수신 대기 중인 일부 프로세스가 있는 것 같습니다. 다른 포트를 사용할 수 있습니다.

ssh -L 15901:127.0.0.1:5901 login@host

이 명령은 귀하의현지의포트 15901 ~외딴포트 5901. 따라서 127.0.0.1:15901에 연결하려면 VNC 클라이언트를 사용해야 합니다.

관련 정보