该错误发生的时候,具体的情况如下:
[root@oracle-cluster-3 iconic-one]# service vsftpd start Redirecting to /bin/systemctl start vsftpd.service Job for vsftpd.service failed. See 'systemctl status vsftpd.service' and 'journalctl -xn' for details. [root@oracle-cluster-3 iconic-one]#
Linux的系统日志如下:/var/log/messages
Apr 28 15:08:37 oracle-cluster-3 systemd: Starting Vsftpd ftp daemon... Apr 28 15:08:37 oracle-cluster-3 vsftpd[3782]: warning: can't get client address: Socket operation on non-socket Apr 28 15:08:37 oracle-cluster-3 systemd: vsftpd.service: control process exited, code=exited status=2 Apr 28 15:08:37 oracle-cluster-3 systemd: Failed to start Vsftpd ftp daemon. Apr 28 15:08:37 oracle-cluster-3 systemd: Unit vsftpd.service entered failed state.
【journalctl】的日志:
[root@oracle-cluster-3 iconic-one]# journalctl -xn -- Logs begin at Thu 2017-04-27 10:23:51 CST, end at Fri 2017-04-28 15:08:13 CST. -- Apr 28 15:08:03 oracle-cluster-3 vsftpd[3652]: warning: can't get client address: Socket operation on non-socket Apr 28 15:08:03 oracle-cluster-3 systemd[1]: vsftpd.service: control process exited, code=exited status=2 Apr 28 15:08:03 oracle-cluster-3 systemd[1]: Failed to start Vsftpd ftp daemon. -- Subject: Unit vsftpd.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit vsftpd.service has failed. -- -- The result is failed. Apr 28 15:08:03 oracle-cluster-3 systemd[1]: Unit vsftpd.service entered failed state. Apr 28 15:08:11 oracle-cluster-3 systemd[1]: Stopped Vsftpd ftp daemon. -- Subject: Unit vsftpd.service has finished shutting down -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit vsftpd.service has finished shutting down. Apr 28 15:08:13 oracle-cluster-3 systemd[1]: Starting Vsftpd ftp daemon... -- Subject: Unit vsftpd.service has begun with start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit vsftpd.service has begun starting up. Apr 28 15:08:13 oracle-cluster-3 vsftpd[3695]: warning: can't get client address: Socket operation on non-socket Apr 28 15:08:13 oracle-cluster-3 systemd[1]: vsftpd.service: control process exited, code=exited status=2 Apr 28 15:08:13 oracle-cluster-3 systemd[1]: Failed to start Vsftpd ftp daemon. -- Subject: Unit vsftpd.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel [root@oracle-cluster-3 iconic-one]#
发生该问题的时候,确认两点:
1. 是否启用了IPv6
2. FTP的监听端口,是否被占用
当前的配置情况:
[root@oracle-cluster-3 iconic-one]# cat /etc/vsftpd/vsftpd.conf | grep '^[^#]' anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO tcp_wrappers=YES [root@oracle-cluster-3 iconic-one]#
1. 将上面的对IPv6的监听设为【NO】
2. 修改默认的监听端口21为801
修改VSFTPD的默认端口。
将配置文件修改为以下状态:
[root@oracle-cluster-3 iconic-one]# cat /etc/vsftpd/vsftpd.conf | grep '^[^#]' anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES listen_ipv6=NO pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO tcp_wrappers=YES listen_port=801 [root@oracle-cluster-3 iconic-one]#
如上【listen_port】为端口设定。
然后,重新启动vsftpd服务,就没问题了:
[root@oracle-cluster-3 iconic-one]# service vsftpd start Redirecting to /bin/systemctl start vsftpd.service [root@oracle-cluster-3 iconic-one]# [root@oracle-cluster-3 iconic-one]# service vsftpd status Redirecting to /bin/systemctl status vsftpd.service vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled) Active: active (running) since Fri 2017-04-28 15:31:41 CST; 9s ago Process: 9320 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) Main PID: 9321 (vsftpd) CGroup: /system.slice/vsftpd.service └─9321 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf Apr 28 15:31:41 oracle-cluster-3 systemd[1]: Starting Vsftpd ftp daemon... Apr 28 15:31:41 oracle-cluster-3 systemd[1]: Started Vsftpd ftp daemon. [root@oracle-cluster-3 iconic-one]#
查看一下现在的正常情况下的端口使用情况:
[root@oracle-cluster-3 iconic-one]# netstat -tupln | grep ftp tcp 0 0 0.0.0.0:801 0.0.0.0:* LISTEN 9321/vsftpd tcp6 0 0 :::21 :::* LISTEN 9890/proftpd: (acce [root@oracle-cluster-3 iconic-one]# [root@oracle-cluster-3 iconic-one]# lsof -i :21 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME proftpd 9890 daemon 0u IPv6 47249 0t0 TCP *:21 (LISTEN) [root@oracle-cluster-3 iconic-one]# [root@oracle-cluster-3 iconic-one]# lsof -i :801 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vsftpd 9321 root 3u IPv4 1556599 0t0 TCP *:ftp (LISTEN) [root@oracle-cluster-3 iconic-one]# [root@oracle-cluster-3 iconic-one]#
————————————————
Done。