1

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Lưu ý: dành cho bạn nào đã dùng Linux 1 thời gian, biết dùng ssh, putty. Máy Linux không chạy trên zone DMZ, nằm sau tường lửa.

Bạn có một mớ máy tính, cái dùng Window, cái xài Linux, vứt lăn lóc trong phòng. Mỗi lần cần dùng cái gì đó trên máy linux, bạn lại chạy putty để ssh vào.

Nhưng mà cái màn hình console đen sì của putty thật là chán. Bạn muốn chạy một ứng dụng X (như OpenOffice, Firefox, etc ...), lại phải ỳ ạch đi tìm cái máy có Linux, cắm màn hình, bàn phím vào, thật vất vả.

Thật ra bạn không cần phải vất vả như vậy, vẫn có thể chạy ứng dụng X trên Linux từ xa ngay trên máy Windows, chỉ cần có 1 XServer là đủ, ví dụ như Xming. Bài này minh hoạ sử dụng distro Ubuntu Feisty (7.04), nhưng thật ra bất kỳ distro nào cũng vậy, miễn là XWindow có chạy trên distro đó

1. Download và cài XMing lên Windows từ http://sourceforge.net/projects/xming . Bạn sẽ cần Xming-setup và Xming-fonts

2. Download putty về từ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Xong.

Giờ có nhiều trò vui khác nhau:

1. Trò vui đơn giản nhất: chạy một ứng dụng X trên Linux từ Windows, sử dụng ssh tunnel với X-forwarding.

a. Chạy XMing (Xming, không phải XLauch, đừng có nhầm!!!) Chạy Xming tưng ứng với sử dụng XLauch với cấu hình Multiple windows

Để ý cái icon của XMing: XMing Server:0.0 : XServer đã được chạy ở location 0

b. Chạy putty, chọn option SSH --> Connection --> X11 --> Enable X11 Forwarding rồi kết nối vô server

http://dinhquangninh.free.fr/pub/shot/putty.JPG

c. Xong rồi, sau khi login vô máy linux bằng putty, chạy thử gedit, firefox, openoffice hay cái gì đó rồi coi chuyện gì xảy ra.

Lưu ý ứng dụng hoàn toàn chạy trên máy Linux, nên đôi khi vẽ hơi chậm. Lúc mở hay lưu file, file cũng được mở / lưu trên Linux, ko có liên quan gì đến máy Windows cả.

2. Trò vui hơn 1 tí : chạy gnome-session từ Windows.

a. Chạy XLauch, chọn Option One Window, nếu đã chạy Xming trước đó thì chọn Display number khác, ví dụ : 1 --> Start no client --> Next --> Next --> Finish.
==> Một cửa sổ to đùng hiện lên, dành chỗ cho ứng dụng X sau đó.

b. Chạy putty, chọn option SSH --> Connection --> X11 --> Enable X11 Forwarding, X Location là display number đã chọn ở trên, rồi kết nối vô server.

c. Xong rồi, giờ chơi trò cũ chạy gedit cũng được, nó sẽ hiện trên cái window ở trên. Nhưng trò đó không vui. Chạy thử gnome-session xem!

http://dinhquangninh.free.fr/pub/shot/xming.JPG

3. Hai trò trên không vui, chơi trò khác đi!

Trò vui hơn : mở XDMCP session ngay trên Windows mới vui! Có nghĩa là bạn sẽ thấy một cửa sổ yêu cầu nhập username, password y chang như bạn đang ngồi trước màn hình graphic Linux, rồi login vô nó cũng chạy gnome-session! Độc thiệt.

a. Chạy gdmsetup trên Linux (bằng cách nào : tuỳ bạn, thích ngồi tại chỗ trên Windows thì connect từ xa vào với X-Forwarding, rồi chạy gdmsetup, nếu không thì chạy đi tìm cọng dây màn hình bàn phím cắm vô Linux mà làm). Lưu ý sẽ cần phải dùng quyền root (sudo)

b. Chọn thẻ "Remote" --> Style --> Same as Local

c. Chọn thẻ Security --> bỏ chọn deny TCP connection to XServer

d. Restart lại X (đơn giản nhất là Restart lại cả Linux nếu bạn ko biết restart X nghĩa là sao).

