Samba是在Linux及Unix上实现SMB(Server Message Block)协议的一个免费软件,由服务器及客户端程序构成。

 

 

Samba的服务器程序可以实现以下主要功能:

◆ 文件及打印共享;
◆ 计算机名与IP的解悉;
◆ WINS服务的支持;

 

◆ 用户权限设置(如果配合Linux 的Quota还可以实现用户磁盘空间配额)。

 

下面介绍Samba服务器的安装与配置

1.环境介绍(不同的环境配置方法不一样,我知道的在Ubuntu15后的版本都能配置连接成功)

Ubuntu:15.10

VMware:12.1.0 build-3272444

Windows:win7 旗舰版

 

2.环境监测

环境是Samba服务器与Windows能否连通的先决条件,接下来判断环境的可行性,可行性的标准就是看两个系统能否ping成功。

A.关闭两个系统的防火墙:

(1)windows关闭防火墙的方法:

桌面右下角点击网络图标 -->打开网络和共享中心 -->左下角Windows防火墙 -->打开或关闭windows防火墙 --> 关闭 -->确定

(2)Ubuntu上关闭防火墙执行指令:

sudo ufw disable

B.查询两个系统的ip地址

(1)Windows下在终端输入指令:ipconfig,查看VMnet8的IP地址

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\waobot11>ipconfig

Windows IP 配置


以太网适配器 本地连接:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::4825:7747:3eee:8e53%11
   IPv4 地址 . . . . . . . . . . . . : 192.168.0.18
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.0.1

以太网适配器 VMware Network Adapter VMnet1:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::dd47:bea7:d696:db00%17
   IPv4 地址 . . . . . . . . . . . . : 192.168.230.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::4cc8:d9e2:b2:5996%18
   IPv4 地址 . . . . . . . . . . . . : <span style="color:#FF0000;">192.168.149.1</span>
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

隧道适配器 isatap.{08F0FB50-4191-4979-AA51-BBBE6B8D3E98}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{5A56AF59-11CE-48C4-A435-90F7DAFD9217}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{07929FEF-122F-4F27-9A21-2A8B20C06378}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

(2)Ubuntu下在终端输入指令:ifconfig,查看IP地址

