:::
顯示具有 網路管理 標籤的文章。 顯示所有文章

在Linux中用指令新增排程 / How to Create a Cron Job via Shell Script

在Linux中用指令新增排程 / How to Create a Cron Job via Shell Script

image

最近我想要為Zentyal加上排程備份的時候,發現使用Shell Script指令修改 /etc/crontab 檔案並不會實際上觸發排程(儘管如果用vim /etc/crontab 是可以觸發排程的)。後來我參考TheBonsai的建議,用crontab指令來新增排程,這樣就可以成功。

(more...)

想用無限空間沒那麼容易!Google Drive與伺服器整合失敗記錄 / Solution to Integrate Google Drive with Services: not reliable

想用無限空間沒那麼容易!Google Drive與伺服器整合失敗記錄 / Solution to Integrate Google Drive with Services: not reliable

image

最近花了一段時間在研究怎麽把Google Drive (Google雲端硬碟)ZoteroProxmox伺服器整合。整合之後可以運作,但是可能是因為檔案處理速度過慢或是Google Drive API配額的限制,最後都無法順利運作。這篇記錄一下到目前為止的研究進度。

(more...)

只准連首頁!在Apache設定檔禁止連線到子目錄設定 / Deny Access to All Subdirectories by Using Apache Server Configuration

只准連首頁!在Apache設定檔禁止連線到子目錄設定 / Deny Access to All Subdirectories by Using Apache Server Configuration

image

如果Apache網頁伺服器只想讓人連首頁,但是卻不想讓人連到子目錄的話,我們可以透過增加Apache的規則設定,利用<Location>跟<LocationMatch>來達到這個目的。

(more...)

Proxmox VE 4.2配置失敗記錄 / Failed to Setup Proxmox VE 4.2

Proxmox VE 4.2配置失敗記錄 / Failed to Setup Proxmox VE 4.2

image

繼前幾天開始研究Proxmox VE 4.2,我也試著將Proxmox VE 4.2以VirtualBox虛擬機器架設,並且測試看看新的虛擬化技術lxc新的高可用叢集Proxmox VE HA Manager,然後看看有沒有其他的功能好用。結果很遺憾,我未能順利成功使用這些功能。我想在這邊記錄一下這些失敗的過程,也許未來的我知道怎麼操作的話,也許看了會有些不同的感觸吧。

(more...)

在Ubuntu 14.04上安裝Webmin指令腳本 / A Webmin Installation Script for Ubuntu 14.04

布丁布丁吃布丁

在Ubuntu 14.04上安裝Webmin指令腳本 / A Webmin Installation Script for Ubuntu 14.04

image

Webmin是遠端管理Linux的一大量器,甚至許多伺服器設定與管理都比直接使用桌面環境來得方便操作,更不用說可以省下查找指令與設定檔位置的麻煩了。不過一般時候Webmin安裝的時候無法直接從apt-get完成。以Ubuntu來說,必須要先加入Webmin的APT套件庫、加入GPG金鑰,然後才能使用apt-get安裝Webmin。

這學期我在教Ubuntu 14.04的時候,為了方便同學安裝Webmin,我參考Linux技術手札中的安裝教學,將Webmin指令檔整理成以下數行。同學可以直接在Ubuntu中複製、貼上這些指令,就能順利安裝Webmin。

(more...)

免費的WebDAV客戶端:AnyClient / A WebDAV Client: AnyClient

免費的WebDAV客戶端:AnyClient / A WebDAV Client: AnyClient

2016-02-28_201547

WebDAV客戶端中比較知名的是NetDrive。雖然它功能強大,但是那是一個收費軟體。所以我找到另一個免費的WebDAV客戶端軟體:AnyClient。它沒有NetDrive這樣可以掛載網路硬碟,而只有提供像是類似FTP客戶端一樣的功能。不過它能夠讓我們免費存取WebDAV伺服器,這樣就夠了。

(more...)

Ubuntu中如何用腳本檔新增/etc/hosts設定 / How to write a script for adding hostname to /etc/hosts in Ubuntu

Ubuntu中如何用腳本檔新增/etc/hosts設定 / How to write a script for adding hostname to /etc/hosts in Ubuntu



由於權限限制的緣故,我們不能單純用echo與「>>」來新增/etc/hosts設定,而應該用sh -c。例如:

sudo -- sh -c "echo '10.0.0.254      mfsmaster' >> /etc/hosts"



/etc/hosts是做什麼用的? / What is /etc/hosts?


/etc/hosts 是電腦裡面設定 hostname 跟 IP配對的設定檔,跟DNS的角色很像,可是 /etc/hosts 這個可由使用者自行控制。

根據維基百科的定義:

hosts檔案是一個用於儲存電腦網路中各節點資訊的電腦檔案。這個檔案負責將主機名對映到相應的IP位址。hosts檔案通常用於補充或取代網路中DNS的功能。和DNS不同的是,電腦的使用者可以直接對hosts檔案進行控制。

在Windows裡面,hosts的位置會在 C:\Windows\System32\drivers\etc\hosts 。在Linux裡面,hosts則是在 /etc/hosts 裡面。以Linux來說,/etc/hosts的內容大致上如下:

127.0.0.1       localhost.localdomain localhost
127.0.1.1       zentyal.zentyal.dlll.nccu.edu.tw zentyal

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

系統安全性的關鍵 / Security Issues


