내가 설치할 때마다 vsftpd
에 centos
, 사용자 및 나머지 I에만 설치 감옥 환경의 기본 구성입니다 vsftpd
. 사용자를 생성하고 filezila
ftp 클라이언트 와 연결을 시도 했지만 수동 모드로 연결할 수 없습니다. 나는 그렇지 않으면 내가 얻는 transfer settings
것에 성공적으로 연결하기 위해 항상 활성 모드로 변경합니다.ftp server
Error: Failed to retrieve directory listing
vsftp.conf
파일의 지시문을 변경하는 방법이 있습니까? 패시브 모드로 서버에 연결할 수 있습니까?
답변
vsftpd에 대한 수동 모드를 구성하려면 vsftpd.conf에서 일부 매개 변수를 설정해야합니다.
pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090
수동 모드를 활성화하고 데이터 연결에 11 개의 포트를 사용하도록 제한합니다. 방화벽에서 이러한 포트를 열어야 할 때 유용합니다.
iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT
테스트 후이 모든 것이 작동하면 방화벽 상태를 다음과 같이 저장하십시오.
service iptables save
/etc/sysconfig/iptables
파일 을 업데이트 합니다.
CentOS 7을 사용하려면 iptables가 아닌 새로운 방화벽을 사용해야합니다.
지역 찾기 :
# firewall-cmd --get-active-zones
public
interfaces: eth0
내 영역은 ‘public’이므로 영역을 public으로 설정하고 포트 범위를 추가 한 후 다시로드합니다.
# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload
연결하면 어떻게됩니까
-
클라이언트는 포트 21에서 vsftpd 서버에 연결합니다.
-
서버는 클라이언트에 응답하여 위에 지정된 범위에서 연결할 포트를 알려줍니다.
-
클라이언트는 지정된 포트에서 데이터 연결을하고 세션이 계속됩니다.
다른 ftp 모드에 대한 자세한 설명이 여기에 있습니다.
답변
수동 모드를 활성화하려면 vsftp.conf에서 다음 구성 옵션을 설정하십시오.
pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx
물론 시작 및 종료 포트를 변경할 수 있으며 xxx를 서버의 공용 IP로 바꿔야합니다.
또한 방화벽에서 수동 모드 포트 범위를 열어야합니다. centos에서는 ip_conntrack_ftp
방화벽에서 ftp 연결을 처리하기 위해 모듈을 로드 할 수 있습니다 . /etc/sysconfig/iptables-config
ip_conntrack_ftp를 편집 하여 IPTABLES_MODULES 옵션에 추가 하십시오 . 그런 다음 iptables를 다시 시작하십시오.
/sbin/service iptables restart
답변
옆에 pasv_enable=YES
VSFTP가 PASV 모드를 실행할 포트 범위를 지정하십시오.
pasv_min_port=50000
pasv_max_port=50999
port_enable=YES
iptables를 설정하는 것을 잊지 마십시오 :이 포트에서 패킷 전송이 가능합니다 :
iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT
답변
일반적으로 ftp 서버, vsftpd는 아니지만 iptable과 같은 방화벽은 수동 모드 사용을 방지합니다 (데이터 전송에 필요한 TCP 연결 차단).