리눅스를 CLI 방식으로 원격 접속하는 것은 비교적 쉽다.

`openssh-server` 설치 후에 사용자 계정으로 접속하면 끝이다.

 

그런데, 리눅스에서 GUI 방식으로 접속하는 것은 쉽지 않다.

 

Windows 환경에서는 원격데스크탑(mstsc) 이용하면 끝인데,

리눅스에서는 뭔가를 설치하고 설정을 해줘야 한다.

 

프로그램의 선택지도 다양하다.

- TightVNC

- RealVNC

- TeamViewer

- xrdp

- https://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software

 

 

그런데, Windows에서의 원격데스크탑은

본래 사용하고 있던 화면 그대로의 모습으로 작업하던 세션 그대로 연결이 되는데

위에서 언급한 대부분의 리눅스 원격데스크탑 도구들은 그렇지가 않다.

 

그러던 중 알게된 vino

다른 사람들은 다 알고 있었는데, 나만 몰랐나!?

구글 검색을 해보니 아직 그다지 많은 자료가 없는 것으로 보아 아직 유명하지는 않은 것 같다.

 

 

 

1. Install

  - 기본 설치되어 있다. 혹시 모르니 그래도 한 번 더 확인!

❯ sudo apt install vino

패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
패키지 vino는 이미 최신 버전입니다 (3.22.0-3ubuntu1.2).
vino 패키지는 수동설치로 지정합니다.
0개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.

 

2. Settings

  - 기본 설정 화면에서 확인할 수 있다.

  - 암호 설정을 하면 된다.

  - 하지만, 암호 길이 제한일 비롯해서 추가적인 설정을 하려면 `dconf-editor`가 필요하다.

 

 

3. dconf-editor

  - 마찬가지로 설치는 쉽다.

❯ sudo apt install dconf-editor
  
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
  dconf-editor
0개 업그레이드, 1개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.

  - 설치한 dconf-editor를 실행하자.

  - `/org/gnome/desktop/remote-access` 파일을 편집하자

  - `require-encryption` 항목을 꺼주자. 보안상 문제의 여지가 있지만 이 부분은 좀 더 알아보기로 하고...

  - 만약 password를 8자 이상 사용하고 싶으면 base64 encoding 해서 `vnc-password` 항목에 넣어주면 된다.

 

 

4. VNC Viewer

  - 사용하지 않았던 것으로 해보련다.

    . ultraVNC - https://uvnc.com/

  - Viewer로만 사용할거니 그에 맞게 설치하면 된다.

 

 

5. Connect

  - 이제 연결할 일만 남았다.

  - IP만 쓰고 Connect 하면 된다. 세부 옵션을 사용하고 싶으면 `Show Options`

  - 앞에서 입력해놓은 패스워드 사용

  - 정말 원하는대로 나온다!!!

 

 

정말 손쉽게 사용할 수 있다. 강추 !!!

 

반응형

 

회사에서 VNC를 사용하고자 하는데, RealVNC 라는 업체에서 제공하는 것은 왠지 찝찝했다.

그러다가 발견한 문구 !!!

 

"free for both personal and commercial usage, with full source code available"

 

http://www.tightvnc.com/

 

거기에다가 vnc4server와 거의 완벽히 일치한다.

 

기본 실행 환경은 Ubuntu Desktop 버전을 기본값으로 그대로 설치하고,

기본 패키지 업그레이드는 기본 상태에서 최신으로 계속 갱신해 놓은 상태이다.

 

아래 내용을 테스트한 환경은 아래와 같다.

- Ubuntu 12.04 LTS 64bit

- Ubuntu 14.04 LTS 64bit

- Ubuntu 16.04 LTS 64bit

 

이하 과정은 vnc4server와 거의 동일하다.

 

 

1. 필요 패키지 설치

 

    본래는 아래 패키지들도 설치해야하지만, 이미 설치되어 있어서 제외하고 설치해도 된다.

 

        - sudo apt-get install gnome-settings-daemon gnome-terminal metacity nautilus

 

    아래와 같이 필요한 패키지를 설치하자

 

$ sudo apt-get install gnome-panel tightvncserver

 

 

 

2. 첫 실행

 

    첫 실행을 해서 기본 Config 등의 구성을 하도록 하면 되는데,

    sudo 없이 계정 권한으로 실행하여도 된다.

 

$ vncserver

 

    아래와 같이 패스워드 설정을 진행하면 된다.

 

 

 

    위의 화면을 보면 알겠지만, 계정 권한으로 실행을 하면 해당 계정으로 환경 설정을 한다.

 

 

 

 

3. 기본 창 관리자 변경

 

    기본 생성된 xstartup 파일에는 내가 원하는 대로 환경 설정이 되어 있지 않다.

    가장 먼저 실행된 vnc4server를 종료부터 하고 xstartup 파일을 수정하자.

 

