ftp安装使用

一:安装vsftpd

查看是否已经安装vsftpd

rpm -qa | grep vsftpd

如果没有,就安装,并设置开机启动

yum -y install vsftpd
chkconfig vsftpd on

安装时发现错误:
View Code
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
14: PYCURL ERROR 6 - “Couldn’t resolve host ‘mirrorlist.centos.org’”
Error: Cannot find a valid baseurl for repo: base

是因为缺少DNS,解决如下:到/etc目录下配置resolv.conf加入nameserver IP:

[root@localhost ~]# vi /etc/resolv.conf
#下面地址是福建电信DNS
nameserver 218.85.157.99

管理vsftpd相关命令:

启动vsftpd:  service vsftpd start

停止vsftpd:  service vsftpd stop

重启vsftpd:  service vsftpd restart

二、配置防火墙

打开/etc/sysconfig/iptables文件

vi /etc/sysconfig/iptables

在REJECT行之前添加如下代码

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

保存和关闭文件,重启防火墙

service iptables start

三、配置vsftpd服务器

1.默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。

vi /etc/vsftpd/vsftpd.conf

2.添加ftp用户

下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。

#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list

改为

chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

3.增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。

useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

4.设置用户口令

passwd ftpuser

5、编辑文件chroot_list:

vi /etc/vsftpd/chroot_list

内容为ftp用户名,每个用户占一行,如:

peter
john

6、重新启动vsftpd

service vsftpd restart

另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:(未用过)

http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users


出现的错误

1、500 OOPS: cannot change directory
解决方法:
默认下是没有开启FTP的支持,所以访问时都被阻止了

解决:

  1. 查看SELinux设置

    getsebool -a | grep ftp

    发现 ftpd_disable_trans –> off 或者 ftp_home_dir–>off

  2. 使用setsebool命令开启

    setsebool ftpd_disable_trans 1 或者 # setsebool ftp_home_dir 1

  3. 查看当前状态是否是on的状态

    getsebool -a|grep ftp

此时 ftpd_disable_trans –> on 或者 ftp_home_dir–>on

  1. 最后重启 # service vsftpd restart

另外 setsebool 使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1

就OK了!
原因:这是因为服务器开启了selinux,这限制了FTP的登录。

https://www.cnblogs.com/surge/p/3868270.html

ftp put get的使用

介绍:从本地以用户anok登录的机器192.168.0.16上通过ftp远程登录到192.168.0.6的ftp服务器上,登录用户名是peo。以下为使用该连接做的实验。

查看远程ftp服务器上用户peo相应目录下的文件所使用的命令为:ls,登录到ftp后在ftp命令提示符下查看本地机器用户anok相应目录下文件的命令是:!ls。查询ftp命令可在提示符下输入:?,然后回车。

1、从远程ftp服务器下载文件的命令格式:

get 远程ftp服务器上当前目录下要下载的文件名 [下载到本地机器上当前目录时的文件名],如:

 get nmap_file [nmap]

意思是把远程ftp服务器下的文件nmap_file下载到本地机器的当前目录下,名称更改为nmap。
带括号表示可写可不写,不写的话是以该文件名下载。

如果要往ftp服务器上上传文件的话需要去修改一下vsftpd的配置文件,名称是vsftpd.conf,在/etc目录下。要把其中的“#write_enable=YES”前面的“#”去掉并保存,然后重启vsftpd服务:
sudo service vsftpd restart。

2、向远程ftp服务器上传文件的命令格式:

put 本地机器上当前目录下要上传的文件名 [上传到远程ftp服务器上当前目录时的文件名],如:

put sample.c [ftp_sample.c]

意思是把本地机器当前目录下的文件smaple.c上传到远程ftp服务器的当前目录下,名称更改为ftp_sample.c。
带括号表示可写可不写,不写的话是以该文件名上传。

3、最后附上ftp常用命令,如下所示:

FTP>open  [ftpservername],和指定的远程Linux FTP服务器连接?
FTP>user  [username]  [password],使用指定远程Linux FTP服务器的用户登录?
FTP>pwd,显示远程Linux FTP服务器上的当前路径?
FTP>ls,列出远程Linux FTP服务器上当前路径下的目录和文件?
FTP>dir,列出远程Linux FTP服务器上当前路径下的目录和文件(同上)?
FTP>mkdir  [foldname],在远程Linux FTP服务器上当前路径下建立指定目录?
FTP>rmdir  [foldname],删除远程Linux FTP服务器上当前路径下的指定目录?
FTP>cd  [foldname],更改远程Linux FTP服务器上的工作目录?
FTP>delete  [filename],删除远程Linux FTP服务器上指定的文件?
FTP>rename  [filename]  [newfilename],重命名远程Linux FTP服务器上指定的文件?
FTP>close,从远程Linux FTP服务器断开但保留FTP命令参数提示?
FTP>disconnect,从远程Linux FTP服务器断开但保留FTP命令参数提示(同上)?
FTP>bye,结束和远程Linux FTP服务器的连接。
FTP>quit,结束和远程Linux FTP服务器的连接(同上)。
FTP>!,直接从远程Linux FTP服务器进入到本地shell中?
FTP>exit,(接上步)从本地shell环境中返回到远程Linux FTP服务器环境下?
FTP>!ls,列出本地机器上当前路径下的目录和文件?
FTP>lcd  [foldname],更改本地机器的工作目录?
FTP>?,显示ftp命令说明?
FTP>help,显示ftp命令说明(同上)?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值