Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa |grep vsftpd 来查看是否安装相应的包,如果没有安装那么可以执行 yum -y install vsftpd 来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:
useradd -s /sbin/nologin -d /home/ftp_test ftp_test目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,
可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:
passwd ftp_test
执行之后输入2次密码确认就设置好了密码
然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpdconf
找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录
现在直接保存配置文件,执行 systemctl start vsftpdservice 启动vsftp服务,然后可以通过命令: systemctl status vsftpdservice 查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常
现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpdconf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是302 属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:
配置完这两项以后保存退出,然后执行 systemctl restart vsftpdservice 重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何 *** 作也是没问题的
现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下 *** 作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户
如何连接FTP服务器?使用ftp客户端就可以了,下面我们来看一下。
01 打开FileZilla客户端工具。(没有的可以搜狗搜索,然后下载安装一个)。
点击‘文件’下的‘站点管理器’。
在打开的窗口上,点击‘新站点’。
03点击后,在右边的窗口我们输入Ftp服务器的信息,主机ip,连接的账号和用户名等。填写完毕,点击下方的确定按钮就行了。
04然后点击下方的连接按钮,我们就可以连接服务器了。
你好,可以使用以下的方法和步骤1、开启FTP服务:
控制面板 - 程序 - 打开和关闭Windows功能,在d出的窗口中选择开启FTP功能和ISS管理控制台。
2、新建FTP站点:
右键“我的电脑” - 管理,d出的“计算机管理”窗口,展开服务和应用程序节点,点选Internet信息服务(IIS)管理器,然后右键“网站”,选择添加FTP站点。按个人需要填写信息即可,完成后即可看到新建的站点出现在窗口中。
3、设置防火墙:
控制面板\系统和安全\Windows 防火墙,点选“允许程序或功能通过windows防火墙”,在d出的窗口中选择FTP服务器,并点击“允许运行另一程序”,点击“浏览”,将“C:\Windows\winsxs\x86_microsoft-windows-iis-metabase_31bf3856ad364e35_61760117514_none_3b3961c080353ab1\inetinfoexe”添加到可允许程序中。
4、完成上述步骤,FTP服务就成功开启了,最后测试一下:
在另一台电脑打开“我的电脑”,在地址框输入“ftp://”,回车。因为这里开启匿名登录,所以不需要输入用户名密码,直接打开了FTP服务器上设定的FTP目录。1 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:
#which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件
2 查看ftp 服务器状态
#service vsftpd status
3 启动ftp服务器
#service vsftpd start
4 重启ftp服务器
#service vsftpd restart
5 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0000:21 0000: LISTEN
如果看到以上信息,证明ftp服务已经开启。
6如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpdftpusers中注释掉root
#vi /etc/vsftpduser_list中也注释掉root
然后重新启动ftp服务。
7 vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 1921680101
Connected to 1921680101
220 (vsFTPd 205)
User (1921680101:(none)): frank
331 Please specify the password
Password:
500 OOPS: cannot change directory:/home/frank
Login failed
ftp> ls
500 OOPS: child died
Connection closed by remote host
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。
8 永久开启,即os重启后自动开启ftp服务
方法一:
cd /etc/xinetdd ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetdd/gssftp ,将 修改两项内容:
(a) server_args = -l –a 去掉-a 改为server_args = -l
(b) disable=yes改为disable=no
(c) 保存退出。
方法二:
(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2,保存后退出
(b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右
(c) #setup
此时能看到vsftpd项,此时选中此services项,保存后退出FTP命令大全- -
FTP:文件传输协议。先说说他的功能吧,主要就是从运行FTP服务器的计算机传输文件。可以交互使用。这里要注意,只有安装了tcp/ip协议的机器才能使用ftp命令。
命令格式:ftp [-v][-d][-i][-n][-g][-s:filename][-a][-w:windowsize][computer]
说说他们的含义吧。
-v 不显示远程服务器响应
-n 禁止第一次连接的时候自动登陆
-i 在多个文件传输期间关闭交互提示
-d 允许调试、显示客户机和服务器之间传递的全部ftp命令
-g 不允许使用文件名通配符,文件名通配符的意思是说允许在本地文件以及路径名中使用通配字符
-s:filename 指定包含ftp命令的文本文件。在ftp命令启动后将自动运行这些命令。在加的参数里不能有空格。
-a 绑定数据连接时,使用任何的本地端口
-w:windowsize 忽略默认的4096传输缓冲区
computer 指定要连接的远程计算机的ip地址1安装FTP服务开始--》管理工具--》服务器管理器
2安装IIS/FTP角色
打开服务器管理器,找到添加角色,然后点击,d出添加角色对话框,选择下一步
3选择Web服务器(IIS),然后选择FTP服务,直到安装完成。
4在IIS中查看,如果能够右键创建FTP站点,则表明FTP服务安装成功
5创建Windows用户名和密码,用于FTP使用。
6开始--》管理工具--》服务器管理器,添加用户,如下图:本实例使用ftptest
在服务器磁盘上创建一个供FTP使用的文件夹,创建FTP站点,指定刚刚创建的用户FtpTest,赋予读写权限
7客户端测试。直接使用ftp://服务器ip地址:ftp端口,如图。d出输入用户名和密码的对话框表示配置成功,正确的输入用户名和密码后,即可对FTP文件进行相应权限的 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)