2012-12-16

IP Cam (網絡監控)

今天,不少朋友家裏有老人家、小孩子與菲傭,於是便到電腦中心購買幾支網絡監控攝錄機,所謂 IP Cam,好能在辦公室或旅行時能透過互聯網監視家裏的情況。然而,安裝這支 IP Cam 卻一點也不簡單,身邊不少從事 IT 的朋友也搞了幾天,遑論一般的家庭主婦。就我所知,市面上亦好像沒有上門安裝 IP Cam 的服務,就算有也肯定不止要花幾百元。所以,在解厄之神的驅使下,決定在這裏簡介一下做法,與背後的原理。

先假設你家裏已有一個有線或無線 (Wi-Fi) 的網絡,一個路由器 (Router;自己裝的或網絡商提供的),並有一台能透過這網絡上網的電腦和瀏覽器 (Browser)

一支新買回來的 IP Cam,一般先要透過直接與路由器連線 (LAN Cable),才能進行設定,設定後才能用無線上網。整個過程有兩個關鍵:
  • 通訊埠轉送 (Port Forwarding)
  • 動態網域名稱系統設定 (Dynamic Domain Name System [DDNS] Setting)
以腦場最平的一支 IP Cam 做例子。連接並安裝軟件後,會見到以下畫面:


你首先見到的,支 Cam 的 IP 地址,即 192.168.xxx.xxx。接著,進入「網絡配置」。從下圖會見到這支 Cam 地址是 192.168.2.24,網關 (Gateway) 則是 192.168.2.1 (這是路由器的地址,一般是將 Cam 地址的最後一組數字轉成「1」,要記下)。現在你需要「隨意」輸入一個 Http 端口 (Port)。雖說隨意,但為免與其他設備發生衝突,最好選一個大一點的數目,譬如由 8000 到 9000 的一個數。這裏選了 8080。這個數一般不會被預先設定,或會被設定成 80。你一定要改,不能用預設。


接著就是「通訊埠轉送」。先在電腦的瀏覽器上輸入「網關」地址作網址。好像剛才的網關在 192.168.2.1,那便要在瀏覽器上輸入 http://192.168.2.1。一般來說,用戶名稱是「admin」,密碼可試「admin」或「0000」。網關其實在路用器裏,所以密碼視乎你用什麼品牌的路用器。也有用「root」的 (密碼試「root1」)

進入了路用器管理版面後,要找出通訊埠轉送 (Port Forwarding) 的設定頁。以下是 Aztech 路由器的設定,藏在 Applications 之下。現在你要將 Cam 的地址 192.168.2.24 放在 IP Address 的欄位內,再將 Port Range 設定成剛才選擇的 Http 端口,即 8080 至 8080。


下圖是香港寬頻的路用器管理版面。在左邊的菜單裏,防火牆 (Firewall) 之下,便能找到通訊埠轉送 (Port Forwarding),設定的參數也是那幾個。


如果你家裏有多過一支 Cam,關鍵便是要選不同的 Http 端口給不同的 Cam。如果第一支是 8080,第二支便可以用 8081。在上圖路由器的設定裏,便要設定兩條通訊埠轉送的規則 (Rule),即一條 8080、一條 8081,分別指到兩支 Cam 各自的 IP 地址。一般出錯的地方就在這裏。此外,留意改了設定後,一般要等幾分鐘才生效,所以不要一失敗便又改,否則永遠都連不上。

完成了通訊埠轉送,便到 DDNS 設定。現在最平的 Cam 本身也有送 DDNS 戶口,而你也不用知道是什麼,只需要用瀏覽器輸入 Cam 的 IP 地址與端口 (用冒號分開),例如 http://192.168.2.24:8080,一般便會找到 DDNS 的連結。有時 Cam 身上也有標籤貼著。下圖裏那個 http://icam99999.ihome365.org:8080 網址,便是你支 Cam 在 互聯網上的位置。


留意那個端口 (Port),正是你設定的那個:


現在,你可以下載一個手機或平版電腦的程式,好像 Net Eye Camera,把剛才的 DDNS 地址與端口輸入,便應該看到你監視的畫面了。當然,你也可以用瀏覽器與上面那個 http://icam99999.ihome365.org:8080 網址來開啟畫面。

如果你的 Cam 沒有送 DDNS 戶口,那你可以登記一個。很多 DDNS 現在都要收費,我發現 http://www.no-ip.org 仍是一個免費的 DDNS,可以考慮 (在這裏登記)。

最後一步,便是在 Cam 裏輸入 Wi-Fi 的 SSID 與密碼,讓它在家裏任何一個角落都能把畫面傳送上網。這個設定與其他器材的做法一樣,在此不贅。當然,為了不讓全世界都看到你家的情況,密碼設定也是必須的。

一般的安裝步驟便到此為止。不過,由於 Cam 也好路由器也好,都有無數品牌,所以很多時會遇上以上沒有提到的版面或問題,那你便要瞭解多一點背後的原理

首先,由你家裏的瀏覽器到像 Yahoo 這個網站,其實經過了很多重的關卡。你家裏自己有個區域網絡,一般稱 LAN,把無數的電腦與設備連在一起。為了識別,每台機器都有一個獨一無二的地址,由路由器派發。在下圖裏,桌面電腦獲派了 192.168.0.101,而手機則派了 192.168.0.104。於是你可以用像 AirDroid 的程式將照片從這兩個地址之間傳送交換。


