<![CDATA[Latest posts for the topic "Cấu hình VNC server/viewer trong Linux"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Cấu hình VNC server/viewer trong Linux Phần 1: Cấu hình VNC server/viewer Nguồn: http://www.bobpeers.com/linux/vnc.php (Bài viết được minh hoạ với CentOS 5 - server và Fedora 8 - client) VNC - Virtual Networked Computing là một cách kiểm soát máy tính từ xa như là khi bạn ngồi trước nó. Trong thế giới Windows nó được biết đến với tên gọi remote desktop. Bước 1: Enable Remote desktop Vào System -> Preferences -> Internet and Network -> Remote Desktop. Đánh dấu chọn vào Allow other users to view your desktop và Require the users to enter this password -> sau đó nhập password vào
Bước 2: Kiểm tra xem vnc và vnc-server đã được cài chưa Code:
$ rpm -qa | grep vnc
vnc-server-4.1.2-23.fc8
vnc-4.1.2-23.fc8
Nếu chưa hãy cài chúng qua yum Bước 3: Thêm users Mở /etc/sysconfig/vncservers với quyền root và bỏ chú thích 2 dòng cuối để trở thành:
# The VNCSERVERS variable is a list of display:user pairs. # # Uncomment the lines below to start a VNC server on display :2 # as my 'myusername' (adjust this to your own). You will also # need to set a VNC password; run 'man vncpasswd' to see how # to do that. # # DO NOT RUN THIS SERVICE if your local area network is # untrusted! For a secure way of using VNC, see # <URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html>. # Use "-nolisten tcp" to prevent X connections to your VNC server via TCP. # Use "-nohttpd" to prevent web-based VNC clients connecting. # Use "-localhost" to prevent remote VNC clients connecting except when # doing so through a secure tunnel. See the "-via" option in the # `man vncviewer' manual page. VNCSERVERS="1:quanta" VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"  
Dòng VNCSERVERS="1:quanta" sẽ sets up một user cho vnc server, bạn có thể thêm bao nhiêu users tuỳ ý. Dòng VNCSERVERARGS[1] set các tham số cho user 1 Chú ý rằng: session number user cũng nói cho chúng ta biết cổng mà vncserver sẽ lắng nghe. Nhớ rằng, Gnome Remote Desktop hỏi chúng ta để sử dụng computername:0 như một chuỗi kết nối, session number sẽ được cộng thêm 5900 để ra cổng mà vncserver sẽ lắng nghe. Trong trường hợp này chúng ta cần sử dụng cổng 5901, nên chúng ta dùng session 1. Bạn có thể sử dụng bất kỳ số nào, ví dụ:
VNCSERVERS="2000:bobpeers" VNCSERVERARGS[2000]="-geometry 1024x768 -depth 16" 
Lúc này thì chúng ta phải dùng cổng 7900 Bước 4: Đặt password Để tăng độ bảo mật, bạn cần thêm 1 password trước khi kết nối được thi hành, từ Terminal gõ: Code:
$ vncpasswd
Password:
Verify:
Lệnh này sẽ tạo 1 thư mục ẩn với tên gọi .vnc trong home, để chứa password file Bước 5: Khởi động server với các tuỳ chọn Để khởi động server, bạn gõ "vncserver" kèm theo session mà bạn muốn khởi động (nếu bạn gán nhiều hơn 1 entry trong /etc/sysconfig/vncservers) Code:
$ vncserver :1

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

Starting applications specified in /home/quanta/.vnc/xstartup
Log file is /home/quanta/.vnc/localhost.localdomain:1.log
Lúc này server đã khởi động và bạn có thể kết nối được rồi, tuy nhiên rất có thể bạn chỉ có được 1 màn hình xám xịt, bởi theo mặc định kết nối không tạo một session mới của X để khởi động.
Để khắc phục hiện tượng này, chúng ta cần chỉnh lại startup script trong $HOME/.vnc như sau:
$ vi ~/.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 & 
Tiếp theo bạn cần restart vncserver để thay đổi có hiệu lực: Code:
$ vncserver -kill :1
Killing Xvnc process ID 13728
Code:
$ vncserver :1
New 'localhost.localdomain:1 (quanta)' desktop is localhost.localdomain:1

Starting applications specified in /home/quanta/.vnc/xstartup
Log file is /home/quanta/.vnc/localhost.localdomain:1.log
Bước 6: Sử dụng vncviewer Code:
$ vncviewer 192.168.1.3:5901
Lệnh này sẽ mở một hộp thoại để bạn nhập password:
Nhập password và Enter, bạn sẽ thấy màn hình của CentOS 5:
Dừng vncserver Có 2 cách: Code:
$ /sbin/service vncserver stop
Shutting down VNC server: 1:quanta                       [  OK  ]
Code:
$ vncserver -kill :1
Killing Xvnc process ID 13728
Cho phép kết nối từ xa Nếu muốn cho phép kết nối từ xa thì bạn phải thực hiện như sau: Add port System -> administration -> Firewall and Linux -> chọn Firewall Options tab
-> Other ports -> Add button, nhập 5901 với giao thức là tcp -> OK
Chỉnh sửa iptables để mở cổng
$ sudo vim /etc/sysconfig/iptables -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT  
Restart lại iptables service Code:
$ sudo /sbin/service iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_n[  OK  ]
Cuối cùng, các bạn nhớ NAT port 5901 trên modem và thử kết nối: Code:
$ vncviewer <public_IP_address>:5901
Nếu việc kết nối chậm, bạn có thể chỉnh lại depth color hoặc screen resolution trong /etc/sysconfig/vncservers]]>
/hvaonline/posts/list/16417.html#98434 /hvaonline/posts/list/16417.html#98434 GMT
Re: Cấu hình VNC server/viewer trong Linux Phần 2: Cấu hình VNC qua SSH Nguồn: http://www.bobpeers.com/linux/vnc_ssh 1. Khái quát về VNC qua SSH Một phần vì password kết nối qua VNC không được bảo mật cũng như tất cả lệnh, và thông tin không được mã hoá qua kết nối. Trong một mạng LAN ở nhà, đó không phải là vấn đề lắm, nhưng tôi khuyến cáo rằng, bạn không nên thực hiện nó qua mạng Internet. Trong bài viết này bạn sẽ học cách kết nối từ Fedora client đến CentOS server chạy vncserver. 2. Yêu cầu Linux host Máy chủ của bạn phải đang chạy vncserver, và openssh server đã được cài đặt Code:
# rpm -qa | grep openssh-server
openssh-server-4.3p2-16.el5
Linux client machine Bạn đã cài openssh, có thể check như sau: Code:
$ rpm -qa | grep openssh
openssh-askpass-4.7p1-2.fc8
openssh-clients-4.5p1-6.fc7
openssh-4.7p1-2.fc8
openssh-askpass-4.5p1-6.fc7
openssh-clients-4.7p1-2.fc8
openssh-4.5p1-6.fc7
openssh-server-4.5p1-6.fc7
openssh-server-4.7p1-2.fc8
3. Cài đặt trên máy chủ Chỉnh sửa /etc/hosts.allow Trên CentOS, theo mặc định thì không cho phép bất kỳ kết nối nào đến dịch vụ ssh. Để cho phép client có thể kết nối đến server bạn cần chỉnh /etc/hosts.allow và thêm vào dòng sau: Code:
#
# hosts.allow   This file describes the names of the hosts which are
#               allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
sshd:192.168.1.2
Phần 192.168.1.2 chính là địa chỉ IP của máy client. Nếu muốn bạn có thể dùng sshd:ALL để cho phép bất kỳ kết nối nào đều có thể truy cập. Opening ports Tiếp theo chúng ta cần mở cổng trên firewall để dịch vụ ssh có thể lắng nghe trên đó, theo mặc định cổng này là 22. Code:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
Khởi động lại iptables để thay đổi có hiệu lực: Code:
# sudo /sbin/service iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_ns ip_conntrack_ftp                                          [  OK  ]
Khởi động dịch vụ ssh và vncserver Code:
# sudo /sbin/service sshd start
Starting sshd:                                             [  OK  ]
Code:
# vncserver :1 192.168.1.3

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

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
4. Cài đặt trên client Để cài đặt port forwarding trên Linux, bạn mở terminal và gõ: Code:
$ ssh -N -T -L 5901:192.168.1.3:5901 &
Lệnh này forwards cổng 5901 trên local (Fedora) đến cổng 5901 trên server (CentOS). Phần 192.168.1.3 chính là địa chỉ IP của server. Các tham số còn lại: -L: tuỳ chọn forward cổng của local -N: tuỳ chọn để ngăn cản shell từ việc mở cổng, do đó bạn không thể thi hành lệnh -T: tuỳ chọn để disable pseudo-tty allocation 5. Kết nối qua ssh tunnel Lúc này, ssh tunnel đã được tạo và bạn có thể sử dụng vncviewer để kết nối qua tunnel này. Code:
$ vncviewer 192.168.1.3:5901
Như thường lệ, sau khi nhập password một vnc session sẽ được tạo nhưng lúc này tất cả các dữ liệu gửi giữa 2 máy đã được mã hoá qua ssh Một cách kết nối khác Trong ~/.ssh/config, bạn thêm vào những dòng sau: Code:
Host 192.168.1.3
     User quanta
     Port 2234 (giả sử bạn đã đổi port mặc định)
