【完整教學】使用 Ubuntu 架設檔案伺服器|Samba & NFS 安裝設定與最佳實踐指南

目次

1. 為什麼要使用 Ubuntu 建立檔案伺服器?

什麼是檔案伺服器?

檔案伺服器是一種伺服器,它提供在同一網路上的多個裝置可以儲存與共享檔案的機制。透過它可以有效率地進行公司內部或家庭網路中的檔案交換,並集中管理資料,簡化備份流程,具有多項優點。

例如,當多位使用者想要共同編輯同一份文件時,與其透過個人電腦間傳送更新檔,不如將檔案儲存在檔案伺服器上,這樣大家都能隨時存取最新版本。此外,也能降低將資料存放在個人電腦上的風險,對於防止資料遺失也有幫助。

使用 Ubuntu 有哪些優勢?

雖然市面上有許多作業系統可以用來建立檔案伺服器,但Ubuntu 是非常受歡迎的選擇之一。以下是幾個主要原因:

1. 免費使用

Ubuntu 是一個開源的 Linux 發行版本,完全免費,不需支付授權費用。對於預算有限的個人或企業來說,是一個非常有吸引力的選擇。

2. 輕量且穩定性高

Ubuntu 的資源使用效率高,即使是舊電腦或樹莓派(Raspberry Pi)也能順利運作。若選擇長期支援(LTS)版本,還能獲得長時間的安全更新與錯誤修正,非常適合用於伺服器。

3. 支援 Samba、NFS 等多種工具

在 Ubuntu 中可以輕鬆安裝並設定如 Samba(與 Windows 共享)或 NFS(Linux/Unix 系統間共享)等網路檔案系統。擁有豐富的套件與教學文件,即使是新手也能輕鬆上手。

4. 社群活躍、資訊豐富

由於 Ubuntu 在全球廣泛使用,遇到問題時搜尋一下就能找到許多解決方案。不僅有英文資料,中文(含台灣使用者)的資源也相當豐富,即使不擅長英文也能安心使用。

最適合用於家庭與小型辦公室

利用 Ubuntu 架設的檔案伺服器,無論是在家中多台裝置之間共享資料,或是小型辦公室(SOHO)進行協作作業,都是非常實用的選擇。比起購買 NAS(網路儲存設備),自建伺服器不僅更具彈性,也更具成本效益。

以下是一些實際應用的例子:

  • 家庭成員共享照片與影片的媒體伺服器
  • 小型公司共享發票、報價單等文件
  • 開發團隊內部交換程式碼或技術文件
年収訴求

2. 檔案伺服器的兩種方式比較|Samba 與 NFS 的差異

在 Ubuntu 上建立檔案伺服器時,主要有兩種常見方式:SambaNFS。這兩者都是透過網路分享檔案的技術,但針對的用戶端作業系統與特性有所不同。以下將比較它們的差異,幫助你判斷該選用哪一種。

什麼是 Samba?具備與 Windows 高相容性的檔案共享方案

Samba 是一種在 Linux 系統上實作 SMB(Server Message Block) 協定的工具,該協定原本用於 Windows 的檔案共享。透過在 Ubuntu 上安裝 Samba,你可以建立一個可讓 Windows 電腦像連接網路磁碟機一樣存取的檔案伺服器

Samba 的特點

  • 與 Windows 系統高度相容
  • 可直接從 Windows 檔案總管存取共享資料夾
  • 支援細緻的使用者驗證與權限管理
  • 支援圖形化設定工具(例如 Webmin)

Samba 適合使用的情境

  • 需要與 Windows 裝置進行檔案共享
  • 跨作業系統(如 Windows 與 Linux)間的資料共享
  • 家庭或辦公環境中需要直覺且友善的操作介面

什麼是 NFS?適合 Linux/Unix 之間高速共享的方案

NFS(Network File System) 是一種主要用於 Linux 或 Unix 系統之間 的檔案共享協定。在用戶端看來,NFS 伺服器的資料夾就像是本機的目錄一樣,可以直接掛載並使用。

NFS 的特點

  • 最適合用於 Linux 系統之間的檔案共享
  • 效能輕巧,傳輸速度快
  • 設定簡單,適合規模較大的共享環境
  • 需特別留意安全性設定(如 IP 為基礎的存取控制)

NFS 適合使用的情境

  • 僅限於 Linux 系統之間的檔案共享環境
  • 開發團隊內部共用伺服器目錄
  • 需要快速且輕量化檔案傳輸的場合

