url image

FTP - частые проблемы

В статье предлагаем рассмотреть наиболее распространенные проблемы, связанные с 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 порту для вашего хоста.

Этот материал был полезен?

Скидка 25% новым клиентам!
Закажи сервер сегодня и получи скидку на первый месяц аренды!