$ vncserver -kill :1

$ cp ~/.vnc/xstartup ~/.vnc/xstartup.old

$ nano ~/.vnc/xstartup

 

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

 

 

 

4. 다시 실행하기

 

    실행할 때에 해상도를 미리 정해줘야 한다.

 

$ vncserver -geometry 1024x768

 

 

 

5. VNC Viewer 로 접속하기

 

    다른 PC에서 해당 IP로 접속하면 된다. 물론 뒤에 디스플레이 번호 붙여서...

    VNC Viewer를 그대로 사용할 수도 있다.

 

 

    예쁘게 잘 나온다!

 

 

 

 

6. TightVNC Java Viewer 로 접속하기

 

    이왕 TightVNC를 사용하는 김에 Viewer도 바꿔 보자.

 

       - http://www.tightvnc.com/download.php

 

 

    다운로드 후 압축을 풀어서 실행하면 된다.

 

 

 

    실행하는 방법은 살짝 다르다. 여기에서는 Display가 아니라 포트 번호를 적어주면 된다.

 

 

 

    실행은 뭐 당연하게도 잘된다!

 

 

 

7. 부팅 時 자동으로 실행

 

    이제 잘 되는 것 까지는 확인했으니, 부팅할 때에 알아서 되도록만 하면 되겠다.

 

$ sudo nano /etc/init.d/vncserver

 

    아래 내용을 그대로 사용하면 된다.

    USER 부분이나 해상도 부분은 각자 상황에 맞게...

 

#!/bin/bash
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    networking
# Required-Stop:     networking
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

 

PATH="$PATH:/usr/bin/"
export USER="u12"

 

DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"

 

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

 

. /lib/lsb/init-functions

 

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

 

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

 

restart)
$0 stop
$0 start
;;
esac
exit 0

 

$ sudo chmod +x /etc/init.d/vncserver

$ sudo update-rc.d vncserver defaults

 

    이제는 재부팅을 하여도 잘 된다~!!!

 

반응형

 

리눅스 환경에서 "원격 데스크탑"으로 가장 유명한 SW로 꼽히는 것이 바로 VNC이다. 최근에는 xrdp를 많이 사용하긴 하지만, 그래도 전통을 갖고 있는 VNC...

 

하지만 보통 우리가 알고 있는 VNC SW는 오픈소스 프로젝트가 아닌 것 같다.

RealVNC 라는 업체에서 제공하는 Free 버전의 경우 "For individual private use." 용도로 되어있다.

 

 

뭐 일단 내 PC와 Server가지고 나만 사용하는 것이니까... 라이선스에는 부합하는 것 같은데...

 

 

 

VNC에 대해서 검색을 하다보면 그 대중성과 유명세에 비해서 정보들이 많지 않다.

다들 잘 아는데, 나만 모르는 건가? 나만 검색을 잘 못하는 건가?

 

 

 

일단 VNC를 사용할 때에 좀 귀찮은 부분이 "Desktop Environments"을 맞추는 것이다.

검색 결과의 대부분이 VNC를 셋팅할 때에 가볍게 사용하기 위한 XFce 같은 것으로 알려주고 있다.

나는 그냥 사용하고 있는 Unity 화면과 비스무리하게 사용하고 싶은데...

 

 

그리고, 대부분의 포스트에서 보면 실행 권한에 대한 언급을 볼 수 없었다.

대체 root 권한으로만 해야하는 것인지, 그냥 일반 계정 권한으로 하면 안되는 것인지...

 

 

또 하나는, 포트인데... VNC에서 사용하는 포트가 몇 번인지 명확히 설명해준 글이 많지 않았다.

때로는 방화벽이나 Proxy 등으로 사용하는 포트가 궁금했는데...

 

 

 

결국은 목마른 넘이 우물을 파듯이...

하나씩 찾아보고, 직접 테스트 해보고 하면서 다음과 같이 정리해보았다.

 

 

 

기본 실행 환경은 Ubuntu Desktop 버전을 기본값으로 그대로 설치하고,

기본 패키지 업그레이드는 기본 상태에서 최신으로 계속 갱신해 놓은 상태이다.

 

아래 내용을 테스트한 환경은 아래와 같다.

- Ubuntu 12.04 LTS 64bit

- Ubuntu 14.04 LTS 64bit

- Ubuntu 16.04 LTS 64bit

 

 

 

1. 필요 패키지 설치

 

    본래는 아래 패키지들도 설치해야하지만, 이미 설치되어 있어서 제외하고 설치해도 된다.

 

        - sudo apt-get install gnome-settings-daemon gnome-terminal metacity nautilus

 

    아래와 같이 필요한 패키지를 설치하자

 