Samba 與 NFS 的比較表

比較項目SambaNFS
支援的作業系統Windows / Linux / macOS 等Linux / Unix(不建議用於 Windows)
使用協定SMB(CIFS)NFS
速度中等(依設定而異)高速
安全性設定支援使用者驗證與加密以 IP 為主的存取控制,可搭配 Kerberos
設定難易度稍複雜較簡單
推薦用途跨作業系統共享Linux 系統之間的高效共享

該選哪一種比較好?

總結來說,該選用哪一種取決於使用的作業系統、使用方式與重視的優先項目

  • 如果重點是與 Windows 裝置共享檔案,建議使用 Samba
  • 若是純 Linux 環境,NFS 更簡潔且速度更快
  • 若混合環境存在,可考慮 Samba 與 NFS 同時併用

利用 Ubuntu 的靈活性,你可以根據實際需求自由搭配與部署。

3. 【Samba 教學篇】在 Ubuntu 上建立檔案伺服器的步驟

接下來將會詳細介紹如何在 Ubuntu 上安裝 Samba 並建立檔案伺服器。這種方法特別適合想要與 Windows 裝置共享檔案的使用情境。

事前準備|更新 Ubuntu 系統與檢查套件

首先,請先確保 Ubuntu 系統為最新狀態。打開終端機並執行以下指令:

sudo apt update
sudo apt upgrade

接著,確認 Samba 是否已安裝:

smbclient --version

如果沒有顯示版本資訊,請繼續以下步驟進行安裝。

安裝 Samba 套件

執行以下指令來安裝 Samba:

sudo apt install samba -y

安裝完成後,確認服務是否已啟動:

sudo systemctl status smbd

若顯示「active (running)」即代表服務正常運作。

設定 smb.conf 與建立共享資料夾

Samba 的設定檔位於 /etc/samba/smb.conf。我們首先建立一個共享資料夾。以下範例將 /srv/samba/shared 設為共享目錄:

sudo mkdir -p /srv/samba/shared
sudo chmod 777 /srv/samba/shared

接下來編輯 Samba 設定檔:

sudo nano /etc/samba/smb.conf

在檔案末尾新增以下內容:

[Shared]
   path = /srv/samba/shared
   browseable = yes
   read only = no
   guest ok = yes

這樣的設定會建立一個所有人都可讀寫的公開共享資料夾。若需強化安全性,請參考下方的「使用者驗證設定」。

最後,重新啟動 Samba 服務以套用設定:

sudo systemctl restart smbd

建立 Samba 使用者與權限設定

若希望進一步控制存取權限,建議建立 Samba 使用者並設定驗證。

  1. 建立 Ubuntu 本地使用者(若已存在可略過)
sudo adduser sambauser
  1. 將該使用者加入 Samba 使用者清單
sudo smbpasswd -a sambauser
  1. 變更資料夾擁有者與存取權限
sudo chown sambauser:sambauser /srv/samba/shared
sudo chmod 770 /srv/samba/shared
  1. 修改 smb.conf,啟用使用者驗證:
[SecureShared]
   path = /srv/samba/shared
   browseable = yes
   read only = no
   valid users = sambauser

從 Windows 客戶端連線的方式

Samba 設定完成後,可以從 Windows 電腦依以下步驟連線:

  1. 開啟「檔案總管」
  2. 在地址列輸入:\\Ubuntu伺服器的IP地址\Shared
  3. 若出現登入畫面,請輸入剛建立的 sambauser 帳號與密碼

連線成功後,即可像使用本機資料夾一樣進行檔案讀寫。

4. 【NFS 教學篇】在 Ubuntu 上建立檔案伺服器的步驟

NFS(Network File System)是一種廣泛應用於 Linux 和 Unix 系統的輕量化且高速的網路檔案共享協定。在 Ubuntu 上也能輕鬆導入,讓多台 Linux 機器之間順利交換檔案。

本章將逐步說明如何在 Ubuntu 上建立 NFS 檔案伺服器

安裝 NFS 伺服器套件

首先,在作為伺服器端的 Ubuntu 機器上,安裝 NFS 所需套件:

sudo apt update
sudo apt install nfs-kernel-server -y

安裝完成後,確認服務是否已啟動:

sudo systemctl status nfs-server

若顯示「active (running)」即表示服務運作正常。

設定 /etc/exports 與指定共享目錄

接下來建立要共享的資料夾。此範例使用 /srv/nfs/shared 作為共享目錄:

