Вопрос или проблема
У меня возникли некоторые трудности с тем, чтобы FileZilla отображала содержимое папки, которая является целевой для символической ссылки.
На скриншоте commonfiles
и db_uploads
– это символические ссылки на папки, у которых указаны права 777
, но когда я щелкаю на любую из них, я получаю следующую ошибку:
Я не смог найти никаких настроек в FileZilla, которые могли бы изменить это поведение.
Версия FZ 3.33.0, Win10 64-bit
Сервер Apache/2.4.33 (cPanel) OpenSSL/1.0.2o mod_bwlimited/1.4
Журнал попытки получить каталог символической ссылки:
09:09:59 Trace: CControlSocket::SendNextCommand()
09:09:59 Trace: CFtpLogonOpData::Send() in state 0
09:09:59 Status: Resolving address of *************************
09:09:59 Status: Connecting to ***********:21...
09:09:59 Status: Connection established, waiting for welcome message...
09:09:59 Trace: CFtpControlSocket::OnReceive()
09:09:59 Response: 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
09:09:59 Response: 220-You are user number 1 of 55 allowed.
09:09:59 Response: 220-Local time is now 14:09. Server port: 21.
09:09:59 Response: 220-This is a private system - No anonymous login
09:09:59 Response: 220-IPv6 connections are also welcome on this server.
09:09:59 Response: 220 You will be disconnected after 15 minutes of inactivity.
09:09:59 Trace: CFtpLogonOpData::ParseResponse() in state 1
09:09:59 Trace: CControlSocket::SendNextCommand()
09:09:59 Trace: CFtpLogonOpData::Send() in state 2
09:09:59 Command: AUTH TLS
09:09:59 Trace: CFtpControlSocket::OnReceive()
09:09:59 Response: 234 AUTH TLS OK.
09:09:59 Trace: CFtpLogonOpData::ParseResponse() in state 2
09:09:59 Status: Initializing TLS...
09:09:59 Trace: CTlsSocketImpl::Handshake()
09:09:59 Trace: CTlsSocketImpl::ContinueHandshake()
09:09:59 Trace: TLS handshake: About to send CLIENT HELLO
09:09:59 Trace: TLS handshake: Sent CLIENT HELLO
09:09:59 Trace: CTlsSocketImpl::OnSend()
09:09:59 Trace: CTlsSocketImpl::OnRead()
09:09:59 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received SERVER HELLO
09:10:00 Trace: TLS handshake: Processed SERVER HELLO
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received CERTIFICATE
09:10:00 Trace: TLS handshake: Processed CERTIFICATE
09:10:00 Trace: TLS handshake: Received SERVER KEY EXCHANGE
09:10:00 Trace: TLS handshake: Processed SERVER KEY EXCHANGE
09:10:00 Trace: TLS handshake: Received SERVER HELLO DONE
09:10:00 Trace: TLS handshake: Processed SERVER HELLO DONE
09:10:00 Trace: TLS handshake: About to send CLIENT KEY EXCHANGE
09:10:00 Trace: TLS handshake: Sent CLIENT KEY EXCHANGE
09:10:00 Trace: TLS handshake: About to send FINISHED
09:10:00 Trace: TLS handshake: Sent FINISHED
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received NEW SESSION TICKET
09:10:00 Trace: TLS handshake: Processed NEW SESSION TICKET
09:10:00 Trace: TLS handshake: Received FINISHED
09:10:00 Trace: TLS handshake: Processed FINISHED
09:10:00 Trace: TLS Handshake successful
09:10:00 Trace: Protocol: TLS1.2, Key exchange: ECDHE-RSA, Cipher: AES-256-GCM, MAC: AEAD
09:10:00 Trace: Hostname does not match certificate SANs
09:10:00 Status: Verifying certificate...
09:10:00 Status: TLS connection established.
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 5
09:10:00 Command: USER ********
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 331 User ******** OK. Password required
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 5
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 5
09:10:00 Command: PASS ************
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 230 OK. Current restricted directory is /
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 5
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 9
09:10:00 Command: OPTS UTF8 ON
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 200 OK, UTF-8 enabled
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 9
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 10
09:10:00 Command: PBSZ 0
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 200 PBSZ=0
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 10
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 11
09:10:00 Command: PROT P
09:10:01 Trace: CTlsSocketImpl::OnRead()
09:10:01 Trace: CFtpControlSocket::OnReceive()
09:10:01 Response: 200 Data protection level set to "private"
09:10:01 Trace: CFtpLogonOpData::ParseResponse() in state 11
09:10:01 Status: Logged in
09:10:01 Trace: Measured latency of 177 ms
09:10:01 Trace: CFtpControlSocket::ResetOperation(0)
09:10:01 Trace: CControlSocket::ResetOperation(0)
09:10:01 Trace: CFileZillaEnginePrivate::ResetOperation(0)
09:10:01 Trace: CFileZillaEnginePrivate::ResetOperation(0)
09:10:19 Status: Retrieving directory listing of "/public_html/db_uploads"...
09:10:19 Trace: CControlSocket::SendNextCommand()
09:10:19 Trace: CFtpListOpData::ListSend() in state 0
09:10:19 Trace: CFtpChangeDirOpData::Send() in state 0
09:10:19 Trace: CFtpChangeDirOpData::Send() in state 2
09:10:19 Command: CWD /public_html/db_uploads
09:10:19 Trace: CTlsSocketImpl::OnRead()
09:10:19 Trace: CFtpControlSocket::OnReceive()
09:10:19 Response: 550 Can't change directory to /public_html/db_uploads: No such file or directory
09:10:19 Trace: CFtpChangeDirOpData::ParseResponse() in state 2
09:10:19 Trace: CFtpControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ParseSubcommandResult(2)
09:10:19 Trace: CFtpListOpData::SubcommandResult() in state 1
09:10:19 Trace: CFtpControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ResetOperation(2)
09:10:19 Error: Не удалось получить список каталогов
09:10:19 Trace: CFileZillaEnginePrivate::ResetOperation(2)
Это не проблема FileZilla. Код ошибки 550 может указывать на то, что у вашего пользователя нет разрешения на доступ к этому каталогу, и тогда FTP сервер блокирует доступ к нему. Проверьте разрешение каталога на вашем сервере.
ey могли бы изменить это поведение.
Версия FZ 3.33.0, Win10 64-bit
Сервер Apache/2.4.33 (cPanel) OpenSSL/1.0.2o mod_bwlimited/1.4
Журнал попытки получить каталог символической ссылки:
09:09:59 Trace: CControlSocket::SendNextCommand()
09:09:59 Trace: CFtpLogonOpData::Send() in state 0
09:09:59 Status: Resolving address of *************************
09:09:59 Status: Connecting to ***********:21…
09:09:59 Status: Connection established, waiting for welcome message…
09:09:59 Trace: CFtpControlSocket::OnReceive()
09:09:59 Response: 220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
09:09:59 Response: 220-You are user number 1 of 55 allowed.
09:09:59 Response: 220-Local time is now 14:09. Server port: 21.
09:09:59 Response: 220-This is a private system – No anonymous login
09:09:59 Response: 220-IPv6 connections are also welcome on this server.
09:09:59 Response: 220 You will be disconnected after 15 minutes of inactivity.
09:09:59 Trace: CFtpLogonOpData::ParseResponse() in state 1
09:09:59 Trace: CControlSocket::SendNextCommand()
09:09:59 Trace: CFtpLogonOpData::Send() in state 2
09:09:59 Command: AUTH TLS
09:09:59 Trace: CFtpControlSocket::OnReceive()
09:09:59 Response: 234 AUTH TLS OK.
09:09:59 Trace: CFtpLogonOpData::ParseResponse() in state 2
09:09:59 Status: Initializing TLS…
09:09:59 Trace: CTlsSocketImpl::Handshake()
09:09:59 Trace: CTlsSocketImpl::ContinueHandshake()
09:09:59 Trace: TLS handshake: About to send CLIENT HELLO
09:09:59 Trace: TLS handshake: Sent CLIENT HELLO
09:09:59 Trace: CTlsSocketImpl::OnSend()
09:09:59 Trace: CTlsSocketImpl::OnRead()
09:09:59 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received SERVER HELLO
09:10:00 Trace: TLS handshake: Processed SERVER HELLO
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received CERTIFICATE
09:10:00 Trace: TLS handshake: Processed CERTIFICATE
09:10:00 Trace: TLS handshake: Received SERVER KEY EXCHANGE
09:10:00 Trace: TLS handshake: Processed SERVER KEY EXCHANGE
09:10:00 Trace: TLS handshake: Received SERVER HELLO DONE
09:10:00 Trace: TLS handshake: Processed SERVER HELLO DONE
09:10:00 Trace: TLS handshake: About to send CLIENT KEY EXCHANGE
09:10:00 Trace: TLS handshake: Sent CLIENT KEY EXCHANGE
09:10:00 Trace: TLS handshake: About to send FINISHED
09:10:00 Trace: TLS handshake: Sent FINISHED
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CTlsSocketImpl::ContinueHandshake()
09:10:00 Trace: TLS handshake: Received NEW SESSION TICKET
09:10:00 Trace: TLS handshake: Processed NEW SESSION TICKET
09:10:00 Trace: TLS handshake: Received FINISHED
09:10:00 Trace: TLS handshake: Processed FINISHED
09:10:00 Trace: TLS Handshake successful
09:10:00 Trace: Protocol: TLS1.2, Key exchange: ECDHE-RSA, Cipher: AES-256-GCM, MAC: AEAD
09:10:00 Trace: Hostname does not match certificate SANs
09:10:00 Status: Verifying certificate…
09:10:00 Status: TLS connection established.
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 5
09:10:00 Command: USER ********
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 331 User ******** OK. Password required
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 5
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 5
09:10:00 Command: PASS ************
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 230 OK. Current restricted directory is /
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 5
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 9
09:10:00 Command: OPTS UTF8 ON
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 200 OK, UTF-8 enabled
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 9
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 10
09:10:00 Command: PBSZ 0
09:10:00 Trace: CTlsSocketImpl::OnRead()
09:10:00 Trace: CFtpControlSocket::OnReceive()
09:10:00 Response: 200 PBSZ=0
09:10:00 Trace: CFtpLogonOpData::ParseResponse() in state 10
09:10:00 Trace: CControlSocket::SendNextCommand()
09:10:00 Trace: CFtpLogonOpData::Send() in state 11
09:10:00 Command: PROT P
09:10:01 Trace: CTlsSocketImpl::OnRead()
09:10:01 Trace: CFtpControlSocket::OnReceive()
09:10:01 Response: 200 Data protection level set to “private”
09:10:01 Trace: CFtpLogonOpData::ParseResponse() in state 11
09:10:01 Status: Logged in
09:10:01 Trace: Measured latency of 177 ms
09:10:01 Trace: CFtpControlSocket::ResetOperation(0)
09:10:01 Trace: CControlSocket::ResetOperation(0)
09:10:01 Trace: CFileZillaEnginePrivate::ResetOperation(0)
09:10:01 Trace: CFileZillaEnginePrivate::ResetOperation(0)
09:10:19 Status: Retrieving directory listing of “/public_html/db_uploads”…
09:10:19 Trace: CControlSocket::SendNextCommand()
09:10:19 Trace: CFtpListOpData::ListSend() in state 0
09:10:19 Trace: CFtpChangeDirOpData::Send() in state 0
09:10:19 Trace: CFtpChangeDirOpData::Send() in state 2
09:10:19 Command: CWD /public_html/db_uploads
09:10:19 Trace: CTlsSocketImpl::OnRead()
09:10:19 Trace: CFtpControlSocket::OnReceive()
09:10:19 Response: 550 Can’t change directory to /public_html/db_uploads: No such file or directory
09:10:19 Trace: CFtpChangeDirOpData::ParseResponse() in state 2
09:10:19 Trace: CFtpControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ParseSubcommandResult(2)
09:10:19 Trace: CFtpListOpData::SubcommandResult() in state 1
09:10:19 Trace: CFtpControlSocket::ResetOperation(2)
09:10:19 Trace: CControlSocket::ResetOperation(2)
09:10:19 Error: Не удалось получить список каталогов
09:10:19 Trace: CFileZillaEnginePrivate::ResetOperation(2)
Ответ или решение
Проблема, с которой вы столкнулись при использовании FileZilla, связана с невозможностью доступа к содержимому каталогов, на которые ссылаются символические ссылки. Сообщение об ошибке 550, которое вы получили, указывает на то, что FTP-сервер не может перейти к указанному каталогу, скорее всего из-за недостатка прав доступа к нему.
Вот несколько шагов, которые могут помочь вам решить эту проблему:
-
Проверка прав доступа:
Убедитесь, что у пользователя, под которым вы входите в FTP, есть необходимые права доступа к указанным символическим ссылкам и собственным директориям. Для этого выполните следующие действия:- Подключитесь к серверу через SSH (если это возможно) и выполните команду
ls -l
в родительском каталоге символической ссылки. Убедитесь, что права доступа выставлены правильно (например, 755 для директорий). Если каталог не принадлежит вашему пользователю, вам могут потребоваться права на чтение и выполнение.
ls -l /path/to/parent/directory/
- Подключитесь к серверу через SSH (если это возможно) и выполните команду
-
Проверка инкапсуляции simbolic links:
Некоторые FTP-серверы могут быть настроены так, чтобы не следовать символическим ссылкам. Проверьте конфигурацию вашего FTP-сервера (например, Pure-FTPd) и убедитесь, что настройки позволяют пользователям следовать символическим ссылкам. -
Настройки сервера:
В некоторых случаях настройки конфигурации Apache могут блокировать доступ к определенным директориям. Проверьте конфигурационные файлы вашего веб-сервера, такие как.htaccess
, чтобы убедиться, что в них нет правил, запрещающих доступ к этим директориям. -
Обновление FileZilla:
Вы используете довольно старую версию FileZilla (3.33.0). Рекомендуется обновить клиент до последней стабильной версии, так как в новых версиях могут быть исправлены существующие ошибки и улучшена поддержка различных функций. -
Попробуйте другой клиент FTP:
Если проблема сохраняется, попробуйте использовать другой FTP-клиент (например, WinSCP) для тестирования, чтобы подтвердить, является ли проблема специфичной для FileZilla или она связана непосредственно с сервером. -
Обратитесь в службу поддержки вашего хостинг-провайдера:
Если вышеуказанные шаги не решают проблему, обратитесь к службе поддержки вашего хостинг-провайдера. Они могут помочь вам проверить конфигурацию вашего сервера и убедиться, что он правильно настроен для доступа к символическим ссылкам.
Следуя этим рекомендациям, вы сможете устранить проблему с доступом к символическим ссылкам в FileZilla.