iT邦幫忙

7

[經驗分享] 功能強大的集中式主機管理開源軟體

https://ithelp.ithome.com.tw/upload/images/20190807/201188485mlu6XhMvl.jpg

做為一個系統管理員,面對為數眾多的各種伺服器管理,如果沒有一套集中好用的遠端管理工具,難保不會在手忙腳亂之時出現意外,或者效率受到影響。

在此,推薦一套我已使用多年的好東西給大家參考,以 Windows 遠端桌面管理為主,搭配其它系統之管理方式。


主要需求

在企業裡面,我伺服器用到的有 Windows、Linux、FreeBSD。

在 Windows 領域,最好用的還是 RDP 遠端桌面,不僅系統直接內建,而且連線效率優異,即便在網路品質不佳時仍然表現出色,是遠端管理的不二選擇。

在 Linux/FreeBSD 系統,伺服器端以文字模式為主,所以 ssh 大量使用,其它則搭配一些 web 管理介面為輔,即可掌控一切。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848H2FbuqANJy.png
遠端桌面

https://ithelp.ithome.com.tw/upload/images/20190807/20118848WkjPL3BSWu.png
Putty

https://ithelp.ithome.com.tw/upload/images/20190807/20118848dBj5NBN996.png
VNC

不過,問題來了。

這麼多不同平台的系統,當數量不多時每次手動連接倒還好處理,若達到一定程度再這樣做真的會搞死人。


集中式遠端桌面管理軟體

早期為了簡化管理,開始找到幾套可以集中管理的免費軟體,尤其是遠端桌面。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848OKB6C9TEMV.png
RDCMan

微軟有提供一款 RDCMan (Remote Desktop Connection Manager) 工具,可以提供方便的遠端桌面集中管理方案。


更多的集中式管理軟體

除了遠端桌面以外,如果也要集中使用其它方式連線,則有其它免費方案可以參考。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848YdgZYtlv6k.png
Royal TS

https://ithelp.ithome.com.tw/upload/images/20190807/20118848gfXubeZqkF.png
Remote Desktop Manager Free

這兩套都是功能豐富的集中式管理工具,除了遠端桌面以外,還可以連接 Telnet、SSH、VNC 等模式,系統管理員最常用的幾種模式,一網打盡。


開源的集中式管理軟體

老議題,雖然有了極為好用的免費版軟體,但因為個人的偏執所致,我還是想再試著找找看開源方案。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848CtQcoIIdEa.png
mRemoteNG

果然,就有這麼一款非常優秀的開源軟體「mRemoteNG」,幾乎我需要的功能都有,也具備左側資料夾分類、上方頁籤分類等多種方便使用的設計,多個願望一次滿足。

基本功能

除了可以遠端桌面以外,其它 IT 管理者常用的功能均已內建,例如我們可以使用 SSH 協定連接 Linux、FreeBSD 等主機,也能使用 HTTP/HTTPS 協定進入網頁管理介面,整合在同一個入口,非常方便。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848T4iqKBxX1p.png
使用 SSH 連接 FreeBSD 管理

https://ithelp.ithome.com.tw/upload/images/20190807/20118848Y5SYigAczJ.png
使用 HTTP 連接 Vigor Router 管理

https://ithelp.ithome.com.tw/upload/images/20190807/20118848q2G8fbjCY2.png
使用 HTTP 連接 FreeNAS 管理

https://ithelp.ithome.com.tw/upload/images/20190807/20118848kqZuLIjg1e.png
內建多種連接方式


進階設定

為了解決眾多主機的不同帳號密碼問題,mRemoteNG 提供了預先針對每一部主機設置帳號密碼的功能。

若是有許多主機採用相同的設置,只要該主機的帳號密碼留空,即可套用全域通用的帳號密碼,減少設定的負擔。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848XKjxxlHkzj.png
全域登入驗證設定

另一種方式,在連線清單裡建立資料夾後,在資料夾的節點設定協定、帳號、密碼等,再讓下面的各個主機繼承即可,可以針對不同協定類型的主機一次調整,亦是方便。

