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
来源: https://www.2cto.com/kf/201712/703310.html