必須注意的是,/etc/hosts 是系統安全性一個非常關鍵的系統檔案。因為修改 /etc/hosts 可以將網路連線偷天換日、讓使用者連線到錯誤的網站。舉例來說, 我們可以在 /etc/hosts 裡面加入以下 設定:

192.168.11.50    www.google.com.tw

這樣子連線到www.google.com.tw的網站時,就會被引導到192.168.11.50這個伺服器去。當然,這個IP不是Google真的伺服器,而可能是惡意人士的釣魚網站,你可能就會在未查覺的情況下將帳號密碼輸入到別人的電腦裡面了。

正因為如此, /etc/hosts 是系統安全性的一大關鍵,所以一般人是無法修改這個檔案。在Linux當中,我們必須要以root的身份才能做修改,但是如果要用bash script腳本檔的形式來自動新增 /etc/hosts 的設定,那就得用特殊的方式來設定了。

如何用腳本檔新增設定? / How to add configuration to /etc/hosts by script?


一般網路上在教的方法,都是用echo搭配 >> 來運作,例如:

sudo echo "10.0.0.254    mfsmaster" >> /etc/hosts

但是會導致權限問題,而無法輸入:



-bash: /etc/hosts: Permission denied

那正式的做法應該是用sudo -- sh -c,指令是:

sudo -- sh -c "echo '10.0.0.254      mfsmaster' >> /etc/hosts"


sh的-c參數的意思是:「執行一個字串類型的指令,可以用特殊參數0來替換$1, $2等參數」,總之就是這樣子就能夠用較高權限來設定 /etc/hosts 了。

好,那我繼續來整合MooseFS跟Zentyal。 (more...)

mRemoteNG使用外部工具來進行SFTP連線 / Setup mRemoteNS’s Ext. App to Integrate SFTP

mRemoteNG使用外部工具來進行SFTP連線 / Setup mRemoteNS’s Ext. App to Integrate SFTP

2014-08-13_172107 - Copy

本文介紹mRemoteNG的外部工具使用,以FileZilla Portable來建立SFTP外部工具為例,並提供整合多個外部工具的mRemoteNG Portable下載

This article introduces the external tool (Ext. App) of mRemoteNG. I used FileZilla Portable as example to demonstrate how to create a SFTP Ext. App in mRemoteNG. Finally I shared my mRemoteNG portable with many Ext. App integrated.


網管人員的需求 / Tools of Server Management

作為機房管理人員,時常會使用各種網路連線方式控制伺服器。管理Windows伺服器,一般會使用遠端桌面連線;管理Linux伺服器,那就要用PieTTY來做SSH連線,或是用RealVNC來連到VNC遠端桌面;有網頁界面的伺服器,那就用瀏覽器開啟HTTPHTTPS網頁。

但是當伺服器一多,要使用的工具複雜起來,而伺服器的連線資訊也散落在各個工具中,使用起來不甚方便。這時候我們就需要一個整合性的管理工具。市面上有些是要收費的,像是Remote Desktop ManagerroyalTS (繼承mRemote之後的收費平臺);免費的則有Terminals,以及本文要講的mRemoteNG

mRemoteNG是什麼? / What’s mRemoteNG

2014-08-13_172621

mRemoteNGmRemote的分支版本,它是一個開放原始碼、具頁籤整合、多通訊協定、遠端連線的整合性管理工具。由於mRemote在2012年之後就停止開發了,所以接下來是由mRemoteNG接手繼續發展。

mRemoteNG支援以下幾種通訊協定:

儘管mRemoteNG支援了很多通訊協定,但是卻沒有支援最重要也是最好用的遠端檔案管理通訊協定:FTP與SFTP。沒關係,mRemoteNG另一個強大的地方,在於他提供了可以彈性設定的外部工具(Ext. App)。我們可以自定義一些常用的應用程式,例如能連線到FTP或SFTP的FileZilla,將之整合成為mRemoteNG的一部分。

外部工具的運作原理 / What is Ext. App?

2014-08-14_005738

mRemoteNG的外部工具是透過Windows的指令列命令來開啟外部工具,然後再把連線位址(Hostname)、連接埠(Port)、使用者名稱(Username)與密碼(Password)等連線設定以參數傳入該工具。

要在mRemoteNG使用外部工具的話,我們需要做幾件事情:

  1. 確定外部工具的所在路徑。我建議將外部工具放入mRemoteNG資料夾中。
  2. 在mRemoteNG中設定外部工具。
  3. 新增連線時,使用外部工具。

以下我以FileZilla來建立SFTP連線使用外部工具為例,介紹如何在mRemoteNG中使用外部工具。

Step 1. 設置外部工具:FileZilla Portable / Setup Ext. App: FileZilla Portable

2014-08-14_100307

要使用外部工具之前,要取得外部工具的程式或腳本。比起原始的FileZilla Client,我一向喜歡使用FileZilla Portable

2014-08-14_011523

下載完之後,請在mRemoteNG底下開啟一個新目錄,叫做「External Applications」,然後將FileZilla Portable安裝該目錄。其中[mRemoteNG]是mRemoteNG的安裝目錄:

[mRemoteNG]\External Applications\FileZillaPortable

Step 2. 設定外部工具 / Configure Ext. App

接下來我們要在mRemoteNG裡面設定外部工具。

2014-08-14_011118

先打開mRemoteNG,開啟Tools裡面的External Tools。

2014-08-14_011226

