Linux 서버용 FTP 사용자를 생성하고 filezilla를 사용하여 서버에 연결했습니다.
로그인은 성공했지만 디렉터리 목록은 실패했습니다. 제가 놓친 변경사항이 있나요?
내 vsftpd.conf 파일에는 다음이 포함되어 있습니다.
chroot_local_user =YES
local_enable = Yes
idle_session_timeout=600
pasv_min_port=2121
pasv_max_port=2142
log_ftp_protocol=YES
syslog_enable=YES
pasv_enable=YES
UFW에서 포트 2121~2142를 열었습니다.
답변1
로그 파일을 확인해야 합니다(경우에 따라 /var/log/syslog 또는 지정되지 않은 경우 /var/log/messages). 이 매개변수를 사용하여 /etc/vsftpd.conf에서 이를 설정할 수 있습니다:
xferlog_file=/var/log/vsftpd.log
서비스를 다시 시작하고 다시 시도한 후 로그 파일에서 항목을 확인하는 것을 잊지 마세요.
대부분의 경우 사용자가 디렉터리에 진입하지 못하게 하는 것은 상위 디렉터리의 권한 문제입니다. 귀하의 게시물에 "/var/www"가 표시됩니다. 일부 폴더 권한에 대해 "x" 플래그를 놓쳤을 수 있습니다. 다른 사용자 및/또는 그룹이 소유한 경우 "기타"로 설정해야 할 수도 있습니다.
추가적으로 /etc/shells 파일을 확인해야 합니다. 로그인에 사용되는 사용자 셸이 포함되어 있어야 합니다. 이 오류는 /bin/false를 사용하여 사용자를 추가하기 때문에 일반적이지만 이 파일에서는 쉘이 허용되지 않아 오류와 함께 로그아웃됩니다.
마지막으로 중요한 것은 로그인 문제인지 권한 문제인지 확인하려면 "chroot_local_user=YES" 없이 서비스를 실행해 보세요.
하지만 먼저 로그에서 힌트를 확인하세요. 그들은 당신에게 뭔가를 제공할 것입니다.
답변2
수동 모드 연결을 설정할 수 없습니다. 가장 가능성이 높은 문제는 FTP 클라이언트와 FTP 서버 사이의 수동 모드 포트를 통해 TCP 트래픽을 보내고 받을 수 없다는 것입니다.
클라이언트의 로컬 방화벽을 확인하십시오.
인터넷 라우터의 방화벽과 포트 전달을 확인하세요.
서버의 UFW 설정을 다시 확인하세요.
ufw status verbose
다음과 같은 줄이 나열되어야 합니다.2121:2142/tcp ALLOW IN Anywhere
다른 질문을 찾아보세요. 아마도 이것은:seccomp_sandbox=NO 추가.
답변3
chroot_local_user
로 설정했으며 YES
이미지에서 FTP 서버가 열려고 합니다 /var/www/....
. 이것이 로컬 사용자 home
디렉토리입니까?