您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
将远程ftp目录直接映射到windows磁盘(网络位置)提高工作效率
发布时间:2021-12-05 15:44:33编辑:雪饮阅读()
如果你有使用过cifs/smb你会发现这东西除了安全方面可能有点差,但是从工作效率来说是非常方便的。
特别是他可以挂载到本地磁盘以驱动器的形式存在。
具体如何挂载,这里只简单说下,就是将你的smb服务端地址放在win+r如:
\\192.168.43.170运行后它会进入资源管理器(如有账号验证登录则要在登录后才进去)。
当然也可以直接资源管理的地址栏中这样输入。
然后这个资源管理器里面仅仅有该smb共享地址中所共享的目录,你找到你想要映射到本地的目录就如下面这样右键就可以看到映射操作了,然后按照引导提示操作就完成了。
然后你在这个映射目录操作读写文件都自动同步到smb远端的。
同时像是你如果使用phpstorm等高级ide则可以直接从这种映射磁盘中打开你的远端项目。
或许任何ide都可以,毕竟这相当于一个伪磁盘了,应该能”骗”到各种ide吧.
回到今天的主题ftp,那么smb这么方便为什么要折腾ftp呢?
因为最近我主管在公网上使用smb时候发现无论如何windows都无法访问。
虽然他后来大概是放弃了继续研究,换其它效率低的方式进行了手头工作吧。
但是我后来专门研究了一下,这个由于是公网,而且他服务器可能是阿里云或者腾讯云,安全组对于这种不常用端口大概没有放行是一个方面,那么另外一个方面就是我折腾后发现放行了端口也不行,后来听说是阿里云好像内部把该端口给屏蔽了,那么好吧我就用自定义端口,但是windows使用这种共享协议时候好像是连接时候不支持指定端口,需要通过一些命令来配置,有点烦琐,可能也能通过某种可视化操作,但是这种感觉不太优雅,那么我今天就想尝试下ftp是否也可以映射到本地,咱们就绕过这种不优雅的方式,使用ftp吧。
linux自带sftp协议的sftp软件,但是sftp不支持在windows的资源管理器中打开会给你强制把sftp协议变成ftp协议导致访问失败。或者以后会支持吧。
linux上ftp好像除了sftp还有另外两种ftp协议的常用ftp软件。我这里印象深的是vsftp,那就用vsftp咯。
vsftp:
需要在我的虚拟机中按照vsftp,我的虚拟机是centos7.8好像。
安装vsftp服务
[root@localhost ~]# yum install vsftpd
建立仅用于ftp登录的用户(nologin禁止了直接ssh登录)
[root@localhost ~]# useradd -g root -d / -s /sbin/nologin ftpuser1
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
这个问题不影响,意思是用户建立成功,只是该用户所指定的目录根目录"/"已经存在,不会将任何东西拷贝到这个"/"目录(仅初始化时候)。
注意:直接使用根目录很危险的
设置一个ftp密码:
[root@localhost ~]# passwd ftpuser1
Changing password for user ftpuser1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
我这里使用xy220807
vsftpd配置:
配置文件需要配置如下几个项:
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf | grep 'anonymous_enable\|local_enable\|write_enable\|chroot_local_user'
#anonymous_enable=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
#anon_mkdir_write_enable=YES
# directory. If chroot_local_user is YES, then this list becomes a list of
chroot_local_user=YES
shells配置
/etc/shells中必须有如下两个配置,若没有则新增:
[root@localhost ~]# cat /etc/shells | grep '\/usr/sbin/nologin|/sbin/nologin'
[root@localhost ~]# cat /etc/shells | grep '/usr/sbin/nologin\|/sbin/nologin'
/usr/sbin/nologin
/sbin/nologin
将ftp远端目录映射到本地磁盘(网络位置)
首先你要像是操作smb一样可以通过资源管理器连接ftp
如果保存密码,下次直接进入应该不要密码,或者它系统应该会有类似短期内频繁连接就不要密码的机制吧。:
成功进入后像是这样:
那么接下来我们可以在这里添加一个网络位置:
可能一开始也可以直接在这里添加的。然后我这里添加就没有继续需要登录了,那么如果一开始就直接添加估计是需要我登录的。
添加完后:
这里看到刚才那个smb网络位置不见了,不要急那是我自己断开连接了的,既然有了ftp,我就感觉smb有点多余了。
但是比较坑爹的就是我的磁盘列表里面没有这个ftp网络位置:
这里虽然还能看到smb这个磁盘,但是已经不能访问了。
而且我试着用phpstorm打开这个ftp网络位置也选择不到这个“磁盘”。
所以这里所谓的映射到本地磁盘只是映射的ftp的网络位置,不会自动将网络位置关联到新磁盘的。
这点就比smb共享的网络位置映射本地磁盘坑了。那么接下来我将继续研究下smb吧。。。。
关键字词:远程,ftp,映射,windows,磁盘,网络位置