アクティブモードを使用しようとすると、lftp が「接続中」でハングアップする

アクティブモードを使用しようとすると、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を使用しています

編集: サーバー側ではソケット/ポートのプールが限られているようなので、パッシブ モードは避けるようにしています。他のユーザーと競合しているようで、時々「パッシブ モードが拒否されました」という応答が返されます。転送は短時間で実行する必要があるため、パッシブ モードが使用可能になるまで待つのは信頼できません。

関連情報