IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Linux vsftpd:vsftpd[4070]: warning: can’t get client address: Socket operation on non-socket

    Adamhuan发表于 2017-04-28 07:34:12
    love 0

    该错误发生的时候,具体的情况如下:

    [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。



沪ICP备19023445号-2号
友情链接