e. Chạy XLauch trên Windows, chọn cái gì cũng được trừ multiple Windows (tui chọn One Windows) --> Open Session via XDMCP --> Connect to host: gõ IP của server vào (hoặc search for host (broadcast)) cũng được. Save lại thành 1 file .xlauch để lần sau chạy cho dễ --> Finish

f. O hô, màn hình login của Linux hiện ra, gõ thử Username + password vô coi!!!

http://dinhquangninh.free.fr/pub/shot/xming-xdmcp.JPG

Còn rất nhiều trò vui với XMing, X-forwarding, ssh tunnel, bla bla bla ... bạn tự khám phá thử xem ?

Rảnh rỗi hôm nào sẽ tán dóc về ssh tunnel, tui chuyên dùng để vượt rào, map service trên server về nhà để xài, nói chung cũng rất là .. fun. Ví dụ: có bao giờ bạn nghĩ có thể chạy google search bằng cách gõ .... http://localhost ngay trên address bar chưa ? Trò đó cho vui, chứ có nhiều tiện ích dùng ssh tunnel hấp dẫn hơn nhiều.

Lời nói chẳng mất tiền mua,
Lựa lời mà nói cho vừa lòng nhau.

2

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Merci Deptrai smile

Tôi vẫn dùng putty+Xming hằng ngày @work, không thể có giải pháp OSS nào gọn nhẹ và hữu hiệu hơn thế smile Từ ngày dùng Xming, công ty đã tiết kiệm được một khoản đáng kể cho việc mua license Exceed/Xwin-32 trước đây.

"La photographie est une brève complicité entre la prévoyance et le hasard." John Stuart Mill

3

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Đề nghị bạn Deptrai không nên quảng cáo bằng mấy cái 'vượt rào' tongue

Không có gì quí hơn Độc Lập - Tự Do
-- Hồ Chí Minh

4

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

He he, thực hiện ý kiến chỉ đạo của đảng bộ, không hướng dẫn 'vượt rào' một cách quá rõ ràng wink

Lời nói chẳng mất tiền mua,
Lựa lời mà nói cho vừa lòng nhau.

5

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

4. Xming + Xnest = fun

Trong 3 trò vui kể trên, trò thứ 3 là trò ... không an toàn:
a. Vì phải mở TCP connection, đặc biệt nguy hiểm nếu máy cài Linux nằm trên zone DMZ, hoặc ko có tường lửa bảo vệ.
b. Vì cả 2 phải cùng trong mạng, hoặc chí ít là giữa chúng không có gì phân cách.
c. Dự liệu truyền giữa 2 máy ko được bảo vệ, tín hiệu "en claire".

Ngoài ra, phải mở Xming ở dạng một màn hình, và chỉ mở được 1 cửa sổ cho 1 XSession thôi.

Có một trò khác, vui hơn, an toàn hơn, đó là dùng Xnest.

Nói một cách ngắn gọn, Xnest là 1 ứng dụng cho phép mở 1 XSession trong 1 cửa sổ của 1 XWindow khác. Nói vậy cũng không dễ hiểu lắm, giờ chúng ta sẽ tìm hiểu Xnest bằng ứng dụng cụ thể.

Trước tiên hãy bắt đầu bằng việc cài Xnest. Nếu bạn xài Debian/ Ubuntu, hãy (sudo) apt-get install Xnest. Nếu bạn xài Fedora, thử yum Xnest. Nếu bạn xài distro khác, dùng package manager của distro đó mà cài vào, chả phải tội gì mà download source về compile chi cho nó khổ.

4.1 Xnest trong môi trường XWindow local.
Bạn đang trong môi trường X quen thuộc (Gnome, KDE...), thử mở 1 console lên rồi gõ

 Xnest :1 -query localhost

. Nó sẽ hiện lên cửa sổ XDMCP đăng nhập quen thuộc! Hãy nhập 1 username / password trong hệ thống vào, ô la, bạn đã có 1 XSession trong 1 của sổ của 1 XSession!!

Lưu ý thay :1 bằng display number của bạn sao cho ko có display number nào trùng nhau. Nghĩa là nếu bạn mở thêm 1 XSession nữa thì thay Xnest :1 bằng Xnest :2 ...

4.2 Mở XDMCP đến 1 máy Linux khác

Giả sử có một máy Linux trong hệ thống của bạn cho phép mở 1 XSession thông qua TCP connection (xem bài 3 ở trên, làm sao để enable TCP Connection đến X), thử

 Xnest :1 -query IPCuaMay

