명령을 실행한 후 FTP 세션에서 쫓겨나는 이유는 무엇입니까? 서버에 성공적으로 로그인하면 "ls"와 같은 명령을 실행한 후 다음과 같은 결과가 나타나는 것 같습니다("[ERROR]" 태그에 오류 부분을 포함했습니다).
allen92@allen92-VirtualBox:~/Videos$ ftp -n ftp.FreeBSD.org
Connected to ftp.FreeBSD.org.
220 beastie.tdk.net FTP server (Version 6.00LS) ready.
ftp> user
(username) anonymous
331 Guest login ok, send your email address as password.
Password:
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
[ERROR]
421 Service not available, remote server has closed connection
[ERROR]
ftp>
이는 원격 FTP 서버에서 발생하는 것 같습니다. 로컬 컴퓨터에 로그인하고 FTP 명령을 실행하면 모든 것이 잘 작동합니다. 실제로 "421" 오류가 일반적인 오류인 경우 문제의 원인을 찾을 수 있는 방법이 있습니까? 이에 대한 단서는 크게 감사하겠습니다. 이에 대한 지원을 찾을 수 없습니다.특별한질문. 비슷한 문제가 있는 분은 의견을 공유해주세요.
참고: 나는VSFTPD설치하다.
답변1
이 증상을 표시하는 서버와 사용자 사이에 NAT 방화벽이 있을 가능성이 높습니다. (NAT 방화벽은 단일 IP 번호 뒤에 전체 네트워크를 숨깁니다.)
문제는 ftp가 명령에 의해 생성된 데이터를 새로운 방식으로 전송하려고 한다는 것입니다.분리TCP/IP 연결 및저것데이터는 서버에서 사용자에게 전송되어야 하고 사용자는 방화벽 뒤에 숨겨져 있기 때문에 방화벽을 통과할 수 없습니다. 방화벽은 데이터가 사용자의 컴퓨터를 위한 것인지 전혀 모릅니다. FTP 프로토콜이 설계되었을 때는 NAT 라우터(사용 가능한 IP 주소보다 장치가 많을 때 필요함)와 같은 많은 최신 장치가 아직 개발되지 않았습니다.
이 pasv
명령(클라이언트에서 다른 이름을 가질 수 있음)을 사용하여 데이터 연결이 사용자에서 서버로 이동하는 수동 연결로 변경합니다.
바라보다http://slacksite.com/other/ftp.html더 자세한 설명을 원하시면.
답변2
/etc/vsftpd.conf에 이 줄을 추가하거나 활성화합니다.
seccomp_sandbox=아니요