В статье предлагаем рассмотреть наиболее распространенные проблемы, связанные с FTP, и разобраться, как их решать.
Содержание
По FTP не видно файлов .htaccess
В *nix системах все файлы начинающиеся с точки считаются скрытыми. Обычно в настройках ftp клиента есть галочка "показывать скрытые файлы". Для вашего же удобства используйте FTP клиент: Filezilla, который доступен для бесплатного скачивания на официальном сайте: http://filezilla.ru/ Так же возможно сделать чтобы ftp сервер их всегда отображал. Для proftpd надо прописать в файл (для FreeBSD) /usr/local/etc/proftpd.conf строку
ListOptions -la
В шаблонах с ispmanager данная опция, как правило, прописана по-умолчанию
Не могу зайти пользователем root
Так как протокол ftp не предполагает шифрование, во время передачи сравнительно легко украсть пароль. Из соображений безопасности доступ пользователем root по ftp отключен. Это стандартная настройка. Если вам всё же необходимо иметь доступ к серверу через ftp протокол, то используйте протокол SFTP.
Не могу подключиться по FTP
Debian/Ubuntu
Установлен ли FTP-сервер
Удостоверьтесь, что сервер установлен и сервис запущен, в Debian/Ubuntu вы можете использовать команду dpkg
:
# dpkg -l | grep -i "ftp"
Ответ сервера:
ii ftp 0.17-27 amd64 classical file transfer client ii proftpd-basic 1.3.4a-4+nmu1 amd64 Versatile, virtual-hosting FTP daemon - binaries ii proftpd-mod-vroot 0.9.2-2+b2 amd64 ProFTPD module mod_vroot
Или запустить следующую команду:
# dpkg -l | grep -i ftp
В любом случае, если FTP-пакет установлен, будет возвращен ответ сервера. Если FTP не установлен, команда покажет вам это, или не будет ответа вообще, в таком случае FTP-сервер необходимо установить:
# apt install proftpd
Запущен ли FTP-сервер (открыт ли 21 порт)?
Подключитесь к серверу, используя SSH, и используйте команду telnet
(посмотреть, открыт ли 21 порт):
# telnet localhost 21
Следующим шагом запускаем команду netstat -tulpn
и смотрим, запущен ли 21 порт:
# netstat -tulpn | grep :21
Ответ сервера:
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
Или попробуйте следующую команду:
# netstat -a | grep ftp
Ответ сервера:
tcp 0 0 *:ftp *:* LISTEN
Если порт не открыт, запустите FTP-сервис/сервер. Используйте следующую команду:
# /etc/init.d/proftpd start
Запрет для пользователя
Если у пользователя не получается использовать ваш FTP-cервер, удостоверьтесь, что он имеет разрешение. Файл /etc/ftpusers
— список пользователей, которым запрещен доступ по FTP, убедитесь, что пользователь не в этом файле.
Security или Firewall
Убедитесь, что firewall/tcpd не блокирует подключение к вашему FTP-серверу. Запустите следующую команду:
# iptables -L -n
Ответ сервера:
Chain INPUT (policy ACCEPT) target prot opt source destination ISPMGR all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination ISPMGR all -- 0.0.0.0/0 0.0.0.0/0 Chain ISPMGR (2 references) target prot opt source destination
Если в ответе вы увидите, что 21 порт заблокирован firewall, вам нужно использовать правила iptables для порта 21. Так же убедитесь, что файл /etc/hosts.deny
не блокирует подключение к 21 порту для вашего хоста.
CentOS
Установлен ли FTP-сервер?
Удостоверьтесь, что сервер установлен и сервис запущен, в CentOS вы можете использовать команду rpm
:
# rpm -qa proftpd
Ответ сервера:
proftpd-1.3.4a-1.el6.rf.x86_64
В любом случае, если FTP пакет установлен, будет возвращен ответ сервера. Если FTP не установлен, команда покажет вам это, или не будет ответа вообще, в таком случае FTP сервер необходимо установить:
# yum install proftpd
Запущен ли FTP-сервер? (открыт ли 21 порт)
Подключитесь к серверу, используя SSH, и используйте команду telnet
, чтобы посмотреть, открыт ли 21 порт:
# yum install telnet # telnet localhost 21
Следующим шагом запускаем команду netstat -tulpn
, посмотреть, запущен ли 21 порт:
# netstat -tulpn | grep :21
Ответ сервера:
tcp 0 0 :::21 :::* LIST
Или попробуйте следующую команду:
# netstat -a | grep ftp
Ответ сервера:
tcp 0 0 *:ftp *:* LISTEN
Если порт не открыт, запустите FTP-сервис/сервер. Используйте следующую команду:
Centos 6
# service proftpd start
Centos 7
#systemctl restart proftpd
Запрет для пользователя.
Если у пользователя не получается использовать ваш FTP-сервер, удостоверьтесь, что он имеет разрешение. Файл /etc/ftpusers
— список пользователей, которым запрещен доступ по ftp, убедитесь, что пользователь не в этом файле.
Security или Firewall
Убедитесь, что firewall/tcpd не блокирует подключение к вашему FTP-серверу. Запустите следующую команду:
# iptables -L -n
Ответ сервера:
Chain INPUT (policy ACCEPT) target prot opt source destination ISPMGR all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination ISPMGR all -- 0.0.0.0/0 0.0.0.0/0 Chain ISPMGR (2 references) target prot opt source destination
Если в ответе вы увидите, что 21 порт заблокирован firewall, вам нужно использовать правила iptables для порта 21. Также убедитесь, что файл /etc/hosts.deny
не блокирует подключение к 21 порту для вашего хоста.