. Tóm lại có thể query đến bất cứ máy nào chấp nhận TCP Connection đến X! Làm sao để biết máy có mở không ? Install nmap vào, query xem

 nmap -P 6000 IPcuamay

(port của X là 6000).

4.3 Xnest qua hầm SSL

Trò thứ 4.2 dĩ nhiên không an toàn, vì dữ liệu X chạy "en claire". An toàn hơn thì ta sẽ cho dư liệu ... chui hầm. Đặc điểm của phương pháp này là bạn không cần phải mở TCP connection đến X nữa, nhưng sẽ chậm hơn 1 chút vì dữ liệu X cần được mã hoá.

Đầu tiên cần ssh đến máy muốn mở XSession:

ssh -X tenban@tenHoacIpCuaMay

-X là để forwarding X đến máy bạn. Nhiều người lại thích dùng ... -Y. man ssh để biết thêm về XY.

Sau đó chỉ cần mở Xnest trên máy kia như thường lệ

Xnest :1 -query localhost

4.4 Ê tui xài Windows mà, trò khác đi!

Đây đây, sự kết hợp tuyệt vời giữa XMing + ssh (putty) + XNest :

1. Mở XMing lên! (Xem bài 1), dạng MultiWindows nhé! Bạn sẽ thấy cái icon X ở góc màn hình.

2. Mở putty lên, nhớ chọn X-Forwarding (lại xem bài 1), với display number trùng với display number của XMing.

3. Sau khi ssh vào máy Linux rồi, chỉ cần chạy Xnest là xong

Xnest :1 -query localhost

Tóm lại:
- Xnest là solution tuyệt để mở XSession trong một  cửa sổ của 1 XSession khác.
- Có thể mở nhiều của sổ Xnest cùng 1 lúc chỉ trên 1 cửa sổ lệnh
- Có thể query XDMCP của một máy khác trong mạng
- (Dĩ nhiên) có thể forward của sổ Xnest về một Xserver khác thông qua tunnel ssh.

Với phương pháp 4.4, bạn có 1 solution tốt để "remote desktop" đến Linux từ Windows, mà lại rất an toàn.

Chú vui vẻ.

Lời nói chẳng mất tiền mua,
Lựa lời mà nói cho vừa lòng nhau.

6

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Tóm lại:

Vấn đề tồn tại duy nhất của phương pháp tuyệt vời này, là một vấn đề vô cùng tế nhị, bởi vì sếp em không thích có 3 chữ "X" ở cái khay chứa cái đồng hồ khi đi qua nhìn vào màn hình của em...

http://dinhquangninh.free.fr/pub/shot/xming-xdmcp.JPG

Last edited by PrincessBubble (05/10/2007 04:42)

7

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Mình đã thử ngay lập tức "trò vui số 1" theo đúng hướng dẫn, nhưng không cho kết quả big_smile. Ví dụ khi gõ gedit & thì vẫn là những thông báo của putty kiểu (gedit:20652): Gtk-WARNING **: cannot open display:
  Mong được hướng dẫn ...

8

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Chắc là quên "Enable X11 forwarding" rồi smile

http://farm3.static.flickr.com/2214/2137042437_8748301550_o.png

"La photographie est une brève complicité entre la prévoyance et le hasard." John Stuart Mill

9

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Không hiểu có mấy bản putty nữa, giao diện của mình là thế này :