chmod 600 cho file này: Code:
$ chmod 600 ~/.ssh/config
Sau đó bạn chạy vncviewer với tùy chọn -via (tùy chọn này sẽ tạo một tunnel được mã hóa trước khi kết nối): Code:
$ vncviewer -via 192.168.1.3 192.168.1.3:1
Nhập password cho user quanta, sau đó nhập tiếp password cho VNC, kết nối được thi hành.]]>
/hvaonline/posts/list/16417.html#98689 /hvaonline/posts/list/16417.html#98689 GMT
Re:Cấu hình VNC server/viewer trong Linux /hvaonline/posts/list/16417.html#98785 /hvaonline/posts/list/16417.html#98785 GMT Re:Cấu hình VNC server/viewer trong Linux

antiw007 wrote:
Tớ đã làm nhiều lần trên desktop của tớ, nhưng X windows load images rất chậm không hiểu do video card của vncserver yếu (GeForce 440 MX 64 MB) hay vì vncviewer chạy trên Windows. Tớ muốn cắm cái màn hình ngoài vào cái laptop rồi chạy vncviewer trên cái màn hình đấy cho tiện (2 máy nối cùng 1 HUB). Một bàn fím, 1 chuột để làm việc với 2 máy (laptop - wins, desktop - linux), nhưng chậm quá, thà chuyển qua chuyển lại giữa 2 cái bàn fím, 2 chuột còn hơn. Mọi người dùng thì thấy thế nào? 
hi ku, Tớ chạy vncviewer từ con laptop (Fedora 8) sang con desktop (CentOS 5) thấy cũng hơi chậm thôi. Khi mình vừa remote vào, sẽ có 1 lớp "cuộn sóng" của màn hình từ trên xuống dưới, hehe. Mọi thao tác sau đó diễn ra bình thường, nói chung ok.]]>
/hvaonline/posts/list/16417.html#98801 /hvaonline/posts/list/16417.html#98801 GMT
Re: Cấu hình VNC server/viewer trong Linux /hvaonline/posts/list/16417.html#177977 /hvaonline/posts/list/16417.html#177977 GMT Re: Cấu hình VNC server/viewer trong Linux /hvaonline/posts/list/16417.html#178243 /hvaonline/posts/list/16417.html#178243 GMT Re: Cấu hình VNC server/viewer trong Linux