先點選左側樹狀清單中的主機,再點選組態視窗中的 [繼承] 按鈕,即可切換到設定頁。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848MfkzzBIw3e.png
繼承上層節點設定

資料保護

也因為如此,mRemoteNG 應運而支援了設定檔加密功能,以避免帳號密碼外洩。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848MAq2uEpjTn.png
設定檔加密儲存

如果要讓多人共用設定,或是想要集中儲存設定檔,可以採用儲存在資料庫的方式。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848KJjSdim9f5.png
集中儲存設定於資料庫

或是參考我的作法,使用 mRemoteNG 可攜版,並透過資料夾同步(如 Synology Cloud Station、Dropbox、NextCloud 之類的套件)達成效果。

強化機能

如果上述的功能仍然無法滿足你的話,mRemoteNG 還有一招讓它的功能無限擴充。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848jdy0khD15n.png
自訂外部工具

透過 mRemoteNG 提供的「外部工具」功能,定義好名稱、檔案位置、參數,即可支援更多的管理能力,例如常用的網路檢測小工具等等。

https://ithelp.ithome.com.tw/upload/images/20190807/201188483BEnPbdtdi.png
呼叫外部工具選單

https://ithelp.ithome.com.tw/upload/images/20190807/20118848zv1FCEmaFq.png
呼叫 ping 檢測主機狀態

https://ithelp.ithome.com.tw/upload/images/20190807/20118848djLPwJI4qw.png
呼叫 psexec 進入遠端主機的 cmd 命令提示字元

定義方式:

  • [檔案名稱]
    外部工具執行檔的位置,若無全域系統路徑變數,需指明。

  • [引數]
    要傳遞給外部工具程式的參數,可以搭配變數一起使用,如果是呼叫命令列下的程式,建議統一用 cmd.exe 搭配 /c 後接目標程式來執行,如「/c ping -t 127.0.0.1 」

  • [等待結束]
    某些必需等待外部工具結束才可以做下一件事的程式,需要勾選此項。要注意若該程式執行後不會主動結束者請勿選取。

  • [嘗試整合]
    若想要讓程式整合進 mRemoteNG 右方的視窗裡,如 putty 的模式,您可以勾選看看,不過據我所試除了 putty 與 filezilla 外,其它成功的較少,包括 cmd.exe。

可用變數:

  • %NAME%
  • %HOSTNAME% ? 這最常用啦
  • %PORT%
  • %USERNAME%
  • %PASSWORD%
  • %DOMAIN%
  • %DESCRIPTION%
  • %MACADDRESS%
  • %USERFIELD%

幾個外部工具設定範例:

  • [ping] 檢測目標主機連線狀態
    檔案名稱:cmd.exe
    執行引數:/c ping -t %HOSTNAME%

  • [traceroute] 檢測目標主機路由
    檔案名稱:cmd.exe
    執行引數:/c set /p = | tracert %HOSTNAME%

  • [psexec] 進入目標主機命令提示字元 ? 這招我超級愛用
    檔案名稱:psexec.exe
    執行引數:\\%HOSTNAME -u %USERNAME% -p cmd.exe

  • [psloggedon] 查看目標主機已登入使用者清單
    檔案名稱:cmd.exe
    執行引數:/c set /p = | psloggedon.exe \\%HOSTNAME%

  • [ultravnc] 進入目標主機遠端搖控 (使用 MS Logon 認證)
    檔案名稱:vncviewer.exe
    執行引數:%HOSTNAME%:%PORT% /user %USERNAME /password %PASSWORD%

  • [compmgmt] 進入目標主機的電腦管理
    檔案名稱:compmgmt.msc
    執行引數:/computer=%HOSTNAME%

  • [filezilla] 進入對方主機做檔案管理 (使用免安裝版放一起)
    檔案名稱:.\FileZillaPortable\filezilla.exe
    執行引數:sftp://%Username%:%!password%@%Hostname%:%Port%
    嘗試整合:勾選

  • [iwatchdvr] 直接查看 iCatch 系列監視器畫面 ? 相見恨晚
    檔案名稱:.\dvr\iwatchdvr.exe
    執行引數:-host %hostname% -port %port% -user %username% -password %password%
    嘗試整合:勾選