$ sudo apt-get install gnome-panel vnc4server

 

 

 

2. 첫 실행

 

    첫 실행을 해서 기본 Config 등의 구성을 하도록 하면 되는데,

    sudo 없이 계정 권한으로 실행하여도 된다.

 

$ vnc4server

 

    아래와 같이 패스워드 설정을 진행하면 된다.

 

 

    위의 화면을 보면 알겠지만, 계정 권한으로 실행을 하면 해당 계정으로 환경 설정을 한다.

 

 

 

 

3. 기본 창 관리자 변경

 

    기본 생성된 xstartup 파일에는 내가 원하는 대로 환경 설정이 되어 있지 않다.

    가장 먼저 실행된 vnc4server를 종료부터 하고 xstartup 파일을 수정하자.

 

$ vnc4server -kill :1

$ cp ~/.vnc/xstartup ~/.vnc/xstartup.old

$ nano ~/.vnc/xstartup

 

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

 

 

 

4. 다시 실행하기

 

    실행할 때에 해상도를 미리 정해줘야 한다.

 

$ vnc4server -geometry 1024x768

 

 

 

5. VNC Viewer 로 접속하기

 

    다른 PC에서 해당 IP로 접속하면 된다. 물론 뒤에 디스플레이 번호 붙여서...

 

 

    예쁘게 잘 나온다!

 

 

 

 

 

6. 부팅 時 자동으로 실행

 

    이제 잘 되는 것 까지는 확인했으니, 부팅할 때에 알아서 되도록만 하면 되겠다.

 

$ sudo nano /etc/init.d/vncserver

 

    아래 내용을 그대로 사용하면 된다.

    USER 부분이나 해상도 부분은 각자 상황에 맞게...

 

#!/bin/bash
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    networking
# Required-Stop:     networking
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

 

PATH="$PATH:/usr/bin/"
export USER="u12"

 

DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"

 

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

 

. /lib/lsb/init-functions

 

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

 

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

 

restart)
$0 stop
$0 start
;;
esac
exit 0

 

$ sudo chmod +x /etc/init.d/vncserver

$ sudo update-rc.d vncserver defaults

 

    이제는 재부팅을 하여도 잘 된다~!!!

 

 

 

아! 그리고 Display 1번인 경우 디폴트 포트는 5901 을 사용한다!

다른거 없이 이거 하나만 열리면 사용할 수 있다.

 

 

 

앗싸~ 여기까지!

반응형
  1. BlogIcon 엘카 2017.01.02 09:11

    저의 경우는 접속 히 시스템설정창 등이 실행되지 않고,
    한영전환도 되지 않습니다. 마치 권한이 낮은 등급으로 접속한 현상을 보입니다.

    12.04에서는 괜찮았는 데, 14.04 64비트 버전 올릴 수 발생하는군요.
    한영전환이나 시스템설정창 정상적으로 표시되나요?

  2. 용산동 2017.10.29 05:15

    감사합니다. 다 잘되네요
    하지만 저도 윗분과 같은 증상을 보이고 14.04 버전입니다. (이부분은 다른글들을 보아도 마찬가지 인거 같아 버전 차이로 인한 문제라고 생각합니다. 애초에 Unity-2D로 연결이 안되는것도 그렇고)

    제가 궁금한점은, 마지막에 재부팅시 실행 되도록 설정한부분, 그 부분 설정 이후 vnc viewer로 연결하면
    모든 언어가 영어로 뜨네요!!? 어차피 입력 안되는건 똑같지만

    분명 저 설정 전에 실행했을때는 본문의 스크린샷 처럼 터미널 메뉴 등이 한글이었는데...

  3. BlogIcon 빛나는나무 2019.07.31 19:13 신고

    안녕하세요, 리눅스를 처음 사용하는 유저입니다.
    VNC 설치 완료했고 접속 테스트까진 완료한 상태이구요.
    명령어 "sudo nano /etc/init.d/vncserver" 다음에 나오는
    GNU nano 2.5.3 으로 시작하는 터미널창에 "#!/bin/bash" 로 시작하는 코드를 입력하면 되는건가요?
    그리고 이 터미널 밑에 나오는 "^G" 같은 단축명령어 등에 저장을 의미하는 부분이 없는데, 그냥 ^X 로 exit 하면 자동 저장되는 것일까요?

    감사합니다.



    • BlogIcon whatwant 2019.08.01 23:03 신고

      네, 맞습니다 ^^

      nano에서 저장은 ^O 로 하시면 됩니다.

      ^X로 종료하셔도 알아서 저장할거냐고 물어보기는 합니다~

      즐거운 리눅스 생활되세요~~~

    • BlogIcon 빛나는나무 2019.08.05 15:06 신고

      답변 감사합니다


