수동 모드의 VSFTP 연결 수

수동 모드의 VSFTP 연결 수

패시브 모드로 작업할 때 pasv_max_port를 10100으로 설정하고 pasv_min_port를 10090으로 설정하면 VSFTP 서버가 동시에 10개의 클라이언트에만 서비스를 제공할 수 있다는 뜻인가요?

pasv_max_port와 pasv_min_port에 동일한 포트 번호를 설정할 수 있나요? 가능하다면 VSFTP 서버가 동시에 처리할 수 있는 클라이언트 수는 몇 개입니까? 하나만요?

답변1

단순화하려면, 나는 그렇다고 말하고 싶습니다. 그리고 그것이 당신이 그것을 고려하는 방법입니다(내 생각에는).

포트 범위를 제한하면 최소 및 최대 포트 수에 따라 동시 클라이언트 연결이 제한됩니다. 이렇게 하면 이상한 행동을 피할 수 있습니다.

그러나 이는 사실이 아니며 조정이 필요합니다 :-)

더 깊이 있고 더 정확하게 말하자면:포트 제한은 데이터 채널의 동시 사용에 영향을 줍니다..

새로운 연결 요청에는 사용 가능한 데이터 채널이 필요합니다.

데이터 채널을 사용하는 모든 FTP 명령에 대해 알지 못하지만 기본적으로 upload (STOR), download (RETR), list (LIST)명령에는 데이터 채널이 필요합니다.


이를 설명하기 위해 내 vsftpd 서버와 다음 설정을 사용하여 실험실에서 테스트를 수행했습니다(재현 가능).

pasv_max_port=10100
pasv_min_port=10100

1. 첫 번째 테스트 :

  • 나는 Client1과 연결한다: ok
  • Client1이 아직 연결되어 있는 동안 Client2에 연결합니다. 확인
  • Client1과 Client2가 계속 연결되어 있는 동안 Client3에 연결합니다. 확인

왜 ?

  • Client1이 아무 작업도 하지 않고(유휴) 데이터 채널을 사용하지 않았기 때문에 Client2가 연결할 수 있었기 때문에 서버가 Client2에 포트를 할당했습니다.
  • Client1과 Client2가 유휴 상태이고 데이터 채널을 사용하지 않았기 때문에 Client3이 연결할 수 있었기 때문에 서버가 Client3에 포트를 할당했습니다.

2. 두 번째 테스트 :

  • Client1에 연결하고 파일 업로드를 시작합니다. : ok 파일 업로드 진행 중
  • Client1 업로드가 계속 실행되는 동안 Client2에 연결합니다. 오류가 연결될 수 없습니다.
  • Client1 업로드가 완료될 때까지 기다립니다.
  • Client1 업로드가 완료되면 Client2에 연결할 수 있었습니다.

왜 ?

  • Client1이 업로드를 위해 데이터 채널을 사용하고 있었기 때문에 Client2는 서버 측에 서비스를 제공할 수 있는 포트가 더 이상 없기 때문에 연결할 수 없었습니다.
  • Client1 업로드가 완료되면 서버는 데이터 채널 포트를 확보하고 Client2는 이를 사용하여 연결할 수 있습니다.

3. 세 번째 테스트:

  • 나는 Client1과 연결한다: ok
  • Client1이 아직 연결되어 있는 동안 Client2에 연결합니다. 확인
  • Client1에서 FTP 서버로의 업로드를 시작합니다. 확인 업로드 진행 중
  • Client1 업로드가 계속 실행되는 동안 Client2에서 ftp 서버로의 업로드를 시작합니다. 오류 연결이 서버에 의해 닫혔습니다. 전송에 실패했습니다.

왜 ?

테스트 1과 테스트 2의 혼합:

  • Client1이 아무 작업도 하지 않고(유휴) 데이터 채널을 사용하지 않았기 때문에 Client2가 연결할 수 있었기 때문에 서버가 Client2에 포트를 할당했습니다.
  • Client2가 유휴 상태이므로 서버가 업로드를 위해 Client1에 포트를 할당했기 때문에 Client1은 파일을 업로드할 수 있습니다.
  • Client1이 업로드를 위해 이미 데이터 전송 포트를 사용 중이므로 Client2는 파일을 업로드할 수 없습니다.

이제 내가 왜 처음에 "이상한" 행동에 대해 이야기했는지 이해하실 수 있을 것입니다.

그것이 도움이 되기를 바랍니다!

관련 정보