rosewhite wrote:
Anh cho em hỏi, em đã làm đi làm lại chục lần với cái server của mình theo cách của anh và ở đây http://www.erpvn.com/index.php?option=com_kunena&Itemid=94&func=view&catid=13&id=170&lang=en và ở đây http://hackingart.com/bao_mat_tren_centos/30-config_firewall_tren_centos.html nhưng vẫn cứ bị màn hình đen xì ra. Đã thử mở port bằng cách edit file iptables nhưng không được, nó cứ báo lỗi ở line 1. Em đã open port bằng cách dùng chế độ đồ họa có hướng dẫn trong http://hackingart.com/bao_mat_tren_centos/30-config_firewall_tren_centos.html. Nhưng vẫn cứ bị màn hình màu đen. Server ở US cài Centos. Mong anh giúp đỡ 
- Máy client chạy hệ điều hành gì vậy bạn? - Log file trong .vnc có nội dung ra sao? - Trong file xstartup bạn đã sửa thành cái window manager tương ứng chưa, chẳng hạn:
unset SESSION_MANAGER gnome-session &  
- SELinux trên server thế nào? - ... ]]>
/hvaonline/posts/list/16417.html#178273 /hvaonline/posts/list/16417.html#178273 GMT
Re: Cấu hình VNC server/viewer trong Linux /hvaonline/posts/list/16417.html#178915 /hvaonline/posts/list/16417.html#178915 GMT Cấu hình VNC server/viewer trong Linux VNCSERVERS="1:quanta" VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"   Nếu muốn thêm 1 user không có quyền root thì có được không bác Quân? Sẽ cấu hình thêm ntn?]]> /hvaonline/posts/list/16417.html#237458 /hvaonline/posts/list/16417.html#237458 GMT Cấu hình VNC server/viewer trong Linux