Ubuntu를 사용하는 분들 중 상당수는 과거 CUI - Consol User Interface 를 좋아하는 분들이다.
이런 분들은 그냥 SSH 접속만으로도 충분히 만족을 한다.
터미널 접속만으로도 모든 작업을 할 수 있다.

하지만, 최근 Ubuntu를 통해 처음 Linux를 접하는 분들 또는 GUI 환경을 좋아하는 분들은
그것만으로는 만족하지 못한다.
아름다운 X-Windows 환경을 원격 접속을 통해서도 계속 사용하고 싶어하는 것이다.


원격에서도 X-Windows를 그대로 사용하고픈 사용자들을 위해서
과거부터 X-Manager와 같은 많은 유틸리티들이 있었고 VNC와 같은 대표적인 도구도 있다.



그렇지만, MS-Windows 환경이라면
이제는 Ubuntu의 X-Windows를 원격으로 사용하기 위해서 별도의 어플리케이션을 사용할 필요가 없다.

그냥 "원격 데스크톱 연결(mstsc)"을 사용해서 접속 사용할 수 있다.


$ sudo apt-get install xrdp

[ xrdp ]라고 해서 이전과 다른 새로운 패키지라고 생각할 수도 있지만 결국은 VNC 기반이다.

위와같이 [ xrdp ]만 설치되면 "원격 데스크톱 연결"을 통해 접속할 수 있다.




기본적으로 처음 연결을 할 때의 해상도를 로그아웃할 때까지 유지하기 때문에
디스플레이 설정을 미리 변경하고 접속을 시도하는 것이 좋다.


로그인 화면이 예전에 많이 보던 VNC 화면과 유사, 아니 동일하다 ^^


접속을 하면 예쁘게 나타난다.
이제 X-WIndows 화면을 통해 원격으로 편하게 작업을 할 수가 있다.



그런데, 가끔 접속이 안되는 경우가 있다.
session이 제대로 동작을 하지 않는 경우인데, 알맞은 session을 직접 지정해주는 방법으로 해결을 할 수 있다.

보통 구글링을 하면 다음과 같은 방법으로 해결을 하곤 한다.

$ nano ~/.xsession

접속하려는 계정의 홈디렉토리 밑에 [ .xsession ] 파일을 만든다.

gnome-session --session=ubuntu-2d

그 안에 위와 같은 내용을 쓴 다음, 다시 원격 접속을 시도하면 보통 성공을 한다고 한다.


추정이지만,
위와 같이 해결이 되는 경우는 최근 Ubuntu에서 사용하고 있는 Unity의 경우
원격 접속을 통해서는 제대로 된 출력을 할 수 없어서 에러가 발생을 하고
그래서 직접 [ ubuntu-2d ] session으로 원격 접속을 지원하도록 하면 대부분 문제가 해결이 된다.


그런데, 위와 같이 해서 해결이 되는 경우는 [ ubuntu-2d ] session이 정상적인 동작을 하는 경우에만 적용이 된다.
그렇지 않은 경우에는 당연히 계속 오류가 발생하게 된다.

gnome-session --session=gnome-classic

$ sudo service xrdp restart


보통 ubuntu를 일반적으로 설치했을 경우 지원하는 session은 [ ubuntu-2d ] 또는 [ gnome-classic ]이다.

사용할 수 있는 xsession을 확인하고 싶은 경우 아래와 같이 실행하면 된다.


$ ls -al /usr/share/xsessions/

위 스크린샷은 일반적인 ubuntu가 아니라 [ xubuntu ]를 설치했을 경우에 나오는 화면이다.



모두들 즐거운 Ubuntu 생활하길~!!!


반응형

'OS > Ubuntu' 카테고리의 다른 글

Ubuntu 터미널 폰트 변경  (0) 2012.09.15
Linux in PowerPC (Mac Mini - A1103)  (0) 2012.09.04
Ubuntu 원격접속 (xrdp, vnc)  (3) 2012.08.30
Ubuntu - sudoers visudo  (3) 2012.08.18
우분츄 - 세계최초! 학원 우분투 러브코메디  (0) 2012.08.15
Ubuntu CPU 정보 확인하기  (0) 2012.08.15
  1. 김분투 2013.07.21 00:45

    xubuntu로 xrdp연결해줄려면 어떻게 해야합니까?
    설정값으로 어떻게 해줘야하나요?

  2. BlogIcon 김광연 2016.03.08 07:16

    감사요

  3. ㅇㅇ? 2016.12.21 09:12

    xrdp가 어떻게 vnc 기반인가요? client도 원격 데스크톱 연결로 연결한다고 올바르게 적으시고는 이게 갑자기 무슨..

+ Recent posts