linux与windows文件共享

场景一:项目资料很多,在微信里传来传去很不方便,如何建立一个文件共享空间,让项目组的所有人都可以实时地查看和编辑?
场景二:windows上的磁盘空间快满了,但是linux服务器上的磁盘空间还很大,如何在windows上像利用本地磁盘空间一样利用linux服务器上的磁盘空间?
Samba服务是在linux与windows之间共享文件的最佳选择,可以轻松解决以上场景的问题。本文演示如何在linux上搭建Samba服务,以及如何用windows连接linux上的文件共享空间,使用的linux系统为Ubuntu 16.04.7 LTS,windows系统为Windows 10专业版。

一、Ubuntu安装配置Samba服务器

注意:下面的操作在root账号下进行
1、查看服务器磁盘利用情况

df -h

在这里插入图片描述
可以看到/home目录还有1.8T的可用磁盘空间,因此这里在/home目录下建立共享文件夹
2、依次执行以下命令
创建共享文件夹

mkdir /home/sambashare

设置共享文件夹权限

chmod 777 /home/sambashare

安装Samba服务

apt install samba

3、修改配置文件

vim /etc/samba/smb.conf

[printers]和[print$]的配置是跟打印机相关的,不用打印机的话建议都注释掉
在这里插入图片描述
场景一需要创建多人使用的公有共享sambashare,这里的共享名sambashare可以是别的名字;场景二需要创建私有共享homes,共享名homes只能是这个名字。在配置文件的最后面添加以下代码

[sambashare]
    path = /home/sambashare
    valid users = lifaqiang
    write list = lifaqiang
    directory mask = 0775
    create mask = 0664
[homes]
    browseable = no
    writable = yes
    valid users = %S

  第1行的sambashare为共享名,下面的5行为该共享使用的配置,可以通过这样的形式添加不同共享名的多个共享。path指定共享目录路径。valid users指定允许访问该共享的用户,如果不指定则所有用户都能访问。write list指定允许写入该共享的用户,优先级比writable高,指定的用户必须是服务器上已经存在的用户,如果不指定则所有用户服从writable。valid users和write list可以指定由逗号隔开的多个用户名。directory mask设置创建目录的权限,create mask设置创建文件的权限。browseable用来指定是否可以在资源管理器中看到该共享的图标,browseable默认为yes,如果[homes]里面browseable采用默认值,将会显示指向同一目录的两个图标,一个图标名为homes,一个图标名为登录的用户名,为了去除重复,[homes]中browseable设置成no。writable用来指定该共享路径是否可写,默认为no。
  当用户请求一个共享时,服务器将在存在的共享资源段中去寻找,如果找到匹配的共享资源段,就使用这个共享资源段。如果找不到,就将请求的共享名看成是用户的用户名,并在本地的密码文件中找到这个用户,如果用户名存在,并且用户提供的密码正确,则以这个[homes]段复制出一个共享提供给该用户。这个新的共享的名称是用户的用户名,而不是homes,如果[homes]段里没有指定的共享路径,就把该用户的家目录作为共享路径。%S是Samba的宏,表示当前共享的名称,因此,[homes]段的%S即用户名,valid users设置为%S则只有当前用户可以访问。
  除此之外,还有一些可能会用到的参数。public指定是否可以在不输入用户名和密码的情况下访问该共享路径(即匿名访问,身份为linux的nobody用户),同guest ok,默认为no。read only含义与writable相反,指定该路径是否只读,默认为yes,优先级比write list低。available指定该共享是否可用,默认为yes,适用于需要频繁开启和关闭共享的场景。
4、依次执行以下命令
修改配置文件后需要重启smbd服务使配置生效

systemctl restart smbd

将smbd服务加入到启动项,开机自动启动

systemctl enable smbd

Samba有独立的用户数据库,并且Samba的用户必须是linux服务器上存在的用户,因此需要选择linux账户添加到Samba的用户数据库并设置密码,这里的密码可以与登录linux使用的密码一致也可以不一致

smbpasswd -a lifaqiang

5、查看服务器ip,在windows上打开cmd,输入以下命令测试smbd服务是否工作正常。telnet命令与ping类似,但是ping不能指定端口号,telnet可以,下面的445就是smbd服务默认使用的端口号

telnet 10.17.140.70 445

提示telnet不是内部或外部命令,说明电脑没有安装这个功能,需在windows功能页面勾选Telnet客户端并重启才能使用该命令
在这里插入图片描述
如果出现以下界面,说明smbd服务工作正常
在这里插入图片描述
出现以下界面,说明端口被网管禁用,需要自定义一个新的端口号
在这里插入图片描述
测试时发现使用有线网络的电脑可以正常连接445端口,但是使用无线网络的电脑无法正常连接445端口。为了让使用有线网络的电脑和使用无线网络的电脑都能正常使用Samba服务,这里修改smbd服务使用的端口号为446,然后在windows上的445端口通过端口映射连接服务器上的446端口。如果连接445端口没有问题,那么下面第6、1步可以跳过。
6、修改配置文件并重启smbd服务

vim /etc/samba/smb.conf

在这里插入图片描述

systemctl restart smbd

二、windows配置

