Windows 與 Linux 檔案怎麼共用?SMB Server 在 Linux 的實戰架設指南
Windows 與 Linux 檔案怎麼共用?SMB Server 在 Linux 的實戰架設指南

在 Linux 上架設與管理 SMB Server,其實沒有想像中困難。本篇將帶你一步步完成設定,包含檔案分享、使用者存取控制,以及基礎的資安設定,協助中小企業快速建立內部檔案共享環境。

在 Linux 上建置 SMB Server,對企業來說是一個相當聰明的選擇。這是一種成本效益極高的方式,可以在內部網路中輕鬆共享檔案。Linux 以穩定性著稱,約有 40% 的中小企業伺服器都是運行在 Linux 上。相較於其他系統,Linux 最多可協助企業節省約 30% 的 IT 資源成本,是一個可靠且實用的選項。

什麼是 SMB Server?為什麼要在 Linux 上使用?

SMB 是 Server Message Block 的縮寫,是一種用於在網路中共享檔案與印表機的通訊協定。雖然 SMB 最早主要應用在 Windows 環境中,但透過 Samba,Linux 也能完整支援 SMB Server。
這讓 Linux 成為同時混合 Windows 與 Linux 環境的理想選擇,特別適合企業內部存在多種作業系統的使用情境。

在 Debian 上安裝 Samba

首先,請先確認系統套件為最新版本,執行以下指令: `sudo apt update && sudo apt upgrade`.

更新系統套件

更新系統套件後,使用以下指令安裝 Samba:`sudo apt install samba`。當 Samba 安裝完成後,就可以開始進行後續設定。

SMB Server

設定 Samba

Samba 的主要設定檔位於: “/etc/samba/smb.conf”。你可以使用偏好的文字編輯器開啟該檔案,例如:`sudo nano /etc/samba/smb.conf`.

編輯 Samba 設定檔(smb.conf)

在檔案最底部加入以下設定,建立一個基本的共享資料夾:

建立基本 SMB 共享資料夾設定

“`[global]

workgroup = WORKGROUP

security = user

map to guest = bad user

[SharedFiles]

path = /srv/samba/shared

browseable = yes

read only = no

guest ok = yes“

“`

上述設定說明如下:

  • workgroup:設定工作群組名稱(預設為 WORKGROUP)
  • security = user:啟用使用者驗證機制
  • map to guest = bad user:將未知使用者對應為訪客帳號
  • [SharedFiles]:定義共享資料夾名稱
  • path:指定要分享的資料夾路徑
  • browseable = yes:允許在網路上被瀏覽
  • read only = no:允許寫入資料
  • guest ok = yes:允許訪客不需驗證即可存取

建立共享資料夾

使用以下指令建立共享目錄: `sudo mkdir -p /srv/samba/shared`.

建立共享目錄

接著調整權限:`sudo chown nobody:nogroup /srv/samba/shared` and `sudo chmod 777 /srv/samba/shared`。這會建立 “/srv/samba/shared” 資料夾,並設定為所有使用者(包含訪客)皆可讀寫。

設定資料夾權限

啟動並設定 Samba 服務自動啟用

完成設定後,啟動 Samba 與 NetBIOS 服務: `sudo systemctl start smbd nmbd`.

啟動 smbd 與 nmbd 服務

若希望系統開機時自動啟動服務,請執行:`sudo systemctl enable smbd nmbd`.

設定 Samba 開機自動啟動

新增 Samba 使用者

若希望限制只有特定使用者才能存取共享資料夾,可以建立 Samba 使用者: `sudo smbpasswd -a username` 。請將 username 替換為實際的使用者名稱,系統會要求你設定密碼,該密碼將用於存取 SMB Share 時的驗證。

建立 Samba 使用者帳號

從 Windows 存取 SMB Server