快速匯入

看完上面各種強大功能,以及自訂外部工具的擴充機制,相信您應該正著手把所有的主機都納進來 mRemoteNG 進行管理。

當您開始做著主機一筆一筆設定的時候,漸漸的會感到痛苦(是的,我也是),該怎麼辦呢?

它也設想到了,提供了多種批次匯入主機清單的功能,從功能表 [檔案] -> [Import] 展開:

  • 從 File 匯入
  • 從 Active Directory 匯入
  • 從 Port Scan 匯入

其中我最喜歡用的是「從 Active Directory 匯入」,只要選好 OU 節點,一次連著 OU 結構一起匯入,非常方便!

https://ithelp.ithome.com.tw/upload/images/20190807/20118848JPjbK4tCOP.png
從 Active Directory 匯入主機清單

取用保護

看到這裡,肯定您已經建立了一大票主機的資訊跟帳號密碼,有沒有想到缺了什麼?

如果您設定好的 mRemoteNG 整個資料夾都被人偷走,呃.........
那也就是說,他可以直接存取您所有設定在 mRemoteNG 裡的所有主機 ???

別擔心!幸好 mRemoteNG 也想到了,這太貼心啦。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848qveuqcAYvd.png
設定取用保護密碼

請在左側連線面版裡,點選根節點 [連線],再選取組態視窗裡的 [密碼保護],切換成 [是],再輸入要用來保護的密碼即可。

https://ithelp.ithome.com.tw/upload/images/20190807/201188485yM1b3gb64.png
啟動程式要求輸入密碼

下次再啟動程式時,就會被要求輸入密碼才可以使用,即可保護您的 mRemoteNG。

原始程式

mRemoteNG 功能眾多,但如果您覺得還是不夠,或是想要研究這麼強大的工具是怎麼開發來的:「它山之石,可以攻錯」

mRemoteNG 提供了完整的原始程式碼,您可以實現「自己的工具自己改」理想。

在好幾個版本以前,我有遇到一個會導致崩潰的奇怪的問題,同時也想研究它的 VNC 機制如何實作,當時有下載它的程式碼進行研究。

https://ithelp.ithome.com.tw/upload/images/20190807/20118848ywwDKPpxmA.png
mRemoteNG 原始程式碼

mRemoteNG 採用 .NET 平台 C# 語言開發,對於有過 WinForm 經驗的開發者將會相當容易上手。


結論

mRemoteNG 如此強大的系統管理工具,提供彈性的功能擴充,甚至連原始碼都給你了,這樣的好東西還不用嗎?


同場加映:其它平台方案

那麼,在 Windows 平台以外,例如 macOS、iOS、Linux、Android 上也想要管理遠端桌面呢?

https://ithelp.ithome.com.tw/upload/images/20190807/20118848JgDkjzi0Kl.png
Parallels Client

它是我使用很久的方案(從前名為 2X Client),有時人在外面手上只有手機,Parallels Client 就是我認為最完美的遠端桌面解決方案,在 macOS 上我也是使用它做為管理軟體。


參考資料


1 則留言

7
raytracy
iT邦大神 1 級 ‧ 2019-08-08 06:57:50

你應該留在鐵人賽來貼的.....
你口袋裡的文一定夠貼30天...
/images/emoticon/emoticon01.gif

哎呀,這些都是我 Blog 貼過的文章,拿舊文來參加鐵人賽說不太過去..

節神果然強大, 拿舊文章勝之不武, 非得公平競爭不可.....
(咦?..啊原來你沒報名喔?....)
/images/emoticon/emoticon82.gif

/images/emoticon/emoticon06.gif

我要留言

立即登入留言