명령을 실행 한 후 왜 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가 설치되어 있습니다.
답변
귀하와 서버 사이에 증상을 나타내는 NAT 방화벽이있을 가능성이 큽니다. NAT 방화벽은 단일 IP 번호 뒤에 전체 네트워크를 숨 깁니다.
문제는 FTP 새로운에서 명령의 결과 데이터를 보내려고 즉 별도의 TCP / IP 연결을하고 그 그것이 당신에게 서버에서 이동해야하기 때문에 방화벽을 통해 갈 수 없어, 당신이 가지고있는 방화벽 뒤에 숨겨져 있습니다 데이터가 컴퓨터를위한 것이라는 단서가 없습니다. FTP 프로토콜이 설계 될 때 NAT 라우터 (사용 가능한 IP 주소보다 많은 장치가있을 때 필요하게 됨)와 같은 많은 최신 장치는 아직 발명되지 않았습니다.
pasv
명령을 사용하여 (클라이언트에서 다른 이름으로 불릴 수 있음) 데이터 연결이 사용자에서 서버로 이동하는 수동 연결로 변경하십시오.
자세한 설명 은 http://slacksite.com/other/ftp.html 을 참조 하십시오 .
답변
/etc/vsftpd.conf에서이 줄을 추가하거나 활성화하십시오
seccomp_sandbox = 아니오