混合 Windows 與 Linux 工作環境
xlivecd
如果您大部分時間在 Windows 下工作, 但偶爾需要用 linux
(例如要用數理教學軟體 Dr. Geo), 可以考慮在
windows 這一頭 (X server 端; 不是應該叫做 client 嗎? ...
以後再解釋) 使用 XLiveCD。 這是免安裝版的 cygwin。 不過推薦改下載另外一片 「thaw-ms: 送自由入微軟帝國」 光碟,
這是我自己包的, 除了原本的 XLiveCD 之外, 裡面還包含一些 Windows
版的教育自由軟體。 至於 linux 伺服器那一頭, 裡面的 sshd 本來就會啟動, 不需要作額外的設定。 在
windows 這一頭, 燒好 thaw-ms 光碟後, 執行光碟上的 run.bat
一直等到出現一個黑底綠字的 xterm。 從這裡下指令: ssh
ckhung@201.202.203.204
這裡當然要把 201.202.203.204 換成您的
linux 伺服器 ip, 把 ckhung 換成您在這部伺服器上的帳號。 登入後,
請試試看執行一些圖形介面軟體 (例如進 gnuplot 下 splot x*x-y*y
)
看看圖形視窗是否丟回本機。 如果出現 "unable to open display,
可能要登出, 再重新連線一次, 這次改用 ssh -X ...
。
rdesktop
相反地, 如果您已習慣在 linux 下工作, 但偶爾還是被迫要回到
windows 底下, 可以考慮用 rdesktop。 它讓您可以從 linux
機器登入遠端的 windows 機器。 它採用的通訊協定是 Remote Desktop
Protocol (RDP)。 首先要啟動 Windows NT Terminal Server 或 Windows
2000/2003 Terminal Services (聽說很簡單, 麻煩教我一下 ... :-)
然後從 Linux 端執行: rdesktop -u ckhung
204.203.202.201
這裡當然要把 ckhung 換成您在 windows
底下的帳號名稱, 並把 201.202.203.204 換成您的 windows 機器 ip
vnc
Virtual Network Computing 則可以讓您從任何一部 windows 或 linux 機器, 遠端登入另外一部 windows 或 linux 機器, 並看到完整的圖形桌面。 VNC 有好幾個版本, 這裡介紹的是 tightvnc。 雖然遠端傳 X 視窗 (例如使用 XLiveCD) 的 granularity 比較細 (可以每個視窗分開來傳), 但是 vnc 的速度卻比較快。 不僅如此, 它還可以當作廣播教學來用。
假設機房裡有一部 Linux 伺服器叫做 trantor.stu.edu.tw, 上面有許多帳號, 包含 amy, bob, cindy, 及老師 zorro; 而電腦教室裡面 amy 正在使用 pc01, bob 用 pc02, cindy 用 pc03, 老師用 pc00。 假設通通都跑 linux 好了。 Windows 應該沒什麼差別吧。 trantor 主機上面應該安裝 tightvnc 的 server; 而教室裡的每部 pc 應該安裝 tightvnc 的 viewer。
首先老師會分配給每位同學一個數字, 例如 amy 分配到 18, bob 分配到
75, cindy 分配到 41 等等。 於是 cindy 可以從 pc03 用 pietty 或
XLiveCD 的 xterm 裡面的 ssh 指令連線到 trantor, 並啟動屬於她自己的
vncserver 如下: vncserver :41 -geometry 800x600
這裡的
-geometry 800x600 用意在指定 (等一下才會看到的) 遠端桌面大小;
省略也沒關係。 於是 vnc 會要求您設定兩個密碼。
第一個密碼要回答兩次; 然後可以選擇不要 "view-only password"
它就不會問第二個密碼。 再從本地機 pc03 開另外一個終端機並打:
vncviewer trantor.stu.edu.tw::5941
(注意: 兩個冒號!)
或更簡單的 vncviewer trantor.stu.edu.tw:41
(注意:
一個冒號!) 開始連線。 用剛才的第一個密碼 0p3r@t0r 登入,
就可以開始操作 trantor 的桌面, 彷彿是從 trantor
的圖形介面登入一樣。
用 vnc 啟動的桌面可能超級陽春, 甚至連視窗管理員都沒有。
這時需要手動啟動, 例如下: icewm &
。
另外, 預設的終端機可能不支援中文。 建議開啟比較先進的終端機,
例如 konsole &
或 gnome-terminal
&
。 中文輸入法也需要手工啟動。
下課前, 結束遠端工作, 要離開 vnc 時, 並不需要按照正常程序登出。
倒是應該把 trantor 上面的 vncserver 關掉,
以節省系統資源並減少暴露在網路環境下的危險。 先下 ps x | grep
-i vnc
看看它的 pid 是多少, 例如是 12345 則用 kill
12345
把它停掉, 此時本地端的 vncviewer
視窗自然也就關掉。
vnc 常見問題集 (FAQ)
- 無法啟動 vncserver, 它說 "A VNC server is already
running as :41"。 這是因為你自己或別人已經在使用 :41 。
請下
ps ux | grep -i vnc
查看自己有沒有在跑 vnc。 如果有一長串 vnc 指令, 那就不需要再在遠端的 trantor 啟動 vncserver, 直接從本地端的 pc03 啟動 vncviewer 即可; 如果沒有東西, 或只出現一句 grep, 那就只好另選一個數字重試啟動 vncserver。 (可以下ps aux | grep -i vnc
看到別人的 vncviewer 佔據了那些數字。) - 我要怎麼知道那些數字已經被佔用? 請下:
ps ax | perl -ne 'print "$1\n" if /vnc.*?:(\d+)/' | sort -n
- 明明已經啟動 vncserver, 為什麼一直連線失敗? 請檢查一下 trantor 上的錯誤訊息檔 ~/.vnc/*.log
- 登入後為什麼一片空白? 可能因為你上次離開時, 沒有用 kill 的方式而是從選單選擇登出, 造成視窗管理員 (window manager) 掛掉了。 請從 pietty 連線裡面下指令檢查 pid 並用 kill 將 vncserver 停掉, 再重新啟動 vncserver。
- 第二次啟動 vncserver, 它就不問我密碼了。 還有機會改密碼嗎? 可以的。 刪除 ~/.vnc/passwd 下次它就會再問你。 或直接打 vncpasswd 改密碼。
- 聽說 vnc 可以用來廣播教學, 也可以讓遠方的朋友看到我的畫面? 是的, 這就是當初啟動 vncserver 時 (或是後來下 vncpasswd 修改密碼時) 所謂 "view-only password" 的意思。 如果有指定這個密碼, 就可以將這個密碼給學生或遠端的朋友, 他就可以連到你的 vncserver, 但只能看, 不能操作滑鼠鍵盤。 另外 iTALC 則是以 vnc 為基礎, 專門為廣播教學所設計的軟體。
其他方案
colinux, wine, ies4linux, Live USB, ...
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/sa/crosspf.php; 您所看到的版本: February 14 2012 10:32:25.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。