$ ifconfig
eno16777736 Link encap:Ethernet  HWaddr 00:0c:29:35:66:40  
          inet addr:<span style="color:#FF0000;">192.168.149.128</span>  Bcast:192.168.149.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe35:6640/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7951 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2018 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:11545998 (11.5 MB)  TX bytes:139862 (139.8 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:235 errors:0 dropped:0 overruns:0 frame:0
          TX packets:235 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:21546 (21.5 KB)  TX bytes:21546 (21.5 KB)

C.两个系统相互ping

(1)Windows下在终端输入指令:ping Ubuntu IP地址,回车,如果ping成功如下图所示

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\waobot11>ping 192.168.149.128

正在 Ping 192.168.149.128 具有 32 字节的数据:
来自 192.168.149.128 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.149.128 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.149.128 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.149.128 的回复: 字节=32 时间<1ms TTL=64

192.168.149.128 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms<span style="font-size:24px;"><span style="color:#FF6666;"></span></span>

(2)Ubuntu下在终端输入指令:ping VMnet8 IP地址,回车,如果ping成功如下图所示

$ ping 192.168.149.1
PING 192.168.149.1 (192.168.149.1) 56(84) bytes of data.
64 bytes from 192.168.149.1: icmp_seq=1 ttl=128 time=0.222 ms
64 bytes from 192.168.149.1: icmp_seq=2 ttl=128 time=0.326 ms
64 bytes from 192.168.149.1: icmp_seq=3 ttl=128 time=0.361 ms
64 bytes from 192.168.149.1: icmp_seq=4 ttl=128 time=0.350 ms
64 bytes from 192.168.149.1: icmp_seq=5 ttl=128 time=0.327 ms
64 bytes from 192.168.149.1: icmp_seq=6 ttl=128 time=0.349 ms
64 bytes from 192.168.149.1: icmp_seq=7 ttl=128 time=0.368 ms
64 bytes from 192.168.149.1: icmp_seq=8 ttl=128 time=0.361 ms
64 bytes from 192.168.149.1: icmp_seq=9 ttl=128 time=0.349 ms
64 bytes from 192.168.149.1: icmp_seq=10 ttl=128 time=0.540 ms
64 bytes from 192.168.149.1: icmp_seq=11 ttl=128 time=0.240 ms
64 bytes from 192.168.149.1: icmp_seq=12 ttl=128 time=0.344 ms
64 bytes from 192.168.149.1: icmp_seq=13 ttl=128 time=0.348 ms
64 bytes from 192.168.149.1: icmp_seq=14 ttl=128 time=0.351 ms
64 bytes from 192.168.149.1: icmp_seq=15 ttl=128 time=0.340 ms
^C
--- 192.168.149.1 ping statistics ---
15 packets transmitted, 15 received, 0% packet loss, time 14000ms
rtt min/avg/max/mdev = 0.222/0.345/0.540/0.066 ms

两个系统ping成功了进行下一步

 

/* BEGIN:此处插播一条广告 */

为方便大家进行环境配置,在此处我编写一个脚本,set_samba_server.sh用于一键配置samba服务器环境

只要在ubuntu中执行bash set_samba_server.sh就OK了

获取方式:https://github.com/Grand2015/set_samba_server

/* END:此处插播一条广告 */

 

 

3.Samba服务器安装

在Ubuntu环境下执行指令:

sudo apt-get install samba
sudo apt-get install cifs-utils
sudo apt-get install smbclient

 

4.赋共享目录权限

共享目录可以用现成的也可以自己创建,我就用现成的了,我的目录是 /home/myname

myname是我的Ubuntu的名字

如果自己创建路径可以使用指令

sudo mkdir /home/myname/share

下面对路径赋权限,不然访问时问题是权限不够

权限指令:

sudo chmod 777 /home/myname

 

 

5.配置Samba服务器

 

 

配置文件之前,先将文件备份,(我现在没有用的,估计以后会用吧),执行指令:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

后面打开配置文件,只用vim或者gedit打开都行

在最后添加代码:

[share]

      path = /home/myname
      available = yes
      browseable = yes
      public = yes
      writable = yes

[share]是共享的名称随便取,path后面是共享的路径,就是前面设置权限的路径

 

6.添加Samba账户

可以添加新用户,也可以直接使用原来的用户名(我直接使用本地用户名),如需添加执行以下指令:

sudo useradd myname

用户名添加以后,需设置密码,两个系统连接时使用(好像有不需要密码的方法,我不知道,大家可以考证一下)

sudo touch /etc/samba/smbpasswd 
sudo smbpasswd -a myname

后面会提示你输入两边密码
现在要新增网络使用者的帐号:

 

sudo vim /etc/samba/smbusers

在新建立的文件内加入下面这一行并保存代码:

 

myname = “networkusername”

如果没有创建Samba账户这一步,当你登录时会提示session setup failed:     NT_STATUS_LOGON_FAILURE

删除网络使用者的帐号的命令把上面的 -a 改成 -x 即:

sudo smbpasswd -x myname

7.重启服务器

执行指令

sudo /etc/init.d/samba restart

8.测试

执行指令

smbclient -L //localhost/share

或者 

smbclient -L \\127.0.0.1 -U myname

 

这时输入的密码就是你刚才设置的samba密码

 

$ smbclient -L \\127.0.0.1 -U waobot
WARNING: The "syslog" option is deprecated
Enter waobot's password: 
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.9-Ubuntu]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	share           Disk      
	IPC$            IPC       IPC Service (ubuntu server (Samba, Ubuntu))
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.9-Ubuntu]

	Server               Comment
	---------            -------
	UBUNTU               ubuntu server (Samba, Ubuntu)

	Workgroup            Master
	---------            -------
	WORKGROUP

 

9.使用

 

 

在windows下的运行中输入 "\\" + "Ubuntu机器的ip或主机名"

ubunu 安装Samba ubuntu安装samba服务_ubuspan idtransmarks

 

以后如果时常用的话,可以再我的电脑的文件夹,点击映射网络驱动器,添加IP地址,使得链接到的虚拟机像一块硬盘一样在Win系统中显示

ubunu 安装Samba ubuntu安装samba服务_Ubuntu_02

 

 

 

 

安装这个方法还是不行的话,请留言给我