본문 바로가기
  • fishing...
  • eating...
MISCELLANEOUSNESS

[펌] 리눅스 원격접속 방법

by 회색뿔 2008. 2. 4.



PC에서 Fedora 리눅스가 설치된 개발 서버에 원격으로 접속하기 위하여 VNC를 사용하였다.

0. 환경

  • 개발 서버: Fedora 8 (x86)
  • PC: Windows XP

내 컴퓨터(PC)에서 개발 서버로 원격 접속하기를 원한다. 그래서 개발 서버를 원격 접속 서버로, 내 컴퓨터를 클라이언트로 구성한다.

1. 패키지 설치

원격 접속 서버를 구성하기 위하여 가장 먼저 vnc-server 패키지 설치한다.

$ sudo yum install vnc-server

Fedora 8 설치할 때 선택한 패키지 그룹에 따라 다르겠지만, 이미 설치되어 있을 수도 있다. 나의 경우에는 그랬다.

$ rpm -q vnc-server
vnc-server-4.1.2-23.fc8
 
2. VNC 서버 구성 파일

/etc/sysconfig/vncserver 파일을 열어 맨아래에 있는 두 줄을 다음과 같이 수정한다.

원격 접속을 허용하는, 서버에서 사용하는 아이디를 지정한다. 아래는 아이디 myid로 원격 접속할 때 디스플레이 번호로 2를 사용하도록 함께 지정한다. (이 번호를 잘 기억해 두어야 한다!)

VNCSERVERS="2:myid"

VNC 서버를 기동할 때 사용하는 매개변수를 설정할 수 있는데 여기서는 일단 주석으로 막았다. (파일 내에 주석 처리된 내용이 이 매개변수의 용도를 설명하는 것이다. 세부 내용을 익히는 것은 다음 기회에~)

#VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

3. VNC 사용자 아이디/비밀번호 등록

VNC 서버 구성 파일에서 지정한 아이디에 대해 원격 접속 시 인증을 위한 비밀번호를 설정한다.

$ whoami
myid
$ vncpasswd
Password:
Verify:

원격 접속 아이디에 대한 비밀번호가 등록되고 나면 해당 사용자 홈 디렉토리에 .vnc 디렉토리가 생성되고, 그 디렉토리 내에 passwd 파일과 xstartup 파일이 만들어진다.

4. 원격 접속 사용 환경 설정

~myid/.vnc/xstartup 파일을 수정한다. 파일의 내용을 아래에 보인다.

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
export GTK_IM_MODULE=scim
gnome-session &
#startkde &

굵은 글씨로 된 행을 수정했다. 파일 내에서 안내하고 있는 바대로 일반적인 데스크톱 환경을 위해 첫 부분 두 줄의 주석을 풀었다. 그리고, Gnome Desktop 사용하기 위해 xterm, twm 있는 행을 주석으로 막고, 그 밑에 두 줄을 추가했다.

5. VNC 서버 기동

$ sudo /etc/init.d/vncserver
start


이제까지 원격 접속을 위한 VNC 서버를 설정하였고, 서버를 기동하였다.

서버가 정상적으로 기동되어 서비스 요청을 기다리고 있는지 확인해 보자.

$ netstat -an|grep 590
tcp        0      0 0.0.0.0:5902                0.0.0.0:*                   LISTEN

서버의 포트는 5900에 디스플레이 번호를 더해서 할당된다. 위에서 VNC 서버를 설정할 때 myid에 대한 디스플레이 번호를 2로 설정하였기 때문에 VNC 서버의 포트는 5902가 된다.

만일 이런 내용이 보이지 않으면 서버가 제대로 구성되지 않았다. 서버 구성 과정을 다시 살펴야 한다.

6. VNC 클라이언트 프로그램

PC에서 리눅스 박스에 원격 접속하려면 VNC 클라이언트 프로그램이 필요하다. 나는
UltraVNC를 선택했다.

홈페이지에서 이 프로그램 설치 파일을 내려 받고 실행하면 간단한 설치 과정을 거쳐 사용 가능하다.

UltraVNC Viewer 프로그램을 실행하면 아래와 같이 접속을 위한 창이 나타난다.

VNC 클라이언트 UntraVNC Viewer

'VNC Server'에 "서버 주소:2"와 같이 입력한다. 위의 그림에서 빨강 색으로 표시된 부분이다. 내가 사용하는 리눅스 박스의 주소는 192.168.2.60, 앞서 아이디 myid에 대해 디스플레이 번호를 2로 설정했다.

'Connect' 버튼을 누르면, 창이 바뀌고, 사용자 인증을 위한 비밀번호를 입력하도록 요구한다. 앞서 등록한 myid에 대한 비밀번호를 입력한다.

7. 부록

7.1. 한글


한글을 사용하기 위해서 확인해야 하는 사항이 있다. 한글 글꼴 설치 여부가 그것이다.

개발 서버에는 백묵 글꼴이 설치되어 있다. 이것들을 별도로 설치한 기억이 없는 것으로 봐서 Fedora 8 버전을 설치할 때 함께 설치된 것이지 않을까 싶다.

그리고, Fedora 8 버전을 설치할 때 Gnome Desktop을 선택했다면 아마도 필요하지 않겠지만, scim-hangul 패키지가 설치되어 있는지 확인해보고 설치하도록 한다.

7.2. 방화벽

방화벽을 이미 사용하고 있으면 VNC 서비스 포트로 접속을 허용하여야 한다. 여기서는 5902를 사용하고 있지만, 서버 설정에 따라 달라질 수 있다.

iptables 방식을 사용하는 경우에 아래와 같이 조치한다. (root 권한이 있어야 한다.)

# iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
# iptables-save > /etc/sysconfig/iptables
# /etc/init.d/iptables restart

7.3. 런레벨(run level) 설정

# chkconfig --level 345 vncserver on