sudo mkdir -p /srv/nfs/shared
sudo chown nobody:nogroup /srv/nfs/shared
sudo chmod 755 /srv/nfs/shared

然後編輯 NFS 設定檔 /etc/exports

sudo nano /etc/exports

加入以下設定(請依實際網段修改 192.168.1.0/24):

/srv/nfs/shared 192.168.1.0/24(rw,sync,no_subtree_check)

接著執行以下指令以套用設定:

sudo exportfs -a
sudo systemctl restart nfs-server

至此,NFS 伺服器端的設定完成。

在客戶端掛載(Linux)

想要存取 NFS 檔案的客戶端也需要安裝 NFS 套件:

sudo apt update
sudo apt install nfs-common -y

建立掛載目錄,例如:

sudo mkdir -p /mnt/nfs_shared

接著執行以下指令掛載 NFS 共享資料夾:

sudo mount -t nfs 192.168.1.10:/srv/nfs/shared /mnt/nfs_shared

192.168.1.10 是 NFS 伺服器的 IP 位址。

此時,你就可以像本地目錄一樣存取該資料夾。

開機自動掛載(選用)

若希望在開機時自動掛載,可在 /etc/fstab 加入下列設定:

192.168.1.10:/srv/nfs/shared /mnt/nfs_shared nfs defaults 0 0

這樣系統啟動時會自動掛載 NFS 共享目錄。

NFS 的存取控制與注意事項

NFS 與 Samba 不同,主要透過IP 位址來限制存取權。因此在 /etc/exports 中,請只設定你信任的網段或 IP。

此外,若伺服器與客戶端的 UID(使用者 ID)與 GID(群組 ID)不同,可能會導致無法正確辨識檔案擁有者。因此,建議將共享資料夾的 UID/GID 在各機器間保持一致,可避免權限錯誤。

完成這些設定後,你就能順利透過 NFS 建立 Ubuntu 的檔案伺服器。相較於 Samba,NFS 更簡潔、速度更快,非常適合 Linux 環境內部使用。

5. 安全性與日常管理的最佳實踐

檔案伺服器是一種非常方便的網路資料共享機制,但如果沒有妥善的安全措施,可能會導致資料外洩或未經授權的存取。本章節將介紹在使用 Ubuntu 建立檔案伺服器時,應注意的安全性與系統維運上的最佳實踐

使用防火牆(ufw)限制存取

Ubuntu 預設搭載了簡易防火牆工具「ufw(Uncomplicated Firewall)」。使用 Samba 或 NFS 進行檔案共享時,建議只開放必要的連接埠,以阻擋非授權存取。

Samba 範例:開放必要連接埠

sudo ufw allow Samba

這條指令會自動開放 Samba 所需的所有連接埠(137、138、139、445)。

NFS 範例:指定網段開放

NFS 使用的埠號依系統環境而異,建議指定來源網段來限制存取:

sudo ufw allow from 192.168.1.0/24 to any port nfs

192.168.1.0/24 請依實際網段調整。

加強存取控制與使用者驗證

Samba 的存取限制建議

  • 使用 valid users 限定特定使用者才能存取共享資料夾
  • 設定 read only = yes 限制為唯讀模式
  • 搭配 hosts allowhosts deny 以 IP 位址進行過濾

設定範例(smb.conf):

[SecureShared]
   path = /srv/samba/secure
   read only = no
   valid users = user1
   hosts allow = 192.168.1.

NFS 的安全性設定建議

  • /etc/exports 中明確指定允許存取的 IP 或網段
  • 使用 rw(可讀寫)或 ro(唯讀)清楚區分權限
  • 啟用 root_squash,避免用戶端以 root 權限操作伺服器檔案

設定範例:

/srv/nfs/secure 192.168.1.0/24(rw,sync,no_subtree_check,root_squash)

監控日誌與異常偵測

為防止未授權存取或錯誤發生,定期檢查伺服器日誌 是維運管理的重要一環。

  • Samba 日誌:/var/log/samba/log.smbd
  • NFS 日誌:/var/log/syslogjournalctl -u nfs-server

建議搭配如 fail2ban 這類工具,自動封鎖多次失敗登入的 IP 位址。

建立自動備份機制

無論是硬碟故障還是誤刪資料,定期備份都是檔案伺服器不可或缺的要素

