수동 모드와 작동하도록 vsftpd를 구성하는 방법 수동 모드로 연결할 수 없습니다. 나는

내가 설치할 때마다 vsftpdcentos, 사용자 및 나머지 I에만 설치 감옥 환경의 기본 구성입니다 vsftpd. 사용자를 생성하고 filezilaftp 클라이언트 와 연결을 시도 했지만 수동 모드로 연결할 수 없습니다. 나는 그렇지 않으면 내가 얻는 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-configip_conntrack_ftp를 편집 하여 IPTABLES_MODULES 옵션에 추가 하십시오 . 그런 다음 iptables를 다시 시작하십시오.

/sbin/service iptables restart

답변

옆에 pasv_enable=YESVSFTP가 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 연결 차단).