[Linux] 리눅스(CentOS7)

[Linux] 리눅스 서버 구축 실습_VNC Server

ITsubin 2022. 5. 10. 23:34

VNC란 Virtual Network Computing으로, X 윈도우 환경으로 원격 접속을 하기 위해 사용합니다.

telnet과 sshCLI 전용이고, VNCGUI 전용입니다.

( telnet : [Linux] 서버 구축 실습_Telnet(텔넷) )

( ssh : [Linux] 리눅스 원격 접속 ssh(Secure Shell) )


< VNC 전용 사용자 지정 - 디스플레이 1 >

VNC 접속 포트의 디폴트값은 5900입니다.[ 기본 포트 + 디스플레이 넘버 ==> 실제 포트 ]입니다.디스플레이 1을 설정할 예정이기 때문에 [ 5900 + 1 ]로 포트를 설정해주겠습니다.

 

{ 방화벽 설정 }

먼저 방화벽에 포트를 등록해주겠습니다.

[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=5901/tcp
success

 

리로드 후 확인해보겠습니다.

[root@localhost /]# firewall-cmd --reload
success
[root@localhost /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens32
  sources:
  services: dhcpv6-client ssh
  ports: 23/tcp 5901/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@localhost /]#

 

{ 계정 생성 }

vnc 전용 계정을 하나 생성하겠습니다.

vnctest로 설정하겠습니다.

[root@localhost /]# useradd vnctest
[root@localhost /]# passwd vnctest
vnctest 사용자의 비밀 번호 변경 중
새  암호:
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@localhost /]#

 

{ VNC 서버 설치 (tigervnc) }

이번에도 yum 명령어로 설치하겠습니다. tigervnc-server 패키지를 설치합니다.

yum -y install tigervnc-server

 

설치가 완료되었으면 cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

로 파일을 복사해줍니다.

(ls -l /etc/systemd/system | grep vnc 으로 vncserver@:1.service 파일이 보여야 합니다.

이 파일의 설정을 편집하겠습니다.)

 

좀 더 편하게 하기 위해 cd 명령어로 /etc/systemd/system 디렉터리로 옮겨준 후, vi로 파일을 열어줍니다.

cd /etc/systemd/system

vi vncserver@\:1.service

 

41번째 행의 ExecStart=/usr/bin/vncserver_wrapper <USER> %i 를

ExecStart=/usr/bin/vncserver_wrapper vnctest %i 로 바꿔줍니다.

여기서 vnctest는 아까 추가했던 계정입니다. (vnc 전용 계정으로 만드는 과정)
su - vnctest 로 계정 변경 후 vncserver 명령어를 입력하겠습니다.
[root@localhost vnctest]# su - vnctest
마지막 로그인: 화  5월 10 23:23:04 KST 2022 일시 pts/0
[vnctest@localhost ~]$ vncserver

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:

New 'localhost.localdomain:1 (vnctest)' desktop is localhost.localdomain:1

Creating default startup script /home/vnctest/.vnc/xstartup
Creating default config /home/vnctest/.vnc/config
Starting applications specified in /home/vnctest/.vnc/xstartup
Log file is /home/vnctest/.vnc/localhost.localdomain:1.log

[vnctest@localhost ~]$

 

이제 su - 명령으로 다시 root 계정으로 돌아와서 데몬을 다시 불러와줍니다.

su - (su root)

systemctl daemon-reload

 

서비스 시작도 해줍니다.

systemctl start vncserver@:1.service

 

계속 쓸 수 있게끔 활성화도 해줍니다.

[root@localhost ~]# systemctl enable vncserver@:1.service

Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver@:1.service to /etc/systemd/system/vncserver@:1.service.

[root@localhost ~]#

 

여기서 생성된 심볼릭 링크는 Windows의 시작 프로그램에 바로가기를 등록한 것이라고 생각하면 됩니다.

 

다시 등록해주고 재시작 후 status(상태창)를 열어줍니다.

systemctl enable vncserver@:1.service

systemctl restart vncserver@:1.service

systemctl status vncserver@:1.service

[root@localhost ~]# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
   Active: active (running) since 화 2022-05-10 23:28:53 KST; 1min 5s ago
  Process: 1013 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 1032 (vncserver_wrapp)
   CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
           ├─1032 /bin/sh /usr/bin/vncserver_wrapper vnctest :1
           └─2947 sleep 5

 5월 10 23:28:53 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...
 5월 10 23:28:53 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
 5월 10 23:28:56 localhost.localdomain vncserver_wrapper[1032]: New 'localhost.localdomain:1 (vnctest)' desktop is loc...in:1
 5월 10 23:28:56 localhost.localdomain vncserver_wrapper[1032]: Starting applications specified in /home/vnctest/.vnc/...rtup
 5월 10 23:28:56 localhost.localdomain vncserver_wrapper[1032]: Log file is /home/vnctest/.vnc/localhost.localdomain:1.log
 5월 10 23:29:02 localhost.localdomain vncserver_wrapper[1032]: 'vncserver :1' has PID 1152, waiting until it exits ...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#

(혹시 failed가 뜬다면 재부팅을 하시면 됩니다. (init 6))

 

https://www.realvnc.com/en/connect/download/viewer/windows/

위 링크에서 VNC Viewer를 다운로드 해줍니다.
Next Next
위 사진처럼 설정해서 바탕화면에 바로가기를 만들겠습니다.
Finish 클릭.
 
Enter a VNC... 에 주소를 넣으면 됩니다.
(포트 번호도 넣어줘야 합니다. 192.168.100.100:5901 넣어줍니다.)