힉부 연구생을 하며 연구실이 보유한 클러스터 서버 3대를 다룰일이 생겼다.
그동안 내가 주로 이용하던 서버는 연구실 내에 위치하여 GUI가 필요한 툴들을 이용할 때는 모니터와 키보드를 연결해 GUI 모드로 이를 이용하곤 했었는데,
이번에 이용할 서버들도 마찬가지로 GUI를 이용해야 하는데 학교 저 멀리 다른 건물에 위치해있었다...ㅎ
맨처음에는 위 사진처럼 GUI 이용해야 할 날을 이틀 정도 잡고, 모니터 키보드 다 챙겨서 서버룸으로 출퇴근하며 작업해볼까 고민해봤지만
방학이어서 사람들도 거의 없는 건물 빈 방에 혼자 쪼그리면서 개발하면 너무 비참해질 것 같아서ㅎ
다른 방안을 생각해보기로 했다.
그 중 생각해낸게 SSH + VNC이다.
내 노트북에 SSH로 서버에 접속한 후, VNC를 이용해 해당 서버를 GUI로 띄우는 것이다.
다른 블로그를 보며 실행해봤지만, 나 같은 경우 접속은 성공했지만 검은 화면이 떠 이리저리 알아보며 최대한 해결했다.
그리고 내가 이용할 서버는 SSH 연결도 Gateway 서버 하나 거쳐서 진행하기 때문에 아주 조금 더 복잡했다.
이러한 시행착오들을 이번 포스팅에 다 녹여서 설명해보려 한다.
그전에 ssh와 VNC 개념은 알고 계신다는 가정하에 설치 및 세팅 과정만 작성해보려 한다.
과거의 내가 보며 같이 서버 세팅한다는 생각으로 단계별로 최대한 자세하게 풀어쓰려 한다.
시작해보자!
환경 정의
연결할 서버는 Ubuntu이다. 요즘 Centos랑 Ubuntu 왔다갔다 하느라 정신이 없다
우선 내가 사용할 서버는 곧바로 SSH로 연결하지 않는다.
Gateway 서버 한대를 우선 거친 후 연결되는 방식이다.
그래서 간략히 표현하자면
노트북 -> Gateway 서버 -> 접속할 서버
방식으로 접속한다,
다른 VNC 뷰어 툴들 중 이러한 세팅을 제일 쉽게 지원하는 툴이 MobaXterm이었다.(내 기준)
따라서 나의 계획은
내 노트북으로 ssh로 접속 -> VNC를 이용하기 위한 서버 세팅 -> MobaXterm을 이용해 GUI 화면 노트북에 띄우기
이다.
만약 다이렉트로 SSH 연결이 가능한 경우엔 오히려 좋다.
해당 과정은 건너뛰기만 하면 된다.
MobaXterm 설치
앞에서 말했다 싶이 내가 사용할 툴은 MobaXterm이다.
MobaXterm은 VNC 말고도 굉장히 많은 기능들을 지원한다.
나도 다른 기능들 조금씩 이용해보며 정말 많은 것들을 배웠다. 관심있는 분들은 자세히 공부해보면 좋을것 같다.
아래 사이트에 접속해 MobaXterm을 설치해준다.
https://mobaxterm.mobatek.net/download.html
각자 상황에 맞게 어떤 에디션을 설치해줄 지 고르면 된다.
나 같은 경우는 학교에서 비영리적인 목적으로 이용할 예정이기 때문에 Home Edition을 설치해줬다.
이를 클릭하면 아래와 같은 화면이 나온다.
Portable, Installer 두 가지 옵션이 또 나온다. 이 둘의 차이는 아래와 같다.
- Portable Edition
- 설치 프로그램 없이 단일 파일
- USB 같은 외부 저장장치에 복사하여 사용 -> 다른 컴퓨터에도 사용 가능
- 시스템에 직접 설치되지 않음
- Installer Edition
- 사용자 컴퓨터에 직접 설치
나 같은 경우 Installer Edition을 설치해주었다.
이를 누르면 압축 파일이 하나 다운로드 되는데, 이를 풀면 .msi 파일이 나온다.
해당 파일을 눌러 설치를 진행해준다. 설치 과정은 별거 없다.
설치 후 MobaXterm 아이콘이 생길텐데, 이를 클릭하면 프로그램이 실행될 것이다!
여기서 VNC를 사용하기 전에 서버에 세팅해주어야 할 것이 있다.
이를 먼저 진행하려 한다.
서버 세팅
gnome, vns server 툴 설치
GUI로 띄우고 싶은 서버에서 작업해줘야 한다.
우분투 기준 아래 툴들을 설치해준다.
# 이거 설치 안해줘서 VNC 뷰어에서 검은 화면이 떴다
apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y
# TIGER VNS 관련 패키지
apt-get install tigervnc-standalone-server tigervnc-xorg-extension -y
설치를 완료했으면 비밀번호를 설정해줘야 한다.
sudo vncpasswd
해당 비밀번호는 추후에 MobaXterm이 localhost 비밀번호 물어볼 때 입력할 것이므로 절대 잊으면 안된다.
(그리고 아래 사진과 달리, 루트 사용자가 아닌 경우 꼭 sudo를 붙이도록 한다.)
이때 'Would you like to enter a view-only password' 라는 질문엔 n을 입력해줬다.
이는 사용자가 읽기 전용 비밀번호를 설정할 지의 여부를 묻는 메시지다.
나는 VNC 사용자로 들어가 파일들을 조작할 예정이기 때문에 n을 입력한 것이다.
xstartup 파일 생성
아래 경로로 xstartup이라는 파일을 새로 만들어 준다.
# xstartup은 기존에 존재하지 않는 파일이다. 새로 만들어주기
vim ~/.vnc/xstartup
이후 해당 파일에 아래와 같은 메시지를 복사 붙여넣기 한다.
맨 밑 4줄은 다른 블로그들엔 없는 내용인데, 이를 추가해주지 않으면 나같은 경우 검은 화면만 떠서 추가해줬다.
#!/bin/sh
# Start Gnome 3 Desktop
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
# 기존 다른 블로그엔 없던 부분.. 따로 추가
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
그 후 파일 권한을 설정해준다.
# 권한 조정
chmod u+x ~/.vnc/xstartup
Xauthourity 파일 생성
# root에 Xauthority 파일 자동 생성
sudo .Xauthority
서버 실행
서버의 모든 세팅은 다 끝났다.
이제 vnc를 실행시켜주도록 하자.
이때 나 같은 경우 root 권한으로 실행해야 GUI가 제대로 떴다. 루트 권한 아닌 경우 sudo 꼭 넣어준다.
# 서버 실행
sudo vncserver -localhost no
여기서 끝에 no는 외부 접속을 허용하기 위한 옵션이다.
이를 주지 않으면 localhost로의 접근만 가능하기 때문에 반드시 넣어줘야 한다.
명령어를 실행해주면 아래와 같이 비밀번호 한번 더 입력하는 안내가 나온다.
똑같이 비밀번호 입력하면 된다.
xxx:1 라는 프로세스가 생성되었다.
끝자리가 1이면 5901, 2면 5902, 3이면 5903 번 포트를 이용해 VNC에 접근한다.
프로세스 리스트를 자세히 확인해보자
# VNC 프로세스 리스트
# root 권한으로 반드시!
sudo vncserver -list
1번 프로세스가 생성되었으므로 포트번호는 5903번이 배정되었음을 확인할 수 있다.
만약 이를 kill하고 싶다면 아래 명령어를 이용하면 된다.
# xxx:3 vnc 프로세스 kill
sudo vncserver -kill :1
MobaXterm 실행
서버 세팅은 완료했다. 이제 노트북으로 가서 MobaXterm을 실행시켜본다.
좌상단에 빨간색 박스 Session을 클릭한다.
그다음 우리가 이용할 VNC를 클릭해준다.
이를 클릭하면 아래와 같은 창이 뜨는데,
Basic Vnc Setting 칸에 세팅한 서버의 IP 주소를 입력해준 후 포트 번호를 맞춰주면 된다.
앞서 살펴봤을 때 나와 같은 경우 5901번 포트를 써야 한다는 것을 알기 때문에 5901번으로 맞춰준다.
자 여기서 갈리는 부분이 있다.
내 서버 같은 경우는 SSH 접속시 노트북에서 서버로 곧바로 연결되는 것이 아니라, Gateway 서버 한대를 거쳐간다.
나와 같은 환경이신 분은 아래 과정을 따라가면 되고, 아닌 분들은 넘어가면 된다.
Network settings 클릭
빨간색 네모 클릭
여기서 각자 환경에 맞는 게이트웨이 서버 설정을 입력해주면 된다.
OK 버튼을 누르면 루트 권한으로 VNC 서버 실행하신 분들은 바로 GUI 창이 뜰 것이고,
아닌 분들은 localhost 비밀번호 묻는 화면이 뜰 것이다.
그런 경우 앞서 vncserver passwd 단계에서 설정했던 비밀번호를 입력해주면 된다.
실행 결과
짜잔~ GUI로 띄우기 성공했다!
이제 내 자리에서 저 멀리 있는 서버들 이용해 GUI 툴들 이용할 수 있다
셋업보다 글쓰기가 더 오래 걸린 것 같은 느낌ㅎ
그래도 이 글로 인해 누군가가 도움이 되었다면 난 그걸로 됐다!
'Linux > Tools' 카테고리의 다른 글
Bmon_네트워크 모니터링 툴 (21) | 2024.02.09 |
---|---|
Sysstat (2)_sar 명령어로 모니터링 결과 시각화 해보기 (28) | 2024.01.30 |
Sysstat (1)_설치 및 sar 명령어 알아보기 (2) | 2024.01.29 |
Nmon (2)_ Nmon Visualizer 이용해 시각화하기 (2) | 2024.01.24 |
Nmon (1)_ 설치 후 이용해보기 (1) | 2024.01.23 |