Linux下创建共享文件夹,Windows下映射网络驱动器

说明:开发过程中,有时候代码放在Linux下编译,但文件要从本地SVN获取,所以为了方便,我们在Linux下将文件夹添加为可共享,然后在本地windows系统中映射网络驱动器,此时两个文件夹就可以实时同步。

方法一、使用Samba服务器

步骤一、确保windows和linux的IP可以互相ping通。ipconfig查询IP地址。

    不能ping通时可尝试关闭windows防火墙。

 

步骤二、在linux下安装Samba服务器

    安装指令:sudo apt-get install samba

    安装需要root权限,也可以用su指令转到root权限再执行apt-get install samba指令,如果刚创建虚拟机没有给root设密码,则执行:sudo passwd root命令为root设立新密码。

 

步骤三、将LInux下文件夹创建本地网络共享

                 

     注意:此共享名和后面samb服务配置中的共享名保持一致。如果提示不允许共享需要添加usershare owner only = false指令时,在samba配置文件中[global]下添加此命令。

步骤四、如果想使用Linux已存在的用户,将Linux下存在的用户添加到Samba服务器,也可不执行此步骤,直接为samb服务创建一个用户 

    注:因为对密码的安全级别较高,此时需要先改修改用户密码:

    修改密码指令:passwd kerson (如果密码简单则修改,否则执行下一步)

    Changing password for user kerson(提示信息)

    New password:(如:12345678)

    BAD PASSWORD: it does not contain enough DIFFERENT characters(提示信息)

    BAD PASSWORD: is a palindrome(提示信息)

    Retype new password:(再次输入密码确认)

    passwd: all authentication tokens updated successfully(提示信息)

    

    将用户添加到samb服务并设置samb用户密码,如果用户不存在,则会新建用户。

         如:sudo smbpasswd -a sambuser ,如果sambuser用户不存在,会创建sambuser此用户名。

    列出当前 Samba 用户:sudo pdbedit -L

      image

      如果用户为1000,可以删除该用户,新建一个>1000的用户。

         此时会提示输入新的Samba服务器密码:如:12345678(密码太简单设置不成功)

         New SMB password:

         Retype new SMB password: (再次输入新密码确认密码)

         Added user tommy(添加成功提示)

    添加用户到Samba服务器后,需重启服务。

    重启指令:systemctl restart smbd

    

    注意:因为smb服务通过445端口访问,如果您的系统同时使用 iptables,请确认规则没有阻止 445 端口的访问:

        sudo iptables -L -n

        如下:规则中没有445端口,windows访问不了。需添加445的规则。

        image

        您可以通过命令sudo iptables -A INPUT -p tcp --dport 445 -j ACCEPT 添加一个规则,以确保允许对 TCP 445 端口的访问:

         image

 

    查看smb服务状态:sudo systemctl status smbd

    查看nmb服务状态:sudo systemctl status nmbd

    系统启动时自动启动smb服务:sudo systemctl enable smbd

    系统启动时自动启动smb服务:sudo systemctl enable nmbd

步骤五、配置Samba服务(如果linux和windows处于同一局域网)

    配置指令:sudo vi /etc/samba/smb.conf

    通过linux下vi编辑器打开配置文件,滚动到文件最后,i指令进入vi编辑模式:输入如下内容:

    第一条:[共享的文件夹名字]      ,例如:共享文件名为x1021app,   [x1021app] 

    第二条:comment = my share    ,此为注释说明,不添加也可以

    第三条:path = /home/kerson/x1021app/     ,注意除x1021app有777权限外 /home/kerson/ 也需要777权限。

    第四条:public = yes 

    第五条:browseable = yes

    第六条:writeable = yes

    第七条:read only = no

    编辑完ESC退出编辑模式,换行输入冒号:wq保存退出

 

     配置Samba服务(如果linux处于外网环境)

    此环境下445端口可能被限制,此时我们需要做端口重映射,把445端口映射为其它端口,假设我们要映射为1399端口,使用回环地址代替linux IP地址。

    首先linux上,需参考步骤四,可使用命令sudo iptables -A INPUT -p tcp --dport 1399 -j ACCEPT 添加一个规则,以确保允许对TCP 1399端口的访问,添加后可使用sudo iptables -L -n指令查看1399是否已经添加到规则中。

    此时我们需要去到windows下 Win+X 打开Windows PowerShell(管理员) 。执行命令: netsh interface portproxy add v4tov4 listenport=445 listenaddress=127.0.0.1 connectport=1399 connectaddress=10.10.35.187

    如果添加错误可使用指令删除:netsh interface portproxy delete v4tov4 listenport=445 listenaddress=127.0.0.1

    正确映射后使用指令查询:netsh interface portproxy show all  打印如下:

    image

    此时在windows上映射时我们可以使用\\127.0.0.1\共享的文件夹名     来实现登录,登录名为samb服务添加的用户,密码为设置的服务密码。

    如果\\127.0.0.1之前已经被使用过,可以尝试仅开启windows下SMB 1.0/CIFS客户端;如果还不行,关闭整个SMB 1.0/CIFS文件共享支持。

    image

 

步骤六、在Windows上映射网络驱动器

    我的电脑--鼠标右键--映射网络驱动器,此时需注意ubuntu没有进入锁屏界面。

    

 

    此步骤可能会有报错,如果提示:你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。

    此时在Windows下用Win+R命令打开运行窗口,输入指令:gpedit.msc

    

 

    如果是其他错误,自己网上搜索相关解决办法。

    如果不报错误,将进到输入用户名和用户密码的界面,用户名是LInux创建的用户名,密码就是刚才修改过的用户密码。

    映射成功后如下:

          

 方法二、直接映射整个目录

  步骤一、

    

  步骤二、直接输入IP地址名称和主机名(如下:点击完成后如果有弹窗,则输入虚拟机主机名和密码)

    

  步骤三、此时我们就看到了整个虚拟机下的文件

    

   如果要断开连接,直接选中,右键,断开连接。如下:

    

 

 

 

 

 

 

 

    

 

posted @ 2022-08-08 21:08  耿通宇  阅读(2902)  评论(1)    收藏  举报