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를 사용할 때 발생하는 오류는 다음과 같습니다.
여기서 가장 큰 문제는 아마도 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 클라이언트를 사용해야 합니다.