vsftpd가 수동 포트 범위를 고려하지 않는 이유는 무엇입니까?

vsftpd가 수동 포트 범위를 고려하지 않는 이유는 무엇입니까?

vsftpd를 패시브 모드로 구성했습니다

listen=YES
log_ftp_protocol=YES
pasv_enable=YES
pasv_address=192.168.0.2
pasv_min_port=10090
pasv_max_port=10100

작동하지만 임의의 포트를 사용합니다!

전송 중 ss의 출력 보기

tcp   ESTAB     0      0                            192.168.0.2:33150     192.168.0.2:21    users:(("ncftp",pid=14411,fd=4)) timer:(keepalive,119min,0) uid:1000 ino:236010 sk:400b cgroup:unreachable:1 <->    
tcp   ESTAB     0      0                            192.168.0.2:44985     192.168.0.2:20    users:(("ncftp",pid=14411,fd=7)) timer:(keepalive,119min,0) uid:1000 ino:246607 sk:4011 cgroup:unreachable:1 <->  

그것은 중요하지 않습니다. 방화벽이 없으면 방화벽과 NAT가 포트를 리디렉션하는 것이 심각한 문제입니다. vsftpd가 임의의 포트를 사용하는 이유는 무엇입니까?

나는 열심히 노력했다

listen_ipv6=NO

pasv_address 옵션을 비활성화합니다. 하지만 아무것도 아니야

실제로는 전체 구성입니다

anonymous_enable=YES
connect_from_port_20=NO
dirmessage_enable=YES
ftpd_banner=Welcome
listen=YES
listen_ipv6=NO
local_umask=022
log_ftp_protocol=YES
ls_recurse_enable=YES
pasv_address=192.168.0.2
pasv_enable=YES
pasv_max_port=10100
pasv_min_port=10090
seccomp_sandbox=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

Slackware 15와 Debian 12에서 사용해 보았습니다.

예는 다음과 같습니다.

ncftp는 작동하지만 패시브 포트 범위를 존중하지 않습니다.

ftp는 작동하지만 패시브 포트 범위를 존중하지 않습니다.

ftp -p 192.168.0.2
Connected to 192.168.0.2 (192.168.0.2).
220 Welcome
Name (192.168.0.2:me): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> get 4.mkv
local: 4.mkv remote: 4.mkv
227 Entering Passive Mode (192,168,0,2,39,112).
150 Opening BINARY mode data connection for 4.mkv (12904291 bytes).
226 Transfer complete.
12904291 bytes received in 0,0272 secs (473899,78 Kbytes/sec)

답변1

실제로는했다당신이 말하는 것.

클라이언트 라인은 다음과 같습니다.

227 Entering Passive Mode (192,168,0,2,39,112).

6개의 시리즈를 보여줍니다.바이트 (쉼표에 주의하세요). 포트 번호는 마지막 2개입니다.

39 * 256 + 112 = 10096.

따라서 포트 범위 내에 있는 포트 10096을 사용합니다.

답변2

발견된 해결 방법: vsftpd가 올바르게 구성되었습니다. 문제는 ncftp 및 lftp 클라이언트가 임의의 포트를 설정한다는 것입니다.

관련 정보