[OSX] VNC 원격제어를 SSH 터널링으로 따라해 보기 Computer Tip

맥에서 화면 공유를 위해서는,

시스템 환경 설정을 열고,

공유를 선택한 다음,

위와 같이 설정을 하면 됩니다. 그런데 위에서 vnc://192.168.0.8 은 NAT 주소로 외부에서는 접속 할 수 없습니다.

물론, 공유기 등에서 Port Forwarding 기능을 이용하면 되지만, 보안으로 막혀 있다고 가정합니다.

이제 SSH로 는 접속이 가능하다고 가정합니다.

이제 터널링을 사용해 봅니다.

일단 SSH 접속할 원격 시스템의 홈 디렉터리 아래의 .ssh/config 파일을 열어봅니다.

$ cat ~/.ssh/config 
host g99
#Hostname ssh.example.com
Hostname 11.22.33.44
Port 9999
ForwardAgent no
ForwardX11 no
ForwardX11Trusted no
LocalForward localhost:5901 11.22.33.44:5900

위와 같이 설정을 해 줍니다.

그리고 
$ ssh user@g99
로 접속을 합니다.

그리고 로컬 시스템의 다른 터미널 창에서,

$ netstat -nat | grep 5901
tcp4       0      0  127.0.0.1.5901         *.*                    LISTEN     
tcp6       0      0  ::1.5901               *.*                    LISTEN     

위와 같이 5901 포트가 열려있는지 확인합니다.

위에서 로컬 포트 5901 포트를 SSH 접속 시스템의 5900 번 포트로 접속 하라는 의미입니다.

5900이 아닌 5901로 변경한 이유는,
만약 5900으로 해 놓고,

위와 같이 사파리를 띄워,

vnc://localhost 
또는 
vnc://localhost:5900

하면,

위와 같은 창이 나타나며, 다시 연결을 누르면,

위와 같이 에러 메시지가 나타납니다.
이것은 아마도 무조건 localhost의 5900 포트로 VNC 접속을 하지 말라고 하드코딩을 해 놓았기 때문이라
사료됩니다.

그래서 5901 (VNC의 1번 화면이라는 뜻)으로 변경하였습니다.
5901 이상의 다른 값을 주어도 무방합니다.


vnc://localhost:5901
로 접속을 시도하면,

위와 같이 잘 SSH 터널링을 통한 원격 VNC 접속을 할 수 있습니다.


VNC 접속 하는 클라이언트는 반드시 Mac일 필요는 없으며,
linux라면 거의 동일한 설정으로 가능하며,
윈도우 클라이언트에서는 Putty 등을 통하여 터널링을 
지정하면 됩니다.


어느분께는 도움이 되셨기를 바라며...


덧글

  • 나인테일 2012/11/05 16:19 # 답글

    저는 그냥 다 귀찮아서 점프 데스크톱 같은 유료 툴로 해결해버렸습니다. (.....)
  • 지훈현서아빠 2012/11/05 16:26 #

    음... 맥을 사용하면서 재미 있는 것이 바로 OpenSource 의 사용인 것 같습니다.
    처음 커널이 BSD에서 왔다고 들은 만큼, 터미널을 열면 별반 Linux와 차이가 없지요.
    그런 관점에서 위와 같은 해결책을 잘 알아두면 좋을 것 같아요~~
댓글 입력 영역

구글애드텍스트