学习笔记:
1.FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。
二、PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了****端口,你过来连接我”。于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。
2.使用yum -y install vsftpd安装时报错`
filesystem-3.2-25.el7.x86_64.rpm 的公钥没有安装`,使用yum -y install vsftpd --nogpgcheck跳过公钥检查
3.修改配置的时候报错`/bin/sh : no such file or directory`,十分天真的以为这个问题不严重,可以先放一放,先把其他配置做好,重启一下就好了,结果系统直接无法启动了。为了找出启动过程中卡在哪里了,重启虚拟机,开机时按下任意键进入GUN界面,按e进入
把rhgb quiet删掉,回车,按b重新引导系统,启动过程中报错,缺失文件
init: Failed to spawn readahead-collector main process: unable to execute: No such file or directory
init: Failed to spawn rcS pre-start process: unable to execute: No such file or directory
init: Failed to spawn readahead main process: unable to execute: No such file or directory
init: Failed to spawn readahead-collector post-stop process: unable to execute: No such file or directory
init: Failed to spawn rcS post-stop process: unable to execute: No such file or directory
init: Failed to spawn readahead-disable-services main process: unable to execute: No such file or directory
关闭虚拟机,挂载光盘进入救援模式
shell 进入命令行模式
进入chroot /mnt/sysimage/时报错`chroot : cannot execute /bin/sh : not a directory`,搜索了大量的资料各种尝试之后发现是/mnt/sysimage/ 目录下缺少bin sbin 目录,复制一个sbin文件挂载U盘拷贝过来就可以了,但是去哪里拷贝这个文件呢,又在网上各种搜索之后,发现可以将光盘上的文件复制过去
再运行chroot /mnt/sysimage/成功,可以进入根目录了,重启虚拟机,正常开机
参考链接:
https://blog.csdn.net/weixin_41843733/article/details/107468767
4.配置vsftpd的时候,使用yum安装完vsftpd后,无论如何修改/etc/vsftpd/vsftpd.conf配置文件,运行sudo service vsftpd restart之后都报错`vsftpd: 未被识别的服务`,防火墙配置没有问题,端口也没有被占用,selinux状态也是disabled,在etc/init.d里压根就没有vsftpd,关键是网上查资料,大部分又都比较顺利就能启动vsftpd,基本上尝试过上面几个配置之后都解决了,真是百思不得其解,已经准备放弃了,打算重装系统。吃完晚饭,在手机上搜索阿里云的yum源的时候,突然想起之前配置源的时候,centOS6的源已经过期了,就用了一个替代的源,可能不是那么靠谱,重新搜索阿里云源配置,很快就发现可以使用阿里云centos-vault源,替换原来的CentOS-Base.repo文件,重新使用yum安装vsftpd,重新配置一遍,就可以正常使用了。在浏览器测试也可以正常进入ftp。
参考链接:
https://blog.csdn.net/sinat_28371057/article/details/112393145
5.在配置/etc/vsftpd/vsftpd.conf的时候有一个需要注意的点,这里的local user要设置成NO,这是为了防止通过ftp进入上级目录
默认配置里,可以通过ftp直接访问上一级的目录,非常危险
配置成NO之后,相当于ftp的初始目录就成了根目录了,无法通过cd ..到达上一级