接著會顯示External Tools的頁籤。如果要新增外部工具,請在這頁內任意地方按滑鼠右鍵,顯示出「New External Tool」。這個設計很容易讓大家迷路,很少人想到是藏在右鍵選單裡面。

2014-08-14_011049

然後會多一列可供設定的外部工具,請在下方外部工具屬性(External Tool Properties)輸入以下設定:

  • Display Name: SFTP
  • Filename: External Applications\FileZillaPortable\App\filezilla\filezilla.exe
  • Arguments: sftp://%Username%:%Password%@%Hostname%:%Port%%Userfield%
  • Options: 勾選Try to integrate

以下說明各欄位的內容:

檔案名稱 / Filename

檔案名稱(Filename)是指外部工具實際上開啟的程式。在此使用相對路徑,去開啟FileZilla Portable中實際上真的FileZilla Client程式的所在位置。

參數 / Arguments

參數(Arguments)是指要輸入外部工具的連線位址、連接埠、使用者與密碼等資訊。以SFTP來說,我們會須要SFTP伺服器主機的連線位址、連接埠(或是預設22連接埠)、使用者(預設可能是root)與密碼。而在mRemoteNG中,這些參數是以前後%的變數替代。目前我的知道可以使用的參數如下:

  • 連線位址:%Hostname%
  • 連接埠:%Port%
  • 使用者:%Username%
  • 密碼:%Password%
  • MAC位址(MAC Address):%Macaddress%
  • 使用者自訂欄位(User Field):%Userfield%

這些參數會在命令列中輸入到FileZilla,讓FileZilla啟動時自動進行參數的連線。那我們怎麼知道FileZilla可以輸入這些參數呢?剛好FileZilla就有提供命令列的操作方式。以SFTP連線方式來說,我們可以直接在後面加入「 sftp://%Username%:%Password%@%Hostname%:%Port%%Userfield% 」設定,就能夠連到SFTP。同樣的,要連到FTP的話,就是把開頭的通訊協定改成ftp即可。

選項 / Options

選項的部分有兩個。等待離開(Wait for exit)打勾時,外部工具結束會連帶的讓mRemoteNG的頁籤也會跟著關閉,但是在嘗試整合(Try to integrate)打勾時預設啟動;嘗試整合(Try to integrate)是將外部工具塞到mRemoteNG當中,成為頁籤的一部分,建議打勾。

好了,那我們就設定好一個外部工具,叫做SFTP了。接下來就是在新增連線時使用這些外部工具囉。

Step 3. 使用外部工具 / Ext. App Usage

mRemoteNG要連線到任何伺服器主機,都要先新增連線。

2014-08-14_102709

在連線(Connections)上按右鍵,選擇「New Connection」。

2014-08-14_102854

連線設定中,要在通訊協定(Protocol)的欄位選擇「外部工具」(Ext. App)。附帶一提,mRemoteNG的中文(繁體) (中華民國)翻譯居然翻成「結束. App」,所以我就換回英文界面了。

2014-08-14_103247

接下來大部分的欄位都會隱藏,只留下外部工具(External Tool)跟連接埠。External Tool欄位選擇剛剛新增的外部工具SFTP

2014-08-14_103453

接著我們填好其他的伺服器資訊。主要包括:

  • Name:連線的名稱
  • Hostname/IP:連線位址
  • Userame:使用者名稱
  • Password:密碼
  • Port:連接埠,SFTP預設是22
  • User Field:在此定義為遠端主機的預設目錄

2014-08-14_114221

然後就能夠在mRemoteNG裡面開啟FileZilla了!這是不是令人感到開心呢?


外部工具的其他應用 / Other Ext. App

看到這邊,你可以知道只要可以使用命令列,你就能夠把任何外部工具整合到mRemoteNG當中。

LazyWinAdmin在「mRemoteNG - External Applications」一文中整理了mRemoteNG可以使用的眾多外部工具。舉例來說:

  • nmap網路掃描、主機分析工具:Zenmap GUI
  • 瀏覽器:Firefox
  • Windows內建工具ping、tracerout

我還想到可以用瀏覽器開啟外部網路的檢查工具,例如APM Cloud Monitor (以前是Just Ping),它可以用其他的伺服器確認網站狀況PingDNS分析Traceroute。特別是當你區域網路可以連線之後,別忘了用APM Cloud Monitor來確認是否別人也可以連線。

2014-08-14_110235

而我把這些工具整合到mRemoteNG Portable版本中,順便整合進PieTTY,在此提供大家下載:

