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