今天 on-site,同行共三個人,兩台 mac 一台 vista。帶 vista 的同事被我們勸敗[1]

Get a Mac!

這,就是蘋果迷的優越感嗎?XD

不過,今天果然享受到了 Mac 皮 BSD 骨的 Mac Book Pro 的好用之處。因為 on-site 處沒法連 Internet,寫程式要查資料,只好祭出 3G。可是我們有三個人、三台電腦,但只有一個 dongle,必須由一個人當「橋」,帶其它人上網。

利用 Mac 的 Internet Sharing 功能,我們瞬間就讓另一台 Mac Book Pro 也通往 Internet 了。可是 vista 那台試了好久,依然不知道該怎麼設定,以便利用 passphrase 的方式設定 WEP 金鑰[2],導致最後只好取消加密,真是讓人心驚膽跳。

另一個問題是,我們還是需要連往機房內的 server,這個在 Mac 裡也好辦,因為是 BSD 骨,所以下一行指令就搞定[3]

SHELL> sudo route add 192.168.33.0/24 10.1.3.254

簡單講就是加一條 routing table 規則,把連往 server 的封包,導到對的 gateway。

但是 vista 就沒那麼簡單了。在 vista 裡,增加 routing table 規則的語法為:

SHELL> ROUTE ADD 192.168.33.0 MASK 255.255.255.0 10.1.3.254

但是改 routing table 需要 Administrator 權限。我們先試著利用 RUNAS 指令:

SHELL> RUNAS /USER:Administrator ROUTE ADD 192.168.33.0 MASK 255.255.255.0 10.1.3.254

打完密碼後,還是無效。我們同時也發現,該機的平常使用帳號,本就具備了 Administrator 權限。為什麼不行,實在另人費解。後來我們改用另外一個方法,也就是在開啟「命令提示字元」時,按右鍵開啟,選擇以 Administrator 權限開啟,然後才在這個新開啟的命令列視窗裡,下 route add 指令。

由於在以 Administrator 權限開啟命令提示字元的時候,出現了 UAC 的確認視窗,我們判定,之前 RUNAS 失敗的原因,可能是因為,即使有了 Administrator 權限,但沒有通過 UAC,還是不行。這簡直是脫褲子放屁,難怪 UAC 被視為 vista 之所以這麼難用的頭號原因之一。

除了 ROUTE ADD 之外,在 vista 裡,還要把其中一個 default gateway 的規則砍掉。這個 default gateway 有點奇怪,一台機器有兩條 default gateway 規則,本來就很奇怪了,更奇怪的是,因為 metrics (priority) 比較小 (高),所以其中一條 default gateway 規則,會因為 match 不到,而沒有實際效用。這又是一個脫褲子放屁的例子。

將 vista 的 routing table 修改好之後,終於可以讓三台電腦通通既可以通過 3G 上網,亦可以連往 server 工作。不過其實事情還沒完,vista 的 routing table 會自動變化,過一陣子之後,default gateway 的規則,又自行恢復成兩條。原本被砍掉的那條 default gateway 規則,自動地再次出現,導致這條沒有效用的規則,遮蔽了我們加的規則,使網路不通。還好那時工作已經差不多結束,要不然就要呼天喊娘了。

所以,總而言之,Get a Mac!你將可以做到更多神奇的事,而且非常輕鬆就可以辦到。


  1. 好啦,我承認,惡劣的其實只有我。:-p
  2. 記得這在 Windows XP 裡不是問題。
  3. 這篇裡所有設定值都是假的。