21端口用于连接,20端口用于传输数据
进行FTP文件传输中,客户端首先连接到FTP服务器的21端口,进行用户的认证,认证成功后,要传输文件时,服务器会开一个端口为20来进行传输数据文件。
1.sudo apt-getupdate
1、有问题时完全卸载vsftpd
sudo apt-get purge vsftpd
2、安装vsftpd
sudoapt-get install vsftpd
3、创建ftp用户
方法一:直接在系统设置添加用户
方法二:
创建用户目录sudo mkdir/home/uftp
创建用户sudouseradd -d /home/uftp -s /bin/bash uftp
修改密码sudopasswd uftp
4、配置vsftpd.conf
sudogedit /etc/vsftpd.conf
编辑vsftpd.conf文件
userlist_deny=NO
userlist_enable=YES
#允许登录的用户
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
#默认ftp下载目录
local_root=/home/uftp/
local_enable=YES
#设置文件上传
write_enable=YES
#使用utf8
utf8_filesystem=YES
添加允许登录的用户
sudogedit /etc/allowed_users
5、启动停止重启服务
sudo/etc/init.d/vsftpd start 或者sudo service vsftpd start
sudo/etc/init.d/vsftpd stop 或者sudo service vsftpd stop
sudo/etc/init.d/vsftpd restart 或者sudo service vsftpd restart
6、访问ftp服务器
sudoftp 127.0.0.1
浏览器访问
ftp://127.0.0.1
或者
ftp://localhost
远程访问时使用实际ipftp://your_ip
查看ip
ifconfig
安装完成后,可以正常使用,但是vsftpd服务重启时却遇到了问题530 Login incorrect
解决方法
解决方式也比较简单,需要修改下配置文件
如果没备份最好还是先备份一下,养成备份的习惯总是好的
sudo cp/etc/vsftpd.conf /etc/vsftpd.conf.back
然后用 VIM 打开配置文件
/etc/vsftpd.conf
找到并修改以下配置 (在命令模式下,用搜索命令更快哦~,/pam_service_name)
pam_service_name=ftp
保存并重启服务
sudo service vsftpdrestart
在iptables防火墙下开启vsftpd的端口
在开启vsftpd端口后发现用客户端工具能登陆,但无法浏览文件和新建文件.此时看了一下ftp的协议,发现ftp有主动模式和被动模式.在服务端开21端口是让客户端进来,并没有出去的端口,还在服务端开启出去的端口,最后还要添加ftp相应的模块,整个操作有点复杂,今天写下来对自己以后加深印像。
--------------------------------------分割线--------------------------------------
1.安装vsftpd软件
yum installvsftpd -y
2.开启匿名访问和被动模式端口
vim/etc/vsftpd/vsftpd.conf
anonymous_enable=YES --开启匿名用户访问
anon_upload_enable=YES --匿名用户名可以上传文件
anon_mkdir_write_enable=YES --匿名用户可以创建文件
anon_other_write_enable=YES --匿名用户可以重命名文件
pasv_enable=YES --开启被动模式
pasv_min_port=30000 --被动模式最小端口
pasv_max_port=31000 --被动模式最大端口
3.加载ftp模块
vim/etc/modprobe.d/vsftpd.conf
aliasip_conntrack ip_conntrack_ftp ip_nat_ftp --加载ftp模块
vim/etc/rc.local
/sbin/modprobeip_conntrack --开机加载模块
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
4.端口过滤
vim/etc/sysconfig/iptables
-A INPUT -ptcp -m multiport --dport 20,21 -m state --state NEW -j ACCEPT --开启20,21端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT --开启21主动端口
-A INPUT -p tcp --dport 30000:31000 -j ACCEPT --开启被动端口
5.登陆测试
查看端口信息
sudo netstat -na --ip
# 查看哪些进程打开了指定端口port(对于守护进程必须以root用户执行才能查看到)
lsof -i:port
# 查看哪些进程打开了指定端口port,最后一列是进程ID(此方法对于守护进程作用不大)
netstat -nap|grep port
# 查看端口号对应的系统服务名称
cat /etc/services
# 启动|停止|重启系统服务
sudo /etc/init.d/service start|stop|restart