一.什么是Samba服務器?
Samba服務器是一種基于開源協議實現的網絡共享服務軟件,主要用于在不同操作系統(如Windows、Linux、Unix)之間實現文件和打印機共享功能。其核心目標是解決跨平臺資源共享的兼容性問題,尤其是在混合網絡環境中2。
1.Samba服務器的核心功能
-
跨平臺文件共享
通過實現SMB/CIFS協議(Windows系統默認使用的文件共享協議),Samba允許Linux/Unix主機與Windows主機在局域網內直接共享文件。例如,用戶可在Windows資源管理器中直接訪問Linux服務器上的文件12。 -
打印機共享
Samba可將連接到Linux主機的打印機共享給局域網內的其他設備(包括Windows主機),實現跨平臺打印服務1。 -
用戶權限管理
支持基于用戶或組的訪問控制,可設置不同用戶對共享資源的讀寫權限。例如:[shared_folder] path = /home/share valid users = user1, user2 writable = yes
-
域名服務(Domain Controller)
高級配置中,Samba可充當Windows域控制器(Active Directory),實現統一的網絡身份認證和管理3。
2.主要用途
-
混合網絡環境整合
在同時存在Windows和Linux設備的網絡中,Samba解決了傳統協議(如NFS僅適用于Unix,CIFS僅適用于Windows)的局限性,成為跨系統協作的橋梁2。 -
簡化文件同步
用戶可直接修改服務器上的文件,無需反復下載上傳,避免了版本沖突問題(例如FTP的局限性)2。 -
低成本解決方案
作為開源軟件,Samba降低了企業部署共享服務的成本,同時提供與商業方案(如Windows Server)相近的功能 -
技術原理
Samba通過模擬SMB協議的工作流程實現功能:
客戶端請求→SMB協議解析→Linux文件系統操作→返回響應客戶端請求→SMB協議解析→Linux文件系統操作→返回響應
此過程在局域網內完成,延遲低且效率高
二.ubuntu搭建samda服務器
1.安裝samda軟件
先更新一下:sudo apt update
之后下載? : sudo apt install samba -y
下載時遇到報錯:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
輸入下面指令:
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
出現:E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
輸入下面指令:
(sudo apt update //更新軟件源)一般不用跟新
//強制修復依賴鏈
sudo apt --fix-broken install
sudo apt install -f
手動處理版本沖突(以引用[2]中的libgbm1為例)
sudo apt install libgbm1=22.0.1-1ubuntu2.1sudo apt-mark showhold # 查看被鎖定的包
sudo apt-mark unhold 包名 # 解除鎖定sudo apt install -f //執行這個指令后就重新下載samda,我是到這里就沒有問題了
如果還是提示E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
可能是鏡像源有問題,
1、首先使用以下命令備份現有的鏡像源:
cd /etc/apt
sudo cp sources.list sources.list.bak?
2、使用以下命令打開鏡像源文件:
sudo vim /etc/apt/sources.list ?
3、在vim插入模式下使用以下內容替換掉原鏡像源文件sources.list中的內容:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
4、保存并退出。
5、在ubuntu能正常上網的前提下,使用以下命令更新軟件列表:
sudo apt-get update
sudo apt-get upgrade
經過以上流程,ubuntu使用的鏡像源就是清華的鏡像源了。
2.創建 Samba 共享文件夾
用戶創建的任何文件夾都可以做共享文件夾(只要開放讀寫權限),如果不想創建新的文件夾,可以跳過創建的步驟,在現有的文件夾中選一個設置權限即可。
使用mkdir命令(后面的參數-p是用于創建多級目錄使用的,去掉也不影響),新建一個名為?
mkdir -p Share,建立之后去到share中。用pwd查看其絕對路徑,之后用到
返回上一級目錄,給建立的share文件添加777權限
3.配置samda文件和設置samda密碼
為保險起見,先備份一下原來的 Samba 配置文件。后面出現操作失誤等問題導致文件亂了,還有備份來用
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.beifen
編輯配置smb.conf
配置文件,添加共享目錄。
sudo vim /etc/samba/smb.conf
進來之后,直接按組合鍵Shift+g跳到結尾處,在結尾處把下面的文本添加進去,要注意根據自己的情況修改。
[Ubuntu_18.04] //這是共享的名稱,你可以在網絡上訪問該共享時使用。comment = Samba //這是關于共享的描述或注釋,顯示給用戶看。path = /home/www/Share //這是共享的實際路徑。public = yes //這表示該共享是否為公共共享,即是否允許匿名用戶訪問。writable = yes //表示是否允許用戶在共享中創建、編輯和刪除文件。available = yes //表示該共享是否可用。browseable = yes //表示該共享是否在網絡上可以瀏覽。valid users = www 當前 Ubuntu 系統的用戶名。 www改成你的用戶名
然后保存退出,接著給 Samba 用戶設置密碼:
sudo smbpasswd -a www? ? (www是我的用戶名,這里寫你自己的)
4.重啟 Samba 服務器
重啟 Samba 服務器可以直接輸入下列命令:
systemctl restart smbd.service //重啟
systemctl enable smbd.service //能使
輸入第一條命令的時候會出現一次下面這個,這個就是你的登入用戶的密碼,不是剛才設置的密碼
輸入第二個執行會出現三次,輸入密碼就好了
完成之后查看運行情況: systemctl status smbd.service,看綠色的running,這表示正在運行
5.設置靜態IP地址
1.查看IP 地址了
輸入ifconfig
便可查看 IP 地址了,如圖中紅框所標位置就是本臺 Ubuntu 的 IP 地址。在不確定其它 IP 地址是否被其它設備占用的情況下,直接把當前的 IP 地址設置為靜態 IP 最為妥當
2. 查看網關
設置靜態 IP 的前置條件是,我們需要先知道局域網的默認網關和子網掩碼分別是什么。可以先通過輸入這個route -n命令來獲得默認網關和子網掩碼。
其中的 Gateway 的地址就是網關地址,都是 192.168.168.2
而 Genmask 為子網掩碼。由于 IPv4 地址是由 32 位二進制數構成的,其中前 24 位被用來表示網絡部分,所以子網掩碼 255.255.255.0 的網絡部分占據了 24 位,那么在 IP 地址后面就要寫 24。(一共四段,每段 8 個位,前三段都是 255,第四段是 0。255 轉為二進制數是 8 個 1,三段 255 就有 24 個 1。)
3. DNS 服務器(域名服務器)
以下是一些常見的國內可用 DNS 服務器,以下信息確認后,就可以開始配置靜態 IP 地址了。
#114 DNS:IPv4:114.114.114.114、114.114.115.115#阿里云 DNS:IPv4:223.5.5.5、223.6.6.6#騰訊云 DNS:IPv4:119.29.29.29、119.28.28.28#CNNIC DNS:IPv4:1.2.4.8、210.2.4.8#百度 DNS:IPv4:180.76.76.76#Google DNS:IPv4:8.8.8.8、8.8.4.4
4.通過網絡管理工具設置靜態 IP(NetworkManager TUI)
在命令行輸入:nmtui
按回車進入Edit a connection
連續按兩次Tab鍵,選中<Edit...>,按回車進入
按?方向鍵把光標下移到“IPv4 CONFIGURATION”后面的<Automatic>按回車彈出菜單
按?方向鍵選擇Manual,按回車
按?鍵選擇<Show>,按回車
然后逐一輸入 IP 地址、網關和 DNS,DNS 就是上面給出的DNS服務器,你們可以人選幾個
192.168.168.2就是你們ifconfig得到的,/24是固定加的
其中的 Gateway 的地址就是網關地址,都是 192.168.168.2(上面查看的)
?到下面選擇ok按回車
選擇back回車
選擇Quit回車,退出
退出后輸入reboot重啟
6.Windows 系統訪問?Ubuntu?共享文件夾
設置好靜態 IP 后,回到 Windows 系統主機,按組合鍵Win+R,輸入 Ubuntu 系統的 IPv4 地址,然后回車,具體如下圖(注意前面要輸入兩個反斜杠):
在隨后的彈窗中輸入 Ubuntu 的 Samba 服務器賬號和密碼,勾上“記住我的憑證”,再點確定即可。
點擊確認后彈出下面這樣文件夾說明就成功了
為了之后訪問更方便,可以右鍵單擊文件夾,選擇“映射網絡驅動器”。
盤符可以指定,也可以默認,全憑個人喜好,單擊“完成”按鈕即可
可以看到電腦多了個盤符,以后只要打開 Ubuntu 系統,都可以直接從 Windows 的文件管理器訪問 Ubuntu 系統了。
7、測試
目前我們確定,此時的 Ubuntu 系統中的 Share 文件夾是空的,如下圖:
同時,在 Windows 系統的文件管理器查看也是如此。
可以在windows中新建一個文本