van_security wrote:
VNCSERVERS="1:quanta" VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"  
Nếu muốn thêm 1 user không có quyền root thì có được không bác Quân? Sẽ cấu hình thêm ntn? 
Được. Bạn thêm 2 dòng tương tự như thế với cổng khác.]]>
/hvaonline/posts/list/16417.html#237460 /hvaonline/posts/list/16417.html#237460 GMT
Cấu hình VNC server/viewer trong Linux
Các file trên linux server của em như sau # vi /root/.vnc/xstartup Code:
#!/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 &
# vi /etc/sysconfig/vncservers Code:
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
# rpm -qa | grep vnc Code:
vnc-server-4.1.2-14.el5
vnc-4.1.2-14.el5
xorg-x11-server-Xvnc-source-1.1.1-48.52.0.1.el5
Mong anh giúp đỡ. Cảm ơn anh nhiều.]]>
/hvaonline/posts/list/16417.html#253476 /hvaonline/posts/list/16417.html#253476 GMT
Cấu hình VNC server/viewer trong Linux /hvaonline/posts/list/16417.html#253483 /hvaonline/posts/list/16417.html#253483 GMT Cấu hình VNC server/viewer trong Linux

soidamientrung wrote:
Các file trên linux server của em như sau # vi /root/.vnc/xstartup Code:
#!/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 &
 
Trong file xstartup này comment sửa lại như sau Code:
#twm &
gnome-session &
Ra ngoài kill session hiện tại đang của vnc đi (dùng vncserver -kill) rồi start lại xem có gì xảy ra ko]]>
/hvaonline/posts/list/16417.html#253493 /hvaonline/posts/list/16417.html#253493 GMT
Cấu hình VNC server/viewer trong Linux

