ACTIVE 모드를 사용하려고 하면 lftp가 "연결 중" 상태에서 전화를 끊습니다.

ACTIVE 모드를 사용하려고 하면 lftp가 "연결 중" 상태에서 전화를 끊습니다.

활성 모드에서 lftp를 사용해야 합니다(서버 측의 일부 제한으로 인해). 그래서 다음 ~/.lftprc구성 파일을 설정했습니다 .

debug
set ssl:verify-certificate no
set ftp:port-ipv4 148.X.X.86
set ftp:passive-mode false
set ftp:ssl-allow false
set ftp:prefer-epsv no
set ftp:port-range 1026-1029
set net:socket-bind-ipv4 192.168.2.114

임의의 주소로 lftp를 실행하면 동일한 문제가 발생합니다.

lftp ftp.gnu.org
---- Resolving host address...
---- 2 addresses found: 2001:470:142:3::b, 209.51.188.20
lftp ftp.gnu.org:~> ls
---- Connecting to ftp.gnu.org (2001:470:142:3::b) port 21
**** connect(control_sock): Network is unreachable
---- Closing control socket
---- Connecting to ftp.gnu.org (209.51.188.20) port 21
<--- 220 GNU FTP server ready.
---> FEAT
<--- 211-Features:               
<---  EPRT
<---  EPSV
<---  MDTM
<---  PASV
<---  REST STREAM
<---  SIZE
<---  TVFS
<--- 211 End
---> USER anonymous
<--- 230-NOTICE (Updated October 15 2021):

<--- 230 Login successful.
---> PWD
<--- 257 "/" is the current directory
---> PORT 148,X,X,86,4,3
<--- 200 PORT command successful. Consider using PASV.
---> LIST
`ls' at 0 [Waiting for transfer to complete]

그리고 클라이언트는 데이터를 기다리는 동안 전화를 끊습니다. 포트 4*256+3=1027이 열려 있어야 하고 데이터 연결 목록이 표시되어야 하며 실제로 다음과 같습니다.

[root@c03 mkawka]# lsof -i -P |grep ftp
lftp      150072   mkawka    5u  IPv4 63562629      0t0  TCP c03:35266->ftp.gnu.org:21 (ESTABLISHED)
lftp      150072   mkawka    6u  IPv4 63607851      0t0  TCP c03:1027 (LISTEN)
[root@c03 mkawka]# 

또한 열려 있는 포트가 실제로 보이는지 외부에서 확인했습니다(방화벽 문제를 제외하기 위해).

[mkawka@huragan ~]$ nmap 148.X.X.86 -p1024-1029 -Pn

Starting Nmap 6.40 ( http://nmap.org ) at 2022-08-24 12:28 UTC
Nmap scan report for 148.X.X.86
Host is up (0.0021s latency).
PORT     STATE    SERVICE
[...]
1027/tcp open     IIS
[...]

lftp 4.4.8 및 CentOS 7.9를 사용하고 있습니다.

편집: 서버 측에는 제한된 소켓/포트 풀이 있는 것 같기 때문에 수동 모드를 피하려고 합니다. 다른 사용자와 경쟁하고 있는 것 같으며 때로는 '수동 모드가 거부되었습니다'라는 응답을 받습니다. 짧은 시간 내에 전송을 수행해야 하므로 패시브 모드 가용성을 기다리는 것은 신뢰할 수 없습니다.

관련 정보