常見的備份方式

  • 使用 rsync 進行差異備份
  • 結合 cron 設定排程自動執行
  • 備份到外接硬碟或其他 NAS 裝置
  • 與雲端儲存(如 Google Drive、Dropbox)同步(可使用 rclone

例如:每天凌晨 2 點備份 Samba 共享資料夾:

0 2 * * * rsync -a /srv/samba/shared/ /mnt/backup/shared/

定期更新軟體套件

為了避免安全漏洞,請定期更新系統與套件

sudo apt update && sudo apt upgrade -y

此外,選擇 Ubuntu 的長期支援(LTS)版本,能夠確保系統在多年內都持續獲得安全性更新與錯誤修正。

請記住,檔案伺服器的管理並非「建好就完事」──唯有持續關注安全、備份與維護,才能確保長期穩定、安全的運作。

6. 常見問題與對應解法(疑難排解指南)

即使成功建立檔案伺服器,在日常使用中也可能會遇到各種設定錯誤或操作問題。以下整理了使用 Ubuntu + Samba 或 NFS 時最常見的錯誤與解決方式,方便快速排查問題。

無法連線/看不到共享資料夾

現象

  • 從 Windows 或 Linux 用戶端無法存取共享資料夾
  • 伺服器無法在網路上被偵測到

常見原因與對應方法

可能原因解決方式
防火牆阻擋連線執行 sudo ufw allow Sambasudo ufw allow from [IP] to any port nfs
無法解析伺服器名稱改用 IP 位址直接連線:\\192.168.1.10\Shared
Samba 或 NFS 服務未啟動執行 sudo systemctl restart smbdsudo systemctl restart nfs-server
用戶端網路設定錯誤檢查子網路與預設閘道設定是否正確

權限錯誤/無法存取檔案

現象

  • 無法建立或編輯檔案
  • 出現「存取被拒絕」等錯誤訊息

常見原因與對應方法

可能原因解決方式
資料夾擁有權不正確sudo chown -R 使用者:群組 /共享資料夾
權限不足sudo chmod -R 770 /共享資料夾 調整存取權限
Samba 設定錯誤確認 [shared] 區塊中 read only = no
NFS 用戶端與伺服器的 UID/GID 不一致使用 id 指令確認雙方的 UID 是否相同

掛載無法保持/重新開機後共享消失

現象

  • Linux 用戶端重開機後掛載點消失
  • 每次都需手動重新掛載共享資料夾

常見原因與對應方法

可能原因解決方式
忘記編輯 fstab/etc/fstab 中設定自動掛載
網路啟動時間晚於 fstab 掛載加入 _netdev, nofail 參數
伺服器回應延遲在掛載選項中加入 timeo=14 等延遲參數

範例:NFS 的 fstab 掛載設定

192.168.1.10:/srv/nfs/shared /mnt/nfs_shared nfs defaults,_netdev,nofail 0 0

看不到檔案/檔案未即時同步

現象

  • 其他用戶端儲存的檔案沒有顯示
  • 檔案變更沒有立即反映出來

常見原因與對應方法

可能原因解決方式
快取延遲可能為暫時性問題,按 Ctrl + F5 重新整理,或斷線重連
用戶端快取設定造成延遲NFS 掛載時加入 actimeo=0 強制同步
Samba 延遲寫入smb.conf 加入 strict sync = yes

查看日誌以進行診斷

在 Ubuntu 上進行疑難排解時,日誌紀錄是最重要的線索之一

Samba 相關日誌

cat /var/log/samba/log.smbd

NFS 相關日誌

journalctl -u nfs-server

這些日誌會記錄連線失敗、驗證錯誤與設定錯誤等訊息。你可以將錯誤訊息貼到搜尋引擎中查找解決方案。

疑難排解的訣竅

  • 每次只更改一項設定,並立即測試
  • 修改設定檔前先備份
  • 善用 testparmexportfs -v 等檢查指令
  • 修改後請重新啟動服務或重新掛載

7. 常見問題集|Ubuntu 檔案伺服器 FAQ

在使用 Ubuntu 建立與管理檔案伺服器的過程中,許多使用者會遇到一些常見疑問。本章整理了初學者到中階使用者常提出的問題與解答,作為日常操作與疑難排解的參考。

Q1. 該選擇 Samba 還是 NFS?

A. 主要取決於使用者端的作業系統。

  • 如果大多是 Windows 用戶端,建議使用 Samba(SMB)
    → 可直接從 Windows 檔案總管存取,共享體驗佳
  • 若是 Linux 間的共享需求,則推薦使用 NFS
    → 輕量、高速且穩定性強

在混合環境中,也可以同時使用 Samba 與 NFS,不需要二選一,能根據需求彈性配置。

Q2. 想分享 USB 外接硬碟該怎麼做?

A. 將外接硬碟掛載後設定為共享資料夾即可。

  1. 確認裝置代號:
lsblk
  1. 建立掛載點並掛載裝置:
sudo mkdir /mnt/usb
sudo mount /dev/sdX1 /mnt/usb
  1. 在 Samba 或 NFS 的設定中指定 /mnt/usb 為共享目錄

若希望開機自動掛載,請將設定加入 /etc/fstab

Q3. Windows 11 無法存取 Samba 共享資料夾

A. 可能是 SMB 協定版本或驗證機制造成問題。

解決方式如下:

  • 編輯 Samba 設定檔 /etc/samba/smb.conf,加入以下設定:
client min protocol = SMB2
server min protocol = SMB2
  • 不要啟用 guest 模式,建議使用者帳號與密碼登入
  • 若 Windows 啟用了「SMB 1.0」,反而建議停用(因為存在安全性風險)

Q4. 檔案伺服器要怎麼備份比較好?

A. 建議使用排程方式定期自動備份。

推薦方法如下:

  • 使用 rsync 進行差異備份
  • 搭配 cron 實現定時執行
  • 備份至外接硬碟或其他 NAS 裝置
  • 與 Google Drive 等雲端空間同步(可使用 rclone 工具)

範例:每天凌晨 2 點進行備份

0 2 * * * rsync -a /srv/samba/shared/ /mnt/backup/

Q5. Ubuntu Desktop 與 Server 哪一個比較適合拿來做檔案伺服器?

A. 若追求穩定性建議選用 Ubuntu Server,若注重操作便利則可選 Ubuntu Desktop。

項目Ubuntu ServerUbuntu Desktop
圖形介面無(資源消耗低)有(適合初學者)
系統資源使用量較低較高
操作方式主要透過命令列可使用圖形介面設定
建議用途企業環境、正式部署家庭、自學、輕量用途

若你不需要 GUI,選擇 Ubuntu Server 可獲得更好的效能與安全性。

總結來說,使用 Ubuntu 架設檔案伺服器不僅簡單且靈活,遇到問題時也容易找到解法。希望透過本篇 FAQ,你能更安心地進行部署與日常管理。

8. 總結|透過 Ubuntu 彈性實現各種檔案共享需求

使用 Ubuntu 架設檔案伺服器是一個低成本又穩定的解決方案,不論是家庭使用還是商業應用都非常合適。本篇文章詳細介紹了 Samba 與 NFS 的差異、安裝與設定步驟、安全性建議、常見問題排解等內容,幫助你實際導入並維護自己的檔案伺服器。

依照需求選擇 Samba 或 NFS

選擇正確的檔案共享方式,應根據你的使用情境與客戶端系統

  • 與 Windows 裝置共享,推薦使用 Samba
  • 支援從檔案總管直接連線
  • 帳號驗證與存取權限設定彈性
  • Linux 系統之間的高速共享,推薦使用 NFS
  • 輕量化、傳輸快速
  • 非常適合用於伺服器或開發團隊內部共享

若你同時擁有不同系統的設備,也可以同時部署 Samba 與 NFS,充分發揮 Ubuntu 的彈性。

重視安全性與可維護性

檔案伺服器建好之後,日常維護與安全管理才是長久穩定運作的關鍵。請注意以下幾點:

  • 設定防火牆與存取權限,防止未授權存取
  • 定期更新系統與套件,避免安全漏洞
  • 建置備份與日誌監控機制,降低資料遺失與錯誤風險

Ubuntu 提供的工具與社群資源非常豐富,即使是初學者也能一步步建立穩定的運作環境。

自建檔案伺服器的優勢在哪裡?

雖然市面上也有現成的 NAS 設備,但自己動手架設 Ubuntu 檔案伺服器具備以下好處:

  • 可依需求安裝所需功能,避免資源浪費
  • 硬體與儲存空間可彈性選擇與擴充
  • 透過實作提升自身對網路與系統管理的理解

如果你原本對這類架設感到有點距離,希望透過這篇文章能讓你發現——其實建立自己的檔案伺服器並不困難,反而是個非常值得嘗試的實用專案。

Ubuntu 架設的檔案伺服器,從個人備份到團隊協作、從教育用途到企業部署,都能提供穩定且彈性的解決方案。請依據你的網路環境與實際需求,打造出最適合自己的共享架構。

侍エンジニア塾