讓自製的 USB 分享器解決多人共用 USB 設備的問題

by 11月 13, 2014 3 意見                        
你是否也有這種困擾?
  • 辦公室裡那一百零一台的 USB 介面印表機,每個人要列印的時候,總是要把線拔來拔去,拔到線都快斷了。
  • 同事把 USB 隨身碟借走了,我們急著要拿回來用的時候,卻不知道插在哪一台電腦上面。
  • 正準備用 USB 介面的掃瞄器來掃瞄照片,卻發現電腦上的 USB 埠已經插滿了,而且還不能拔下來。
  • 好不容易把新買的 USB 多功能事務機裝好,要用的時候,這才發現 USB 線不夠長。
有沒有可能讓我們只用網路線,甚至是用無線的方式來共用 USB 設備呢???


若以添購硬體的方向考慮,我們可以尋找「網路 USB 多用途分享器」,如: ZOT SU-201ZOT SU-211ZOT SU-401Eusso UPS1211-IP

能選擇的產品真的不多,這邊一定要推一下 零壹科技,雖然說這塊市場不大,他們始終持續的在維護舊產品的相容性及開發新產品。

若要用軟體來完成,以關鍵字「USB over LAN」、「USB over Network」、「USB over Ethernet」、「USB over IP」進行搜尋,也有許多套軟體提供同樣的功能,如 KernelPro KernelProEltima USB Network GatewayFabulaTech USB over NetworkSimplyCore USB Redirector

偏偏 Server 端都只支援 Windows,也僅有少數的 Client 端額外支援 OS X 與 Linux,更別說還有著試用期 15 ~ 30 天不等。

難道,真的都沒有支援 Linux 的 Server 端產品嗎???

有! 我們這次要使用 VirtualHere USB Server,就是目前唯一的答案。

他們的 Server 端支援 Raspberry PiBeagle BoardOdroidOpenWRTUbuntuopenSUSECentOSAndroid。Client 端支援 WindowsOS XUbuntuRaspbianDebian WhezzyCentOSopenSUSE

另外,SynologyQNAPASUSTORNETGEAR 等廠牌的 NAS 也開始加入這個套件,支援的機型請參考 VirtualHere - Network Attached Storage Devices

接下來,我們就以 CentOS 7.0 x64 為 Server 端,以 OS X 10.10 與 Windows 7 Ultimate x64 為 Client 端來實作。


注意事項

  • VirtualHere USB Server 試用版沒有使用時間的限制,但是同時間只能連接一個 USB 設備,需要同時使用多個 USB 設備的話,請洽 VirtualHere 官網 購買正式版的授權

Server 端安裝


先複製 CentOS 7 的 Server 端 下載連結。

回到 CentOS 裡下載。
wget http://www.virtualhere.com/sites/default/files/usbserver/vhusbdc764

加入執行的權限。
chmod +x ./vhusbdc764

接著執行這個檔案就可以了,要停止服務的話,可以按 Ctrl + C。
sudo ./vhusbdc764

可以加上 -h 顯示所有可用參數。
./vhusbdc764 -h


Client 端操作


下載 OS X 的 Client 端Windows 64bit 的 Client 端

在 OS X 裡,掛載 VirtualHere.dmg 之後,裡面只有一個 VirtualHere.app 檔案。

複製到「應用程式」裡面來執行。

這時,可以看到 Server 端分享出來的 USB 隨身碟。

不過,它也會提醒我們使用的是試用版,放心! 就只是提醒而已。

在 USB 隨身碟上面按右鍵,選擇「Properties」。

可以看到它的相關訊息,以及是否有人正在使用中。

要連線使用隨身碟的話,就點選「Use」。

由於我們是第一次使用,所以程式會提示我們要安裝驅動程式。

依照它的指示順序操作即可。

程式就會顯示隨身碟正在被我們使用中。

要停止使用的話,同樣用右鍵打開選單,再點選「Stop using」即可。

在 Windows 裡執行之後,同樣會顯示 USB 隨身碟出來。

也會提醒現在用的是試用版。

第一次執行,Windows 同樣也需要安裝驅動程式。

在右鍵選單點選「Use」,同樣顯示「in use by you」。

回到 OS X 裡,則會看到隨身碟正在被 IP 為 192.168.88.62 的電腦使用者,再也不會搞不清楚到底是誰在使用了。

就像是在本機插上這支 USB 隨身碟一樣,方便的存取檔案。


異常排除

  • 出現「error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory」的錯誤訊息。

    先輸入 yum provides \*/libgtk-x11-2.0.so.0 來查詢它是屬於哪一個套件的函數庫。

    我們發現是屬於 gtk2 函數庫後,再用 yum -y install gtk2 把它安裝到系統裡。
  • 中間過程省略 ...

  • 出現「Unfortunately VirtualHere has crashed.」的錯誤訊息。

    VirtualHere USB Client 程式當掉了,重新執行一次吧。

參考資料


更新紀錄

  • 2014/11/13 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

3 則留言 :

  1. 我不是很了解,client端的設定過程並沒有任何authentication的步驟,那client端如何知道server端在哪裡?@@

    回覆刪除
    回覆
    1. 官方並沒有說明背後的技術原理,或許是使用類似 mDNS、自訂協定之類的技術吧 ...

      刪除
  2. 我買了 https://www.flexihub.com/ ,感到驚訝的是獲得對USB設備(掃描儀,加密狗,打印機等)的遠程訪問有多麼容易。
    最好的部分是VirtualBox或VMware都不是問題。

    回覆刪除