项目中要使用ftp进行文件的上传和下载,写了一个小程序,可是半天连接不上,报QNetworkReply::ConnectionRefusedErro。
问了度娘原来是linux环境没有安装ftp服务,而vsftpd使用教方便,就开始安装,过程各种问题,好在现在已经解决,安装过程如下:
1. 先检查有没有安装vsftpd
执行rpm -qa | grep vsftpd
vsftpd-3.0.2-25.el7.x86_64 //已经安装的版本
如果没有安装会什么都不返回
2. 安装vsftpd
执行 yum -y install vsftpd
3. 启动vsftpd服务,并查看是否启动成功
[root@hadoop2-1 vsftpd]# systemctl start vsftpd.service
[root@hadoop2-1 vsftpd]# systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2019-08-28 10:04:30 CST; 18s ago
Process: 24772 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 24773 (vsftpd)
Tasks: 1
CGroup: /system.slice/vsftpd.service
└─24773 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Aug 28 10:04:30 hadoop2-1.tc systemd[1]: Starting Vsftpd ftp daemon...
Aug 28 10:04:30 hadoop2-1.tc systemd[1]: Started Vsftpd ftp daemon.
到此vsftpd服务启动成功
4. 配置/etc/vsftpd/vsftpd.conf文件
该文件中配置了通过ftp登陆服务器的用户名,密码,是否容许匿名,访问路径等信息,如果默认的配置可以满足你的需求就不需要修改此文件,如果默认的配置无法实现你的需求就要根据你的具体要求来改这个文件,文件中的配置项都可以在网上找到,再次提醒,每次修改完该文件后需要重新启动vsftpd服务,
重新启动命令:service vsftpd restart
我在一次修改后重启服务就出现如下的问题:
[root@hadoop2-1 vsftpd]# service vsftpd restart
Redirecting to /bin/systemctl restart vsftpd.service
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.
[root@hadoop2-1 vsftpd]# ps -ef | grep -a "vsftpd"
root 28237 27699 0 11:03 pts/0 00:00:00 grep --color=auto -a vsftpd
[root@hadoop2-1 vsftpd]# systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2019-08-28 11:03:01 CST; 3min 26s ago
Process: 28212 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=2)
Main PID: 24773 (code=killed, signal=TERM)
Aug 28 11:03:01 hadoop2-1.tc systemd[1]: Starting Vsftpd ftp daemon...
Aug 28 11:03:01 hadoop2-1.tc vsftpd[28212]: 500 OOPS: bad bool value in config file for: userlist_enable
Aug 28 11:03:01 hadoop2-1.tc systemd[1]: vsftpd.service: control process exited, code=exited status=2
Aug 28 11:03:01 hadoop2-1.tc systemd[1]: Failed to start Vsftpd ftp daemon.
Aug 28 11:03:01 hadoop2-1.tc systemd[1]: Unit vsftpd.service entered failed state.
Aug 28 11:03:01 hadoop2-1.tc systemd[1]: vsftpd.service failed.
最后查看原因,是因为我在修改vsftpd.conf时,增加了一行,改行最后多了一个空格,修改文件后服务启动失败就要从这方面考虑。
所以总结就是,下载、安装、启动服务、目前配置无法满足要求就修改配置文件,修改完成后重启服务直到满足要求。