在 Windows 電腦上操作如下:

  1. 開啟「檔案總管(File Explorer)」
  2. 在位址列輸入: \\<IP_address> (replace <IP_address> )。For 例如: \\192.168.1.100.
  3. 你會看到名為 SharedFiles 的共享資料夾,若系統要求登入,請輸入先前建立的 Samba 使用者帳號密碼

從 Linux 存取 SMB Server

在另一台 Linux 主機上,可使用 smbclient 工具。若尚未安裝,請先執行:`sudo apt install smbclient`.

在 Linux 安裝 smbclient 工具

接著使用以下指令連線: `smbclient //192.168.1.100/SharedFiles -U username`

使用 smbclient 連線 SMB Share

上傳檔案: `put filename`

上傳檔案

下載檔案: `get filename`

下載檔案

強化 SMB Server 的安全性

若要提升安全性,建議關閉訪客存取,將設定改為: guest ok = no

:強化 SMB Server 的安全性

你也可以指定僅允許特定使用者存取:valid users = username。

限制可存取 SMB Share 的使用者

修改完成後,請重新啟動服務: `sudo systemctl restart smbd nmbd`

重新啟動 Samba 服務套用設定

問題排查與故障排除

  • 防火牆設定:請確認已開放 137、138、139、445 連接埠
  • 服務狀態systemctl status smbd nmbd.
檢查 SMB Server 服務是否正常執行
  • 檢查 Log/var/log/samba/.
查看 Samba Log 記錄

總結:如何建立安全且可管理的 GCP IAM 架構

在 Debian 上透過 Samba 架設 SMB Server 相當容易,且能在 Windows 與 Linux 之間順利共享檔案。本指南已帶你完成一套可實際運作的 SMB Server 設定流程,無論是家庭使用或中小企業環境都非常合適。
如同許多企業在導入雲端與混合式架構時的實務經驗,勤英科技也經常協助客戶將內部檔案服務與雲端架構整合,確保效能、資安與成本三者平衡。

勤英科技 是 AWS 官方授權的雲端代理商 ,專注於協助企業導入 AWS、優化帳務流程並加速雲端部署。我們可協助企業使用新台幣付款、開立台灣發票,並享有專屬優惠與技術支援。無論你是第一次上雲,或正在升級既有架構,勤英科技都能提供一對一的專業顧問服務。

常見問題(FAQ)

什麼是 SMB?為什麼要在 Linux 上使用 SMB?

SMB(Server Message Block)是由 Microsoft 推出的網路通訊協定,主要用於在網路中共享檔案與印表機。
在 Linux 環境中,透過開源軟體 Samba,即可完整支援 SMB,讓 Linux 伺服器能與 Windows 網路環境無縫整合,非常適合混合式作業系統的企業內部網路。

在 Linux 上架設 SMB Server 有哪些優點?

在 Linux 上架設 SMB Server 具有高度的成本效益,因為 Linux 本身是開源系統,不需額外授權費用。
同時,Linux 的彈性高、可高度客製化,且在資安穩定性上通常優於 Windows,非常適合中小企業或需要長時間穩定運作的檔案共享環境。

Linux 架設的 SMB Server 常見應用情境有哪些?

以 Linux 架設的 SMB Server,最常見的用途包含:
1. Windows 與 Linux 混合環境的檔案共享
2. 中小企業的集中式檔案儲存
3. 內部文件管理或共用資料夾
4. 列印伺服器(Print Server)整合
對於不想投入高額授權成本、但又需要穩定共享服務的企業來說,是非常實用的解決方案。

該如何為 Linux 發行版選擇合適的 Samba 版本?

選擇 Samba 版本時,建議依照你的 Linux 發行版與實際使用需求來評估。
較新的 Samba 版本通常提供更多功能與較佳的資安修補,但在某些舊系統或舊版 Windows 客戶端環境中,可能會有相容性問題。因此,在升級前建議先確認系統與客戶端的支援狀況。

author avatar
Golam Rabbany
SMB Server 檔案伺服器