블로그 이미지
훅크선장

카테고리

분류 전체보기 (362)
사진이야기 (23)
펭귄컴퓨팅 (121)
컴퓨터보안 (84)
절름발이 프로그래머 (59)
하드웨어개조 (23)
멀알려줄까 (35)
홈베이킹&홈쿠킹 (2)
잡다한것들 (15)
Total
Today
Yesterday

달력

« » 2019.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

공지사항

태그목록

최근에 올라온 글

'2019/04'에 해당되는 글 2건

  1. 2019.04.10 RHEL/CentOS 7에서 VNC server 설치
  2. 2019.04.05 VNC 서비스 복구과정

RHEL7 VNC Server 설정법을 설명합니다.
VNC user로 root, foobar 계정으로 세팅하는 법을 예로 들겠습니다.
과정 중에 프롬프트 표시가 "#", "$"의 차이가 있음에 유의하여 진행합니다.


1, 패키지 설치 & 시스템 방화벽 설정

# yum -y install tigervnc-server tigervnc

# firewall-cmd --permanent --zone=public --add-port 5901/tcp
# firewall-cmd --permanent --zone=public --add-port 5902/tcp
※ firewalld가 disabled 된 경우 skip

서버<->클라이언트 간 TCP 5901(root용), 5902(foobar용) 포트가 오픈되어야 합니다.
root 이외의 계정 n개를 vnc server 설정한다면 TCP 5901~(5901+n) 범위의 포트를 시스템 또는 네트워크 방화벽 open하여야 합니다.


2. VNC 액세스를 할 시스템 계정을 위한 VNC user 계정 생성 및 패스워드 설정

# useradd foobar
# passwd foobar


3. vncpassword 설정

3.1. root의 vncpassword 설정

# vncpasswd <-- root의 패스워드와는 달라도 상관 없습니다.

3.2. foobar 시스템 계정의 vncpassword 설정

# su - foobar
$ vncpasswd <-- 시스템 계정(foobar)의 패스워드와는 달라도 상관 없습니다.


4. foobar의 xtartup 파일 설정 및 퍼미션 변경
$ vim .vnc/xstartup
#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/xinit/xinitrc

$ chmod 755 .vnc/xstartup


5.  VNC user를 위해 original VNC config 파일을 copy & edit
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service <-- root용
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service <-- foobar용


# vim /etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i  > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i  > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

# vim /etc/systemd/system/vncserver@:2.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l foobar -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/home/foobar/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target



6. 설정을 reload
# systemctl daemon-reload


7. vnc service를 enable & start
# systemctl enable vncserver@:1.service
# systemctl enable vncserver@:2.service
# systemctl start vncserver@:1.service
# systemctl start vncserver@:2.service


방화벽 포트 오픈 반드시 필요
[root@localhost firewalld]# firewall-cmd --permanent --zone=public --add-port 5902/tcp
success
[root@localhost firewalld]# firewall-cmd --permanent --zone=public --add-port 5901/tcp
success
[root@localhost zones]# systemctl restart firewalld


8. vnc service에 의한 포트 listen 여부 확인(tcp 5901, 5902, 6001, 6002)
[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      2736/Xvnc
tcp        0      0 0.0.0.0:5902            0.0.0.0:*               LISTEN      2924/Xvnc
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      2736/Xvnc
tcp        0      0 0.0.0.0:6002            0.0.0.0:*               LISTEN      2924/Xvnc
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      792/sshd
tcp6       0      0 :::6001                 :::*                    LISTEN      2736/Xvnc
tcp6       0      0 :::6002                 :::*                    LISTEN      2924/Xvnc
tcp6       0      0 :::22                   :::*                    LISTEN      792/sshd
[root@localhost ~]#


8. vnc 클라이언트로 접속

root -> IP ADDRESS:5901
foobar  -> IP ADDRESS:5902

Posted by 훅크선장
, |

VNC 프로세스가 구동하는 X 화면이 :1 :2 번이 아니라, :3 :4 번 또는 :5 :6 번으로 뜨는 문제

서버가 비정상 종료되는 경우에, TigerVNC와 X11의 임시파일들이 정상적으로 삭제되지 못하면서 생기는 문제로 판명

1. 기존 프로세스의 확인 작업

lsof -i
vncserver -list


2. 잘못된 VNC server 프로세스 종료

절대로 kill -9 [process number]를 사용하면 안된다. 새로운 프로세스가 바로 생성된다.

vncserver -kill :3
vncserver -kill :4
vncserver -kill :5
vncserver -kill :6

3. 임시파일들이 남아 있으면 삭제

ls -la /root/.vnc/
ls -la /home/bigdata/.vnc/

cd /root/.vnc/
cd /home/bigdata/.vnc

rm -f *.pid
rm -f *.log


ls -la /tmp/.X11-unix/
cd /tmp/.X11-unix/
rm -f X1
rm -f X2

4. VNC 재시작

systemctl start vncserver@:1
systemctl start vncserver@:2




rpm -qa
rpm -ql [package name]

yum list installed

Posted by 훅크선장
, |