1、在windows上以管理员身份运行cmd,输入下面的命令
添加端口映射

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=445 connectaddress=10.17.140.70 connectport=446

查看端口映射

netsh interface portproxy show v4tov4

出现以下界面则添加成功
在这里插入图片描述
重启windows电脑使端口映射生效
2、如果添加了端口映射,可通过\\127.0.0.1查看共享
在这里插入图片描述
如果未添加端口映射,通过\\服务器ip地址的方式即可访问共享文件夹。双击进入文件夹,第一次访问共享文件夹需要输入用户名密码,如下图,勾选记住我的凭据重启电脑后不用输入用户名密码即可访问。如果需要删除登录信息或者用另一个用户登录,可以依次打开控制面板、用户账户、管理windows凭据,删除当前用户的登录信息,然后重启电脑。在这里插入图片描述
点击确定,就可以进入文件夹,退回到上一级可以看到自己的私有共享,并且也可以直接访问
在这里插入图片描述
3、为了更方便访问共享文件夹,可以在windows上进行如下设置
在这里插入图片描述
在这里插入图片描述
如果未添加端口映射,请更改上图中1处的ip地址为服务器ip地址。同样的方法添加映射的网络文件夹\\127.0.0.1\lifaqiang,就可以直接在此电脑的界面里添加这两个文件夹的图标,如下图,双击即可快速进入这两个文件夹,就像在操作windows下的磁盘一样。
在这里插入图片描述
4、如果输入\\127.0.0.1无法访问远程文件夹,在Windows功能页面安装SMB 1.0CIFS客户端,再重启电脑一般就没问题了
在这里插入图片描述

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 要查看Linux上的共享文件,可以使用以下命令: 1. 使用smbclient命令连接到共享文件夹: smbclient //服务器IP地址/共享文件夹名称 -U 用户名 例如: smbclient //192.168.1.100/share -U user1 2. 使用mount命令挂载共享文件夹: mount -t cifs //服务器IP地址/共享文件夹名称 /本地挂载目录 -o username=用户名,password=密码 例如: mount -t cifs //192.168.1.100/share /mnt/share -o username=user1,password=123456 3. 使用nmap命令扫描网络中的共享文件夹: nmap -p 139,445 --script smb-enum-shares.nse 服务器IP地址 例如: nmap -p 139,445 --script smb-enum-shares.nse 192.168.1.100 以上是几种常见的查看Linux共享文件的方法,可以根据实际情况选择适合自己的方式。 ### 回答2: 在Linux中,可以使用smbclient工具来查看共享文件。Smbclient是一个开源软件包,可在Linux系统上访问Windows共享文件夹。以下是使用smbclient工具查看共享文件的步骤: 1.安装smbclient 工具。 在终端中输入以下命令安装smbclient 工具: sudo apt-get update sudo apt-get install smbclient 2.连接共享文件 在终端中输入以下命令来连接共享文件: smbclient -L //ip_address/share_name -U username 其中,ip_address是共享文件夹的IP地址,share_name是共享文件夹的名称,username是具有访问权限的用户名。 若要匿名访问,可以省略用户名。 3.输入密码 输入密码进行身份验证。如果密码正确,smbclient会显示共享文件夹的目录。 4.列出共享文件夹下的文件 在smbclient中,可以使用命令ls或dir来列出共享文件夹下的文件。 若要进入共享文件夹,可以使用cd命令。 5.退出smbclient 在终端中输入quit或exit命令退出smbclient。 总结:使用smbclient工具可以方便地在Linux中查看共享文件。只需安装smbclient工具,连接共享文件夹,身份验证并列出文件。最后退出smbclient 工具即可。 ### 回答3: 在Linux系统中,我们可以通过多种途径来查看共享文件,以下为其中几种常用的方法: 1. 使用smbclient命令 smbclient命令是一个客户端工具,用于连接到Windows共享文件夹并下载或上传文件。使用以下命令可以连接到共享文件夹并列出共享文件: ``` smbclient //<WindowsIP>/<ShareName> -U <Username> ``` 其中,<WindowsIP>为Windows的IP地址,<ShareName>为共享文件夹的名称,<Username>为在共享文件夹上具有访问权限的用户名。 连接成功后,可以使用ls命令查看共享文件的列表。 2. 使用mount命令挂载共享文件夹 mount命令可以将共享文件夹挂载到本地目录,以便像本地文件一样访问。使用以下命令可挂载共享文件夹: ``` mount -t cifs //<WindowsIP>/<ShareName> /mnt/<MountName> -o username=<Username> ``` 其中,<MountName>为本地目录的名称,可以指定任何可用的目录,<Username>为在共享文件夹上具有访问权限的用户名。 挂载成功后,可以使用ls命令查看共享文件的列表。 3. 使用Nautilus文件管理器 Nautilus是Linux的默认文件管理器,支持浏览网络文件,包括Windows共享文件夹。按下Ctrl+L键,输入以下地址可以直接进入网络位置: ``` smb://<WindowsIP>/<ShareName>/ ``` 其中,<WindowsIP>和<ShareName>分别为Windows的IP地址和共享文件夹的名称。进入网络位置后,可以浏览和查看共享文件。 以上是Linux查看共享文件的几种方法,可以根据需要选择最适合自己的方式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值