在 cygwin 下使用 x server
剛學會 ssh -X
選項,能遠端用 shell 登入,
再加上 X window 的圖形介面。
之後為了在 windows 下也能用,
得裝了一個 windows 下的 x server,
就挑 cygwin 的,是能用,但有點慢。
cygwin
cygwin 要裝 X X.cygwin 官網的手冊 已有詳細說明, 大概就是 X11 分類中要勾選 x server 和 x init 二個包, 其它相依的會自己裝好。 這裡是裝 x server 而己,不是裝 desktop, 所以裝起來沒有 gnome、window mananger 之類的, 只能啟動一個 xterm 或開 xclock。
裝完要啟動可以打 startxwin
開始,
或裝完產生的圖示 x win server。
之後 x server 會出現在 windows 通知欄裡,
可以從那裡關掉或開 xterm 或 cygwin,
裡面的 DISPLAY
就是 x window 的了,
能直接執行 xclock 或 ssh -Y。
cygwin 裝完出現的啟動圖示, 有一個是 user script,不知道是幹麻的, 可能是啟動 desktop 的, 總之我按了沒用,也沒裝 desktop。
ssh 跳板
ssh -X 或 -Y 選項是會把 x window 也透過 ssh 傳送, 也就是讓遠端的 x client 和本地的 x server 溝通, 就能在本地開啟 remote 的 gui 程式。
還有一個有趣的選項 -J, 能直接把多台 server 當跳板, 各 server 間用逗號分隔, 如果有 port 就用冒號附在後面, 但最後一個 ssh 的 port 是不能用冒號的。
ssh -J userA@serverA,userB@serverB:2211 userC@serverC -p 5566
這樣就是用 userA 登入 serverA, 再從 serverA 用 userB 登入 serverB 走 port 2211, 最後從 serverB 用 userC 登入 serverC。
反向隧道
我是先在社辦的沒公網電腦用 -R 選項在另一台公用 server 開 port,
ssh -NR 35760:localhost:22 web.ccns
,
因為 web.ccns 有公網 ip,ssh 到 web.ccns 上,
再 ssh gholk@localhost -p 22
就行了,
或是直接 ssh -J web.ccns gholk@localhost -p 35760
。
可是最後用 cygwin x server 速度很慢, 到幾乎不能用的程度。 我覺得是 cygwin 的 x server 本來就慢, 應該和網速沒有關係; 網速應該有 10MB/s 以上。
後來用隨身碟開機跑 finnix, 用裡面的 x server 連 debian, 速度也還行,比 cygwin 快多了, 真得是 cygwin 的 x server 太慢的問題, 和網速沒關係。