但 Yahoo 明顯不在你家裏的 LAN 上,於是當桌面電腦要讀 Yahoo 的網頁時,它會從路由器的網關 (Gateway),即 192.168.0.1 走出公海。原來你的網絡供應商,即網上行、香港寬頻等等,自己有一個 WAN,並已為每一個單位派了一個 IP 地址,即上圖例子裏的 119.247.xxx.62。路由器的一個重要功能,便是把這個公海的地址,等同於你家裏 LAN 上的 192.168.0.1。在 WAN 上,有台電腦叫 DNS,即網絡電話簿。它記住了 www.yahoo.com.hk 這個網名 (Domain Name) 的 IP 地址,即 106.10.165.51。由於這個 IP 地址不在網絡供應商的 WAN 上,所以你的要求要再通過 WAN 的網關 119.247.xxx.1 走出世界,最後才去到 Yahoo 的網站。

順帶一提,Yahoo 的網站其實是一台電腦,內有一些網頁的檔案 (HTML),也有電郵以及一些其他的文件檔案與加密的檔案。不同類型的檔案要由不同的碼頭運出,當你用 http://www.yahoo.com.hk/xxx.html 提取檔案時,用的是 80 號碼頭;當你讀取電郵時,用的是 110 號碼頭;用 ftp://www.yahoo.com.hk/xxx.exe 下載檔案時,用的是 21 號碼頭;相反,當你發電郵出去時,那個「入口」用的碼頭是 25 號。加密網頁,即 https://www.yahoo.com.hk/xxx.html,則用 443 號。這些碼頭的號碼,就是先前提到的端口 (Port)。當然碼頭有很多個,但背後仍是一台機,一個 IP 地址,只不過同時在跑很幾個程式,各自「聆聽」著屬於自己的碼頭所收到的請求 (這些程式一般在背景運行,所以又叫「Daemon」)

回到 IP Cam,情況剛好相反。你的 IP Cam 正扮演一個像 Yahoo 這裏的網站的角色。那我們首先要登記一個像 www.yahoo.com.hk 這樣的網名,並叫所有找這網站的來家裏那支 Cam 的 IP 地址。如果你記得,這個網上電話簿的功能叫 DNS。這時,你會遇上兩個問題。第一,網絡供應商給你的 IP 地址,即較早前提到的 119.247.xxx.62,是每次開機都不一樣的 (這個派地址的制式叫 Dynamic Host Configuration Protocol [DHCP])。你不會想每次開機都到 DNS 改一次地址吧?第二,這個地址只連到你家的路由器或網關,背後有很多不同的設備,各有自己的 LAN 地址 (即 192.168.0.xxx),別人又如何知道那一個是 IP Cam 呢?


要解決第一個問題,便要用 DDNS (如 no-ip.org 或 ihome365.org)。每次 IP Cam 一啟動,都會跑到 DDNS 裏登入,並告訴它自己的最新 IP 地址,即上圖的 119.247.xxx.62。

至於解決第二個問題的方法,便是利用「通訊埠轉送」(Port Forwarding),即指定一個端口 (如 8080) 作一支 Cam 的記號,然後告訴路由器,但凡來這個碼頭的,便是找這支 Cam 的。所以,當別人鍵入 xxx.no-ip.org:8080 時,DDNS 翻譯成 119.247.xxx.62:8080,再變成 LAN 上的 192.168.0.1:8080,又由於「通訊埠轉送」,翻成 192.168.0.110:8080。不信的話,可以試入以上四組網名,最終都應該來到 Cam 的畫面。至於輸入 xxx.no-ip.org:8081 的,便最後經過 192.168.0.1:8081 來到 192.168.0.112:8081。如果明白「通訊埠轉送」(Port Forwarding) 的用法,你還可以自己在家裏建立網站或網上商店呢!

我不是網管專家,為求簡短我亦有所省略,但應該足夠讓你瞭解 IP Cam 的設計,剩下的,只能祝你好運了。

2012-12-09

Time (時光守護者)

據說,在人類開始興建巴別塔的時候,有個人開始量度時間。這個人讓以後的千秋萬代明白了生命的有限,時間的寶貴,亦因而帶來了無窮無盡的痛苦。

從此,有些人總覺得時間不夠用,不斷想盡辦法在有限的時間內做無限的東西,甚至花時間去延長在世的時間。

從此,有些人總覺得時間用不掉,不斷想盡辦法去消耗光陰與麻醉自己,甚至選擇提前結束生命。

這些著眼在生命有多少時間的人,太忙太累,卻忘了去好好地生活。為了補贖這麼大的罪孽,量度時間的人等了幾千年,等的,是兩個需要拯救的人,也同時拯救不幸地擁有了永遠的自己。

這個故事,便是米奇.艾爾邦 (Mitch Albom) 的新作《時光守護者》(The Time Keeper)。艾爾邦的書,由《相約星期二》至今,我全部讀過。一如即往,這本也沒有讓我失望。

全書的主旨在最後一句,大意是:神之所以給予我們有限的日子,是要讓每一天都變得珍貴

湊巧,在我讀這書之前,剛好為《進修天地》做了個訪問,說了些有關的東西,也一併放在這裏留個紀錄罷 (可點擊左圖放大內文)