K4i wrote:
Trong file xstartup này comment sửa lại như sau Code:
#twm &
gnome-session &
Ra ngoài kill session hiện tại đang của vnc đi (dùng vncserver -kill) rồi start lại xem có gì xảy ra ko 
Cảm ơn anh @K4i và anh @quanta đã reply giúp đỡ. Sau khi thêm lệnh gnome-session & vào file xstartup thì đã vncviewer tới được linux server với màn hình desktop. Em cũng google, có trang thì dùng lệnh twm & có trang thì dùng lệnh startx & , còn trường hợp này thì phải dùng gnome-sesion & mới thành công. Các anh có thể chỉ cho em một tí nữa để rõ hơn không. Thật sự là em chưa hiểu khi nào thì dùng lệnh nào. Thanks, HaiMT2. ]]>
/hvaonline/posts/list/16417.html#253541 /hvaonline/posts/list/16417.html#253541 GMT
Cấu hình VNC server/viewer trong Linux gnome-session & là câu lệnh yêu cầu vncserver bật một phiên làm việc phục vụ giao diện GNOME cho bạn. twm thì bật giao diện X11 Window Manager lên cho một phiên làm việc của vnc. startx thì sẽ bật giao diện đồ hoạ mặc định mà hệ thống đang thiết lập. Việc sử dụng 3 câu lệnh này thì tuỳ thuộc vào việc bạn biết trình quản lý cửa sổ (window manager) mà linux box đang cài đặt là cái gì. Thông thường như mình khi cài CentOS thường chỉ cài X11 Window, thế nên mình có thể dùng twm hoặc startx thì giao diện trả về cũng sẽ chỉ là giao diện của X11 là mành hình xanh lè bạn nhìn thấy ban đầu. Trong trường hợp này thì chạy gnome-session & cũng vô hiệu Nếu như máy bạn cài sẵn GNOME thì có thể sử dụng twm hoặc gnome-session đều được. Theo mình, nếu như ít kinh nghiệm làm việc với X11 window manager thì trong quá trình cài đặt nên cài sẵn GNOME và dùng lệnh gnome-session Dấu & là lệnh yêu cầu chuyển process này về chạy ở background ]]> /hvaonline/posts/list/16417.html#253547 /hvaonline/posts/list/16417.html#253547 GMT Cấu hình VNC server/viewer trong Linux VNCSERVER="1:root" VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"  rpm -qa | grep vnc
vnc-server-4.1.2-14.el5 vnc-4.1.2-14.el5 xorg-x11-server-Xvnc-source-1.1.1-48.52.0.1.el5 
Lạ thật????]]>
/hvaonline/posts/list/16417.html#253733 /hvaonline/posts/list/16417.html#253733 GMT
Cấu hình VNC server/viewer trong Linux Code:
$ runlevel
- nếu là runlevel 5, kiểm tra tiếp xem những desktop environment nào đã được cài: Code:
$ find /usr/share/xsessions/ -name "*.desktop" -exec basename "{}" .desktop \;
từ đó tính tiếp.]]>
/hvaonline/posts/list/16417.html#253740 /hvaonline/posts/list/16417.html#253740 GMT
Cấu hình VNC server/viewer trong Linux [root@erplab02 ~]# runlevel N 3 [root@erplab02 ~]# uname -a Linux erplab02.com.vn 2.6.18-128.el5 #1 SMP Wed Jan 21 08:45:05 EST 2009 x86_64 x86_64 x86_64 GNU/Linux  Cảm ơn anh quanta đã giúp em. ]]> /hvaonline/posts/list/16417.html#253823 /hvaonline/posts/list/16417.html#253823 GMT Cấu hình VNC server/viewer trong Linux /hvaonline/posts/list/16417.html#253843 /hvaonline/posts/list/16417.html#253843 GMT Cấu hình VNC server/viewer trong Linux [root@erplab02 ~]# init 5 [root@erplab02 ~]# runlevel 3 5  mong bạn chỉ giúp. ]]> /hvaonline/posts/list/16417.html#253898 /hvaonline/posts/list/16417.html#253898 GMT Cấu hình VNC server/viewer trong Linux /hvaonline/posts/list/16417.html#267368 /hvaonline/posts/list/16417.html#267368 GMT