如果你有其他好用的外部工具,也歡迎在下面留言處跟大家討論、分享喔。(例如TeamViewer如何?


結語:使用mRemoteNG的心得 / Conclusion: Usage Experience of mRemoteNG

原本一開始覺得mRemoteNG介面不好用,而且連線功能也沒有像是Remote Desktop Manager有著超級多種的連線工具可供使用,讓人覺得mRemoteNG真的是湊合著用的感覺。

可是我在前年寫完「mRemoteNG使用PieTTY與安裝XULrunner」之後,我因為意外發現LazyWinAdmin的教學,很快就搞懂了怎麼使用外部工具。當時甚至妄想使用ownCloud同步工具,同步mRemoteNG Portable,讓每一臺電腦都可以輕鬆地管理大量的伺服器。可惜Portable還是會有路徑上的問題,只好因此作罷。

直到現在,mRemoteNG已經是我最重要的網管工具。大量伺服器的連線資訊、好用的資料夾分類、靈活的外部工具,這些特色構成了mRemoteNG的無限可能性。真心推薦使用Windows的網管都來使用mRemoteNG!

(more...)

DLLL-CIAS介紹 / DLLL-CIAS Introduction

DLLL-CIAS介紹 / DLLL-CIAS Introduction

image

這篇發佈我在2014年6月底的「雲端科技與圖書館行動服務研習班」中課程「雲端平台基礎設施建置實務──DLLL-CIAS介紹」的課程投影片。

This article is the slide of my course “Cloud Technology and Library Mobile Service Workshop” in July, 2014. Finally is my thought of this workshop.


DLLL-CIAS是什麼? / What is DLLL-CIAS

DLLL-CIAS是政大圖檔所數位圖書館與數位學習實驗室中我所開發的開放原始碼雲端平台方案。主要目的是希望能夠讓經費不多的中小型單位也能夠用現有伺服器資源架設好用的IaaS雲端平台。其他介紹請看「DLLL-CIAS雲端平台架設與使用專題目錄」。

課程投影片 / Course Slide

Google Drive的原始版本投影片 / Slide Original Version on Google Drive

另外值得一提的是,這篇投影片是一開始是以Google Drive投影片製作。

image

雖然Google Drive投影片製作起來並不如Power Point一般的精緻(另一方面也是因為這個版本是供列印用的,所以特別以高對比黑白相間的範本製作),但是Google Drive投影片製作功能卻是相當足夠使用。更重要的是,Google Drive的協同製作跟註解(comment)完全贏過Windows的OneDrive。

這學期我大量使用Google Drive的協同編輯功能,像是跟人一起編修論文計劃書、規劃投影片內容,這份投影片也是從Google Drive開啟編輯起。我先規劃投影片大綱,記錄每一張投影片欲講述的內容,以及相關參考資料的來源。然後各張投影片的內容則是跟實驗室各位助理一起填寫資料,接著我再重整資料內容。當投影片內容確定之後,最後我再下載成Power Point檔案作進一步的排版美化。

image

最後排版而成的版面就是這樣子了。

Google Drive與Power Point轉換編輯注意事項 / Difference Between Google Drive and Power Point

使用Google Drive製作投影片跟Power Point製作投影片有幾個重點差異需要注意:

  • Power Point匯入到Google Drive時樣式容易跑掉,但相反的從Google Drive匯入到Power Point問題卻不大。
  • Google Drive不支援投影片頁碼、不支援陰影、不支援連接線的折線。這幾種功能都是投影片常用的重要特色,請自行斟酌。
  • 請善加利用「投影片母片」(Power Point用詞)、「主投影片」(Google Drive用詞),可以保持投影片格式一致。

有機會我再詳細聊一下Google Drive協同編輯的心得吧。


結語:終於把研習班課程完成了 / Conclusion: The Experience of Workshop

這份投影片發佈之後,研習班的工作總算是告一段落了。

這次研習班跟其他研習班最大的差異,就是在於有很多實作的內容,而不是一直坐著聽老師授課。這次研習班主要兩個實作課程,一個是KALS合作標註閱讀學習,另一個則是這個DLLL-CIAS實作,這兩個實作都讓我煞費苦心。DLLL-CIAS要架設許多虛擬機器伺服器這點顯而易見,而KALS要弄到讓學員能夠在系統上順利操作,這背後其實也修改了許多細節。之前去IMLF 2014時就已經拖延了許多工作,然後之後投入在這研習班上,課程的部分就有點顧不住了,真是對不起老師啊。

雖然期末與這研習班整個像是災難一樣鋪天蓋地而來,但最後總算能夠過去。上課過程中有些兵荒馬亂,感謝各位助理大力相挺,沒有你們我一個人真的完成不了這些東西,這也包括了之前寫的幾篇DLLL-CIAS的細部操作文章

研習班上課過程中,我本來以為這麼硬的內容,應該會讓大家聽到一片瞌睡。結果時候聽完還蠻多人跑來跟我比較他們圖書館使用的VMware方案之間的差異,也有平時不碰技術的人跟我表達這堂課讓他獲益,有些人甚至想要在自己家裡架起這套方案。即使是客套話,我也覺得很開心。

希望下次能夠吸取這次的經驗,然後再帶給大家更好的課程內容吧。

(more...)

RemoteApp雜記 / Memo About RemoteApp

RemoteApp雜記 / Memo About RemoteApp

2014-08-05_131414

這篇記錄一下最近研究RemoteApp的記事。由於不是很正式的教學,所以格式上比較隨意,請大家見諒。

This article is the memo about RemoteApp research.


為什麼個人要用RemoteApp? / Why I Need RemoteApp?

在講RemoteApp之前,我先講一下什麼樣的情況,個人會須要用到這種方案。

現代人的生活很多時候會跟多臺電腦打交道。以我為例,先不論機房有一堆孩子(伺服器)要顧,我自己在實驗室有一臺桌機、平時在外面移動時則是有一臺筆電,回到宿舍時也還是用那一臺筆電工作。因此我自己就有兩臺電腦在使用。

在這個情景底下,我主要使用的是實驗室效能比較好的桌機,而筆電通常是利用遠端桌面連線回到桌機操作。大部分的檔案也是存放在桌機為主。

Windows的遠端桌面連線是Windows少數幾個偉大的設計之一。在網路頻寬允許的情況下,可以讓你的連線裝置彷彿就像是在遠端操作一樣。

但是實際上,遠端桌面連線因為功能太過龐大,有時候我只是想要使用某個應用程式,像是Photoshop,這時候我還是得連線到整個遠端桌面,然後才能開啟Photoshop操作,說來也是一種麻煩。

這就讓我興起了「我可只連線到遠端其中一個應用程式嗎?」的想法,因此就開始進行RemoteApp的小小研究。

遠端桌面連線的RemoteApp / RemoteApp of Remote Desktop Service

這篇所講的RemoteApp,一開始是指Windows伺服器版本提供的功能。RemoteApp是遠端桌面連線的延伸應用,自從Windows Server 2008 R2之後才能夠使用。RemoteApp的特色在於透過遠端桌面連線的控制,把要顯示的資訊傳送到客戶本地端,由客戶本機端的Windows來負責產生畫面。

實作時是由伺服器端提供RemoteApp連線設定檔.rdp、或是包裝成.msi的安裝檔案,然後交給客戶端去做安裝與配置,例如放在桌面上提供使用者點選。這個RemoteApp連線設定檔本身已經包含了遠端伺服器的連線位置與登入資訊,以及要開啟的應用程式設定。客戶端只要開啟這個連線設定檔.rdp,等待連線,然後就會出現有如本機上運作的RemoteApp。

RemoteApp是伺服器類型的Windows才有提供的功能,但是Windows 7之類的個人電腦也可以作為RemoteApp伺服器。做法是使用RemoteApp Tool

RemoteApp Tool適用於Windows XP SP3、Windows 7、Windows 8,幾乎目前常用的Windows都可以運作。

2014-08-05_134604

RemoteApp Tool不需要安裝,開啟之後就能夠設定要提供連線的應用程式。我自己馬上就建立了一個Line試試看。

image

從Properties裡面可以設定應用程式的執行細節,最主要的是設定應用程式的執行路徑 Path。設定好RemoteApp之後,接著你可以使用Generate RDP file產生.rdp的遠端連線設定檔,再傳送到客戶端來連線。客戶端只要開啟.rdp,就會連線到這臺伺服器,然後開啟Line的應用程式。

雖然設定很簡單,但實際上運作時卻有許多問題。第一個是遠端連線速度不是很通順。開啟RemoteApp的時候,基本上就跟開啟遠端桌面連線一樣,但還要加入開啟應用程式的時間,因此連線時的時間會有不小的延遲。特別是當我們習慣開啟本地端的應用程式之後,再來跟RemoteApp開啟速度相比,就會覺得不甚理想。

然後是我使用Line的時候遇到了不少問題。也許是Line本身用了特殊的框架,導致開啟時不太順暢之外,一使用輸入法就會造成應用程式當機。

此外,這個RemoteApp Tool的另一個問題在於一次只能一個session連線。就跟一般Windows使用遠端桌面連線一樣,RemoteApp連線時就是佔了一個使用名額。當有別人開啟RemoteApp的時候,就算我來到伺服器的本地端,我看到的會是一個需要登入的畫面。而當我登入的時候,別人正在使用的RemoteApp則會被踢出去。

如果這些電腦都只有你個人使用的話,這倒沒什麼問題。但是在企業內希望使用RemoteApp共享安裝軟體的話,這問題就相當致命。由於Windows Server 2008等伺服器版本可以提供同一帳號多重遠端桌面,所以才能夠提供RemoteApp正常使用吧。不過如果Windows 7強制設定單一帳號多重登入的話,那也許也能夠提供一樣的功能也說不定。我稍微找了一下,不同的Windows版本有不同的設定方式:

但是因為RemoteApp感覺還是不太好用,所以我就嘗試找找看有沒有其他的替代方案,然後找到了Winflector

RemoteApp替代方案:Winflector / RemoteApp Alternative Solution: Winflector

2014-08-04_235245

Winflector是一個類似RemoteApp的替代方案。免費版本可以提供兩個客戶端同時連線。

2014-08-05_141446

一開始一樣是先安裝Server版本,安裝完之後要重新開機。然後接著設定應用程式,這些設定類似RemoteApp。再來設定可以登入的使用者的帳號與密碼,這部分跟Windows的帳戶是分開獨立的。另外連接埠要修改掉被佔用的80,改為其他連接埠之後,才能正常連線。

2014-08-05_131414

Winflector並不會產生像是RemoteApp這樣的連線設定檔,客戶端必須開啟Winflector客戶端程式,輸入伺服器端的IP連線資訊,接著就能夠在Applications看到伺服器端提供的應用程式,點選兩下就能夠直接開啟了。

開啟應用程式的速度不僅很快,而且輸入法、剪貼簿、視窗整合等操作都很流暢,彷彿真的就像是在本機端運作的程式一樣。而Winflector的連線也不會佔用遠端桌面連線的名額,不會把本機端使用者踢掉。

只是有幾點要注意的是事情:

  • 應用程式仍然是在遠端伺服器運作,因此檔案存放的「桌面」是伺服器端的「桌面」,而不是客戶端的桌面。如果是RemoteApp的話,會直接開啟網路上的芳鄰來作為檔案交換的途徑,但是Winflector並沒有提供這種功能。
  • 免費的Winfector只能提供兩個連線。

此外,Line開起來會一片空白,還是無法使用。

總而言之,Winfector意外地讓我很滿意,於是我最近會試著在桌機常駐Winfector的服務,讓筆電來連線使用看看。再試試看有沒有什麼問題。


為什麼團隊需要用RemoteApp? / Why Our Team Need RemoteApp?

個人使用的話,Winfector應該就能夠滿足需求了。就算是遠端檔案無法直接儲存在客戶端,也可以利用Dropbox來同步檔案。可是要在團隊裡面使用的話,這樣子的架構還不能算是完整。

為什麼團隊會需要使用RemoteApp?最大的原因仍然是因為軟體授權不足,或是軟體需要在高等級機器上運作,不方便安裝在筆電等效能較差的電腦上。

Citrix的XenApp / Citrix’s XenApp

2014-08-05_150131

現在學校大多是使用Citrix的XenApp方案,這個方案其實也挺不錯的。它類似RemoteApp,但是運作RemoteApp的伺服器是以XenServer建構而成的Windows虛擬機器,而非實體的Windows。在每次要使用XenApp的時候,伺服器端會自動建立一個可以運作應用程式的虛擬機器,提供XenApp連線。然後在關閉XenApp之後把虛擬機器移除掉。因此每次開啟XenApp,看到的都會是預設軟體的樣子,使用者無法自訂軟體。

在檔案傳輸方面,XenApp會在連線時,把使用者本機端的硬碟作為網路上的芳鄰連線過去。使用XenApp開啟檔案時會看到磁碟機有幾個是網路上的硬碟,這才是本機端的硬碟。至於XenApp裡面看到的桌面跟C磁碟機都是虛擬機器本身的裝置,關閉XenApp之後就會消失。

在這樣的架構下,XenApp一樣有連線人數的限制,端看學校購買的授權數量,決定可以同時可以使用的連線人數。另一方面,XenApp的架構也是一個付費方案,所以就不是我的優先選擇。

Linux的X Window / Linux’s X Window

image

說到遠端桌面,大家是不是太專注在Windows上,而忘記了Linux本身就有強大的X Window呢?

其實X Window所提供的X11 Forwarding本身就能達到「只開啟應用程式」的效果。這篇SSH X11 Forwarding介紹的很詳細當然,鳥哥則是對X Window System則有較詳細的介紹鳥哥則是對X Window System則有較詳細的介紹。我也在Ubuntu上運作成功。做法是:

  1. 先在伺服器Ubuntu上安裝SSH:sudo apt-get install –y sshd
  2. 設定好Ubuntu的網路,確認客戶端Windows 7可以連線到Ubuntu
  3. 客戶端Windows 7上安裝Xming,要重開機
  4. 開啟PuTTY,設定連線到Ubuntu,啟用Enable X11 forwarding
    2014-08-05_151611
  5. 登入SSH,進入命令列
  6. 以指令開啟要執行的應用程式,例如gedit
  7. 稍等片刻,客戶端Windows就會出現原本只能執行在Linux上的gedit

image

雖然步驟繁多,但是能在Windows開啟Linux的應用程式這點還是挺令人感到新奇的。不過實際上操作一下,發現問題有幾點:

  • 剪貼簿運作正常,可以在Linux應用程式與Windows應用程式裡面複製貼上
  • 無法使用Windows的輸入法,但可以複製貼上過去
  • 檔案系統依然是Linux上的檔案系統

儘管如此,由於X Window並沒有限制連線數量,只要硬體效能足夠,應該可以提供大量使用者連線操作才是。

在Linux上運作Windows的程式 / Run Windows Application on Linux

如果要走X Window的方式提供遠端應用程式服務,那另一個問題在於,我們平常用的還是Windows的應用程式,而不是Linux的應用程式。

事實上,Linux有許多可以運作Windows應用程式的方法,以下兩個方案是最常見的做法:

  • Wine:GPL開放原始碼軟體
  • CrossOver:付費軟體,有提供限時試用版

這兩種方案都是使用轉換技術,講Windows的架構轉換成可以在Linux執行的環境,以在Linux開啟Windows的應用程式。雖然Wine是開放原始碼的軟體,但是使用上似乎有諸多問題。不同Wine版本、不同的Linux發佈版、不同的Windows應用程式版本之間對應會有許多問題。反觀CrossOver似乎評價就比較正面(也許是因為付費了,稱讚一下也好?)。

如果有這些軟體搭配的話,我在想可能的架構就可以變成:

  • 在Linux伺服器上架設Wine環境
  • 安裝Windows應用程式
  • 客戶端上連線到Linux伺服器,開啟以Wine轉換的Windows應用程式

這樣子理想上就能達到不限人數的遠端應用程式的目標。不過我們還有其他問題還沒解決,一個是輸入法,另一個是檔案傳輸。輸入法的部分,這是另一個世界,我還得去研究看看;但是檔案傳輸的部分則比較簡單,我想可以用SFTP或是ownCloud來解決。

使用SSH交換遠端應用的檔案 / File Sharing with RemoteApp Server By SSH

最簡單的做法是使用SFTP連線到Linux伺服器。也就是說,連線到Linxu伺服器時,我們同時使用了三種服務:

  • SSH command
  • SSH X11 Forwarding
  • SFTP

這三種都是走SSH連線,這樣做最單純。


小結:離實用仍有段距離 / Conclusion: Non-Ideal Solution

總歸上述,目前比較可能可以使用的方案有兩個:

  • Winflector:Windows應用程式支援良好,但是限制人數2人
  • Linux X Windows System:不限制人數,但是Windows應用程式支援堪慮

不論是那一種方案,其實都不甚理想。市面上也有許多付費的VDI應用方案,但我還是希望先能找到以自由軟體發佈的替代方案為主。

再等等看吧。

(more...)

修改XAMPP的登入使用者與登入資訊 / Change XAMPP Security Username & Message

布丁布丁吃布丁

修改XAMPP的登入使用者與登入資訊 / Change XAMPP Security Username & Message

2014-08-04_191405

XAMPP是一個集合Apache、PHP與MySQL等眾多工具的網頁伺服器套裝開放原始碼軟體。XAMPP部分管理功能以Apache的認證鎖定,像是phpMyAdmin、Webalizer網路流量,必須要登入之後才能使用。雖然XAMPP有提供修改密碼的功能,但是卻沒有直接修改登入使用者名稱與登入訊息的功能。因此,以下本文將教你如何修改XAMPP的登入使用者與登入訊息。

XAMPP is a web server which integrated Apache, PHP, MySQL and other tools. XAMPP use Apache to implement server’s security. This article show you how to change the security username and message of XAMPP.


XAMPP網頁的登入畫面 / Login XAMPP Web

安裝好XAMPP之後,你可以在本機端用以下網址開啟XAMPP的管理畫面:

http://localhost/xampp

而這時候XAMPP會跳出一個登入對話視窗,如下:

Authentication-for-directory - 複製

(圖片來自於:XAMPP for Linux in Ubuntu Gutsy – Security Setting,我加上了數字編號)

上面這張登入視窗是使用Internet Explorer,使用Google Chrome或Firefox會有點不同,但主要資訊倒是不會改變。這裡面有三個資訊需要制訂:

  1. User Name 登入帳號:XAMPP採用預設帳號,Windows底下使用xampp;Linux底下使用lampp
  2. Password 登入密碼:許多文章都有針對XAMPP密碼修改的地方進行介紹,例如挨踢路人甲的XAMPP的安全設定
  3. 登入訊息:預設採用xampp user。

雖然網路上大多談的是登入密碼的修改,但卻很少有人在講登入帳號與登入訊息的修改。其實這些設定也都只是使用Apache的內建功能,熟悉Apache的話倒也不難修改啦。以下就介紹如何修改登入帳號與登入訊息吧!

修改XAMPP的登入帳號 / Change XAMPP Security Username

以下我以Linux的環境進行說明。首先請以root的身份登入到Linux指令端操作。如果你的 XAMPP安裝在/opt/lampp底下的話(這是XAMPP教學的預設路徑),登入帳號檔案的位置如下:

/opt/lampp/lib/xampp.users

開啟之後,你會看到檔案訊息:

lampp:AtSURIRINO.bV6

以冒號為分界點,後面藍色的亂碼文字是登入時要輸入的帳號,已經經過加密,請使用XAMPP目錄保護功能修改;前面紅色的lampp則是登入帳號,使用明碼記錄。只要修改這個lampp成為你要登入的帳號,下次登入XAMPP時就用這個使用者帳號即可。附帶一提,這個帳號跟Linux的使用者無關,可以自行設定。

修改XAMPP的登入訊息 / Change XAMPP Security Message

要修改登入訊息的部分,則必須修改XAMPP目錄底下的.htaccess檔案才行(注意,檔案開頭即是一個點「.」,並非錯字)。XAMPP各個管理功能底下都有.htaccess,這也是Apache認證網頁的設定檔案,詳細細節請看鳥哥的介紹。XAMPP有時候使用.htaccess阻擋使用者從網路進入本機的管理檔案,而有三個.htaccess則是提供登入使用的設定檔,路徑如下:

  • /opt/lampp/htdocs/webalizer/.htaccess
  • /opt/lampp/htdocs/xampp/.htaccess
  • /opt/lampp/phpmyadmin/.htaccess

這些檔案的內容都一樣,內容如下:

AuthName "xampp user"
AuthType Basic
AuthUserFile /opt/lampp/lib/xampp.users
require valid-user

其中紅字的xampp user就是登入顯示的訊息。請改成你想提供的訊息,那下次XAMPP就會把這個訊息顯示在登入對話視窗裡面了。

2014-08-04_195433

這樣就完成了,讓你的XAMPP更加安全吧!

(more...)

關閉TurnKey Linux網頁固定的頁尾廣告 / Remove TurnKey Linux’s Web Footer Advertisement

布丁布丁吃布丁

關閉TurnKey Linux網頁固定的頁尾廣告 / Remove TurnKey Linux’s Web Footer Advertisement

2014-07-02_202744

TurnKey Linux所提供的網頁底部會有他們的廣告,例如「Moodle Appliance – Powered by TurnKey Linux」。由於這個設定是強迫每個以「text/html」輸出的網頁都加入這個設定,有時候會造成自己設計的網頁跑出意外的資料。這篇文章則是教你如何移除TurnKey Linux的廣告。

TurnKey Linux Moodle Appliance puts advertisements in the footer of webpage. This article show you how to revise mod_substitute configuration to remove TurnKey Linux’s advertisement.


Apache的Substitute模組 / Apache Module Substitute

TurnKey Linux的廣告是使用了mod_substitute模組。這個Apache網頁伺服器模組可以為特定的網頁內容加入指定的內容。在TurnKey Linux Moodle Appliance裡面,mod_substitute的路徑位置如下:

  • /etc/apache2/mods-enable/substitute.conf

其內容資料為:

<Location ~ "^/(?!(lib/editor))">
AddOutputFilterByType SUBSTITUTE text/html
Substitute "s|</head>|<style type='text/css'> #turnkey-credit { font-family: Tahoma,Sans,Arial,Helvetica,Verdana,sans-serif; font-size: 11px; text-align: center; } #turnkey-credit a { text-decoration: none; } #turnkey-credit a:hover { text-decoration: underline; } </style></head>|i"
Substitute "s|</body>|<div id='turnkey-credit'> <div> <a href='http://www.turnkeylinux.org/moodle'>Moodle Appliance</a> - Powered by <a href='http://www.turnkeylinux.org'>TurnKey Linux</a> </div> </div></body>|i"
</Location>

2014-07-02_202744

由此設定檔substitute.conf可以看到,TurnKey Linux把廣告安插在</head>標籤與</body>標籤的後面。但這種強硬的設定會造成我們在建置網站時的諸多困擾。以下我將繼續說明如何移除這個設定。

移除TurnKey Linux的廣告 / Remove TurnKey Linux’s Advertisement

Image 1

做法如下:

  1. root身份進入以TurnKey Linux架設伺服器的命令列
  2. 修改mod_substitute.conf的檔案名稱:
    mv /etc/apache2/mods-enable/substitute.conf /etc/apache2/mods-enable/substitute.c


  3. 建立空白的mod_substitute.conf:
    touch /etc/apache2/mods-enable/substitute.conf

  4. 重新啟動 Apache伺服器:
    /etc/init.d/apache2 restart

2014-07-02_211744

重新啟動網頁,你會發現TurnKey Linux的廣告已經不見囉。


小結:mod_substitute的其他應用 / Conclusion

雖然這篇的教學是把TurnKey Linux在mod_substitute中設定的廣告拿掉,但反過來說,mod_substitute也是一種在網站中加入固定資料內容的好用工具。

有時候也不一定是廣告,甚至也可能可以加入CSS、JavaScript等函式庫,當然也可以用這種方式在每個網頁都加入KALS的功能

然而,mod_substitute畢竟是伺服器管理者的管轄範圍,這樣做就會為網站開發者帶來困擾。還是讓網頁功能回歸到程式碼本身,伺服器不宜加入太多影響吧。

(more...)

ownCloud安裝檔案移動(files_mv)應用程式 / ownCloud Install Files Move (files_mv) App

ownCloud安裝檔案移動(files_mv)應用程式 / ownCloud Install Files Move (files_mv) App

2014-07-28_191509

ownCloud是一個類似Dropbox的雲端硬碟開放原始碼服務軟體,以PHP搭配MySQL架設,特別適用於Linux環境。ownCloud 6.0的網頁使用介面並沒有提供檔案搬移的功能,但是可以透過安裝Files Move (files_mv)應用程式,讓使用者可以在網頁使用介面中直接搬移檔案。

ownCloud is an opensource software which provide a cloud storage service like Dropbox. In ownCloud 6.0, user cannot move files in web interface. But you can install Files Move (files_mv) app to provide this function.


STEP.1 下載flies_mv外掛 / Download files_mv App

2014-07-28_192217

2014-07-28_192006

下載之後會得到一個zip壓縮檔,解壓縮後獲得一個資料夾名為「oc_files_mv-master」,底下有ajax、appinfo等5個資料夾。

2014-07-28_192603

接著請重新命名該資料夾為「files_mv」以免遇到無法啟用應用程式的問題

STEP.2 上傳files_mv檔案 / Upload files_mv Files

2014-07-28_192856

請上傳到你ownCloud安裝資料夾底下的apps資料夾。

如果你的ownCloud安裝在 /var/www/owncloud 底下,那麼上傳路徑就是 /var/www/owncloud/apps/底下。

STEP.3 啟用files_mv / Enable files_mv App

[Oc登入畫面]

接著請開啟ownCloud的網頁使用介面,並以管理員(Administrator)群組中的身份登入OwnCloud。

2014-07-28_193046

到左下角進入應用程式管理介面。

2014-07-28_193441

找到Files Move,進入Files Move設定畫面,按下啟用(Enable)按鈕。

2014-07-28_193655

如果出現以下錯誤訊息:

「An exception occurred while executing 'INSERT INTO `oc_appconfig` ( `appid`, `configkey`, `configvalue` ) VALUES( ?, ?, ? )': SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'appid' cannot be null」

表示你的資料夾名字未正確命名為「files_mv」,請仔細檢查。詳細請看我另一篇的介紹

2014-07-28_193803

完成安裝

2014-07-28_193312

啟用完成之後,Files move會移動到上方,跟其他已經啟用的應用程式放在一起。

2014-07-28_191509

回到檔案列表,你就可以看到檔案右邊功能多出一個「Move」按鈕。點下去之後,就可以指定要移動的路徑,可以手動輸入路徑,或是從下拉選單中所列出的目錄選取。最後再按下「Move」按鈕就可以開始移動。

如果檔案很大的話,移動會花上比較長的時間。它不會提示移動進度,請耐心等候。

儘管Files Move (files_mv) 並不若一般Windows檔案管理介面那樣好操作,但總比無法搬移檔案的好,免費的軟體就加減用吧!

(more...)