Tiếp theo bài viết hướng dẫn cài đặt VNC Server trên Ubuntu, hôm nay mình sẽ hướng dẫn các bạn cách cài đặt và kết nối VNC Server trên CentOS. Bạn cần cài đặt với user có quyền root.


1. Cài đặt VNC Server

– Cài đặt VNC Server với package tigervnc-server và giao diện đồ họa GNOME Desktop. Ngoài ra, bạn có thể sử dụng các giao diện đồ họa khác như KDE hay XFCE-4.4.

# yum install tigervnc-server
## CentOS 6
# yum groupinstall "Desktop"

## CentOS 7
# yum groupinstall "GNOME Desktop"

2. Cấu hình VNC Server

2.1. Thiết lập tài khoản truy cập VNC

Để bảo mật, mình sẽ thiết lập truy cập qua VNC bằng user roothocvps. Trong đó:

  • User root truy cập qua domain:1 với tất cả các quyền.
  • User hocvps truy cập qua domain:2

_ Thiết lập mật khẩu khi truy cập VNC bằng user root, lưu tại /root/.vnc/passwd

# vncpasswd

_ Tạo mới user hocvps và thiết lập mật khẩu :

# adduser hocvps
# passwd hocvps

_ Thiết lập mật khẩu khi truy cập VNC bằng user hocvps, lưu tại /home/hocvps/.vnc/passwd

# su hocvps
# vncpasswd
# exit

2.2. Cấu hình VNC Server

2.2.1. Đối với CentOS 6

– Thiết lập cấu hình truy cập VNC:

Đối với CentOS 6, cấu hình tại /etc/sysconfig/vncservers. Thêm đoạn sau vào cuối:

VNCSERVERS="1:root 2:hocvps"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"

Trong đó, dòng đầu tiên là quy định user kết nối và port tương ứng, dòng tiếp theo quy định độ phân giải màn hình.

– Mở port truy cập:
Mở port 590X tương ứng với port X truy cập của VNC Client, cụ thể port 5901, 5902.

# iptables -I INPUT -p tcp --dport 5901:5902 -j ACCEPT
# service iptables save
# service iptables restart

– Thiết lập VNC Server luôn khởi động cùng server:

# chkconfig vncserver on

– Cuối cùng, khởi động VNC Server:

# service vncserver start
Starting VNC server: 1:root xauth:  file /root/.Xauthority does not exist

New 'hocvps.com:1 (root)' desktop is hocvps.com:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/hocvps.com:1.log

2:hocvps xauth:  file /home/hocvps/.Xauthority does not exist

New 'hocvps.com:2 (hocvps)' desktop is hocvps.com:2

Creating default startup script /home/hocvps/.vnc/xstartup
Starting applications specified in /home/hocvps/.vnc/xstartup
Log file is /home/hocvps/.vnc/hocvps.com:2.log
                                                           [  OK  ]

2.2.2. Đối với CentOS 7

– Thiết lập cấu hình truy cập VNC:
Đối với CentOS 7, cấu hình VNC tại /lib/systemd/system/vncserver@.service.

Bạn cần tạo riêng cấu hình cho từng user (dựa theo cấu hình gốc), lưu tại /etc/systemd/system/

# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service

Thay đổi USER tại dòng ExecStartPIDFiletrong block cuối [Service], cụ thể:
Cấu hình /etc/systemd/system/vncserver@:1.service cho user root:

# nano /etc/systemd/system/vncserver@:1.service
[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=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

Cấu hình /etc/systemd/system/vncserver@:2.service cho user hocvps:

# nano /etc/systemd/system/vncserver@:2.service
[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=/usr/sbin/runuser -l hocvps -c "/usr/bin/vncserver %i"
PIDFile=/home/hocvps/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

– Thiết lập tường lửa:

# firewall-cmd --permanent --zone=public --add-service vnc-server
success
# firewall-cmd --reload
success

– Thiết lập khởi động cùng server:

# systemctl daemon-reload
# 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.
# systemctl enable vncserver@:2.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver@:2.service to /etc/systemd/system/vncserver@:2.service.
# systemctl start vncserver@:1.service
# systemctl start vncserver@:2.service

– Cuối cùng, khởi động VNC Server:
Khởi động VNC Server cho user root:

# vncserver

Khởi động VNC Server cho user hocvps:

# su hocvps
# vncserver
# exit

3. Kết nối VNC Server

Bạn cài đặt TightVNC for Windows  hoặc VNC Viewer của RealVNC (có hỗ trợ Mac) rồi chạy VNC Viewer để kết nối tới server với địa chỉ IP và port VNC đã cài đặt. Ví dụ domain:1 cho user root và domain:2 cho user hocvps. Password sử dụng mật khẩu truy cập VNC (không phải mật khẩu Linux).

ket noi vnc centos

Nếu mọi việc thành công, giao diện GUI sẽ hiện ra như bên dưới:

centos vnc

Chúc bạn thành công!

Tagged:

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

79 Comments

  1. thue xe limousine 7 comment

    giờ muốn xóa nó đi thì làm sao ace nhỉ ? ko bit nó xung đột gì với cyber mà lỗi vps ráo hết oài .

      1. Bùi Đức Sơn 4 comment

        Đến đoạn cuối cùng thì không kết nối được với VNC anh ạ

  2. Thiện 1 comment

    anh ơi sao em làm tới lệnh này :nano /etc/sysconfig/vncservers
    nó báo là nano : command not found vậy anh
    em dùng centos 6.9 x64 anh
    mong a hỗ trợ em cảm ơn

  3. Tài 10 comment

    Câu lệnh này không chạy bạn ơi. systemctl start vncserver@:1.service, nó báo lỗi failed.

    – Mình đã kiểm tra bằng “systemctl status vncserver@:1.service” và nó báo lỗi “Active: failed” và code=exited, status=127.

    – Mình đã search trên google nhưng chưa tìm ra cách khắc phục. Bạn giúp mình với

  4. Tài 10 comment

    bạn có thể xem lỗi giúp mình được ko, “chkconfig vncserver on” chạy nó báo lỗi “No such file or directory” rồi.

  5. Tài 10 comment

    Mình đăng nhập TightVNC Viewer được rồi, có điều nó chỉ hiện ra giao diện của TightVNC Viewer, còn giao diện GNOME Desktop thì không thấy. Mặc dù mình đã xóa và cài lại GNOME Desktop rồi mà vẫn không được.

  6. Tài 10 comment

    Em làm tới bước cuối cùng, dùng TightVNC Viewer để đăng nhập thì bị lỗi:

    – “Error in TightVNC Viewer: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.”

    Giờ phải sửa như thế nào vậy anh ?

    1. Việt Phương Moderator

      VPS bạn vẫn đang kết nối SSH bình thường chứ? Cổng VNC bạn đã mở hết chưa?

      1. Tài 10 comment

        vẫn đang kết nối SSH bình thường bạn.
        “Cổng VNC bạn đã mở hết chưa? “. Cái này mở như thế nào bạn

        1. Việt Phương Moderator

          Trong bài viết mình có đề cập đó, tùy vào CentOS 6/7, phần tường lửa

    2. Tài 10 comment

      VPS của mình chưa cài tường lửa. vậy là phải cài tường lửa trước phải ko bạn

      1. Việt Phương Moderator

        Các VPS đều có tường lửa mặc định, ví dụ CentOS 6 là iptables, CentOS 7 là firewalld. Mình có ghi khá rõ ràng cách allow trong bài viết, bạn đọc đi nhé.

    1. Việt Phương Moderator

      Vấn đề này mình không rõ rồi. Bạn có thể dùng được chrome, firefox bình thường còn mục đích traffic thì mình không rõ

    1. Việt Phương Moderator

      Bạn dùng yum remove tigervnc-server để remove các package đã cài đặt.

  7. Nghĩa 21 comment

    Mấy bạn cho mình hỏi, mình cài đặt VNC trên server 11.11.11.11, vậy làm sao để mình có thể tạo đường dẫn 11.11.11.11/abc.php để có thể truy cập từ bên ngoài vào file này nhỉ? Bạn nào có kinh nghiệm có thể hướng dẫn mình được không? Cảm ơn trước 😀

    1. Việt Phương Moderator

      Bạn cài đặt 1 web server rồi tạo web, thêm file vào thư mục public_html là được. Không cần thiết phải VNC nhé

  8. Hoang 2 comment

    Mình cấu hình theo cách của bạn. Mọi thứ đều Okay. Chỉ đến khi VNC tới VPS thì nó báo như sau: Connection has been gracefully closed
    Giúp mình với

  9. Hoàng 1 comment

    Luân cho mình hỏi mình đã cài LAMP trên centos dịch vụ azure. Nhưng mình ko thể truy cập qua IP của VPS được. Ko biết làm cách nào . Thanks Luân !

  10. thaiaiti 1 comment

    Mình đang cài cwp – control panel, có cài thêm cái này được ko cậu, liệu có ảnh hương j tới dữ liệu và webiste đang chạy ko

  11. thonguyen 8 comment

    toan bi the nay thoi Luan oi : ” Starting VNC server: no displays configured [FAILED] ”

    Help me 🙁

  12. Hoàng 39 comment

    không cài được trên centos 7 thì phải.
    @Luân có bài viết cài vnc trên Centos 7 ko? làm tút cho anh em dùng với. 😀

  13. Hảo Panda 1 comment

    Các bạn bị lỗi ko truy cập đc internet trong quá trình cài đặt gói giao diện vui lòng sử dụng các lệnh sau nhé:
    # service NetworkManager stop
    # chkconfig NetworkManager off
    # chkconfig network on
    # service network start
    # chkconfig –list

  14. Hạt Tiêu 1 comment

    Bạn cho mình hỏi ?

    – Mình cài đặt ok rồi
    – khởi đôngj Service rồi
    – Tắt Firewall rồi

    nhưng khi kết nối bằng phần mền VNC thì báo lỗi “Error in tightVNC viewer no connection could be made because the target machine actively refused it”

    Có thể giúp mình đc ko? mình remote VPS

  15. trí 1 comment

    Chào anh.
    Em đang sử dụng vps vultr, centos os 6, khi em dùng lệnh : yum -y install firefox nano để cài đặt firefox thì nó báo Error downloading packages ….
    Vậy giờ có cách nào để cài firefox vào ko anh.
    Thanks anh.

  16. Le Trí 1 comment

    Hi bác Luân, em em với, em cài như hướng dẫn của bác nhưng không vào đc internet, em xài CentOS 6.5 trên Linode http://imgur.com/7v7i8th

    Bị lỗi gì hay kích hoạt internet trên Linode như thế nào vậy bác. Cảm ơn bác.

  17. Đạt Nguyễn 3 comment

    Chào Luân,
    Cho mình hỏi chút nhé.
    Muốn cài chrome lên VNC Server thì làm thế nào nhỉ?
    Hướng dẫn mình cài đặt dc ko?

    Cảm ơn nhiều

  18. hoang 9 comment

    sau khi cài xong rồi có cách nào download 1 playlist của youtube không bạn? Mình tìm mãi không thấy phần mềm nào cài được trên linux centos cả

  19. kieuphong 1 comment

    Mình hỏi ngoài leed chút nhé,

    Mình remote desktop OK rồi, giờ đến bước cài soft, cụ thể là wmware workstation ( file .bundle) thì không cài được, mình dùng các lệnh như hướng dẫn trên GG cũng không thể nào cài được. Luân có thể chỉ mình cài được ko? Hoặc ở đây có bạn nào biết cách cài chỉ mình với nhé. Thank so much!!!

  20. Chung 1 comment

    Mình làm đúng như hướng dẫn nhưng bị báo timeout khi kết nối. VPS sử dụng là của Vultr bản 64bit.

  21. huy 2 comment

    hi, mình cài như bài trên, đã remote đc nhưng VPS , chạy lần đầu okie. Sau đó khởi động lại VPS thì firefox của VPS không ra internet được. đã tắt tường lửa. nhưng không có phản ứng gì. VNC, Putty đều chạy bình thường

  22. uoc 6 comment

    ý mình nói là cái VNC không có internet luôn. hì
    cái firerox không kết nối được internet

      1. Minh Tien 4 comment

        em cũng bị tình trạng này, chiều truy cập vào vps thì được, nhưng truy cập ra thì không, ví dụ ping google nó cũng ko kết nối được. Lạ thiệt.

  23. Hoàng 39 comment

    Giải quyết vấn đề “VNC password for user vncuser is not configured” như sau:

    vào tài khoản: vncuser bằng:
    su vncuser

    thay đổi mật khẩu vncuser cho vnc viewer bằng:
    vncpasswd

    restart lại vnc

  24. Phong 19 comment

    Đến đoạn khởi động VNC thì
    Starting VNC server: 2:vncuser
    VNC password for user vncuser is not configured
    Bị sao vậy bác LT. Giúp em một tay với bác.

  25. Nguyễn Nam 7 comment

    Anh chơi cho em hỏi. Em làm tất cả đến đoạn khởi động lại VNC thì nó báo Failed “vnc password for user is not configured”. Anh biết lỗi ở đâu không ạ?

  26. Đình Hà 3 comment

    mình dùng VPS azure centos 6.4 khi cài đến lệnh: yum groupinstall “Desktop” -y thì hiện thông báo :
    Error: WALinuxAgent conflicts with 1:NetworkManager-0.8.1-66.el6.x86_64
    You could try using –skip-broken to work around the problem
    You could try running: rpm -Va –nofiles –nodigest
    bạn cho mình hỏi cách khắc phục như nào. Thanks

    1. Hoàng 39 comment

      Bạn thử dùng cái này xem.
      yum groupinstall “X Window System” “GNOME Desktop Environment”

      1. Đình Hà 3 comment

        Cảm ơn sự giúp đỡ của bạn. Mình chạy dòng lệnh đó vẫn bị lỗi:
        –> Finished Dependency Resolution
        Error: WALinuxAgent conflicts with 1:NetworkManager-0.8.1-66.el6.x86_64
        You could try using –skip-broken to work around the problem
        You could try running: rpm -Va –nofiles –nodigest

          1. Đình Hà 3 comment

            Cảm ơn Luân. Nhưng mình thử remove WALinuxAgent-1.3-1.noarch và NetworkManager-0.8.1-34.el6_3.x86_64 thì bị như này:
            [root@lieccon ~]# yum remove WALinuxAgent-1.3-1.noarch
            Loaded plugins: security
            Setting up Remove Process
            No Match for argument: WALinuxAgent-1.3-1.noarch
            Package(s) WALinuxAgent-1.3-1.noarch available, but not installed.
            No Packages marked for removal
            [root@lieccon ~]# yum remove NetworkManager-0.8.1-34.el6_3.x86_64
            Loaded plugins: security
            Setting up Remove Process
            No Match for argument: NetworkManager-0.8.1-34.el6_3.x86_64
            No Packages marked for removal
            Mình cũng hỏi vài người bạn về cài VNC cho azure thì cũng nhận đc câu trả lời là họ cũng ko cài đc :(.
            Dù sao cũng cảm ơn mọi người đã nhiệt tình giúp đỡ 😀