http://maxupload.com/img/F1FD8ACD.jpg

  Mình đã đọc tut của Xwing để điền thêm cái localhost:0 nhưng cũng không có phép lạ nào xuất hiện cả sad(

http://maxupload.com/img/B8EACB26.jpg

10

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Trên server của bạn có X hông? Bạn connect trực tiếp đến cái server hay còn phải tunnel qua 1 server khác?

Lời nói chẳng mất tiền mua,
Lựa lời mà nói cho vừa lòng nhau.

11

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

@ TLHP :
1. Trên máy Windows (nơi mà bạn chạy putty) đã có [wiki]Xming[/wiki] chạy chưa ? Bạn dùng default setting của Xming hay có thay đổi gì không ?
2. Từ máy remote (Linux) bạn có ping được máy Windows theo hostname không ? hay là chỉ ping được theo IP ?

"La photographie est une brève complicité entre la prévoyance et le hasard." John Stuart Mill

12

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

@Crank Ninja : Trên server có X, và mình connect trực tiếp tới server
@vnpenguin : Như trên hình ở trên thì mình đã chạy Xming ( Icon dấu X cạnh Y!M ), Còn về Xming thì mình chẳng thấy cái Còniguration nào cả ( ngoài việc chạy XLaunch để chọn Multiple Windows )
  Bạn có thể chỉ rõ hơn việc ping máy windows theo hostname được không, khoản này mình không biết cách làm big_smile

Cám ơn mọi người đã trả lời bài, đến hôm nay mới vào lại được :x

13

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

Các bác mới chỉ cho anh em cách MỞ các thứ với xming, xnest, putty , nhưng chưa chỉ cách ĐÓNG thế nào cho lịch sự với linux, để nó không cằn nhằn, không lag, không bị rác rến tiến trình và bộ nhớ. Các bác chỉ thêm đi.

Điểm nữa là: làm thế nào giảm độ phân giải, giảm số bit màu xuống, vì mình remote các máy tính qua mạng, hoặc qua mạng Internet, mình không cần màu 32bit truecolor long lanh làm gì cho mệt, chỉ cần greyscale là đủ rồi, các bác chỉ nốt nhé.

Thanks

14

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

lockevn viết:

Điểm nữa là: làm thế nào giảm độ phân giải, giảm số bit màu xuống, vì mình remote các máy tính qua mạng, hoặc qua mạng Internet, mình không cần màu 32bit truecolor long lanh làm gì cho mệt, chỉ cần greyscale là đủ rồi, các bác chỉ nốt nhé.

Thanks

Xem: http://www.straightrunning.com/XmingNotes/manual.php
Chú ý đến tuỳ chọn "-depth"

"La photographie est une brève complicité entre la prévoyance et le hasard." John Stuart Mill

15

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

-depth chỉ có tác dụng với dạng fullscreen thôi, mà mình hay dùng (và thấy tiện hơn) là one windows.


Thanks bác

Vậy còn việc đóng như thế nào thì tốt, bác chỉ giúp. Hiện mình toàn phải Ctrl C ở putty, rồi đóng phập màn hình Xming lại (nó toàn báo còn client connect, process shutdown displayer/server?) . Không biết có lag hay rác bộ nhớ ko, nhưng nhìn không fair lắm với nó.

Last edited by lockevn (11/12/2008 14:26)

16

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

chào mọi người!~ smile
Mình làm mấy bữa nay mà vẫn chưa được. Thật sự thì có đọc X server trên wiki nhưng vẫn chưa nắm  hết. Có lẽ vậy nên chưa được. Nên mới vô đây hỏi nè big_smile

Mình đang xài CoLinux. Card mang của máy này là 192.168.43.2. Mình đã  cài tất cả, làm theo wiki nhưng vẫn chưa được. Mình đã có thể xem máy ảo bằng VNC, tức là phần Display Manager ổn rồi phải không ?


- Ở windows Xp, mình chạy Xming.exe . File X0.hosts chứa địa chỉ 192.168.43.1 . Đây là địa chỉ máy windows XP.
- Sau đó, mình chạy Putty bản 0.60, làm như các bạn đã chỉ.
- Ở cửa sổ Putty,
---- gõ DISPLAY=192.168.43.1:0.0
---- gõ gedit thì 0 thấy gì hết. Lâu thiệt là lâu thì thông báo là  Gtk-WARNING **: cannot open display: 192.168.43.1:0.0

Vậy làm sao? Máy CoLinux đang xài distro Fedora 10.

Ở Putty,.... phần X11 / X display location, mình có thử để là localhost:0 nhưng vẫn 0 được.

Khi chạy xming.exe, xem file log bằng cách click phải chuột ở biểu tượng nằm system tray thì mình thấy có dòng này, 0 biết có nghĩa là gì
XdmcpRegisterConnection: newAddress 192.168.0.1
Xming was started with the following command line...
C:\Program Files\Xming\Xming.exe

Last edited by thuongshoo (01/04/2009 00:00)

17

Re: Vui chơi với Xming: chạy ứng dụng X từ Windows

bữa nay xài thử cái máy fedora thiệt của cty thì ok rồi! chả làm gì hết! biến DISPLAY ở máy Linux giữ nguyên. Chạy gnome-session thì tiếc là các panel điều khiển không hiển thị được.