背景/网络结构
路由器有两层,外层路由器有公网 IP 123.123.123.123
(此处以假举例)和私有 IP 192.168.0.1
,内层路由器也是外层路由器的客户端,有公网 IP192.168.0.2
和私有 IP 192.168.1.1
,内层路由器的客户端是一台安装了 FileZilla Server 的 Windows 7 Enterprise 电脑,是内层路由器的客户端,IP 为 ,192.168.1.48
所有 IP 都是静态的。
几个月来,我一直使用互联网另一端的 Windows 远程桌面连接到 Win7 机器。因此,我认为两个路由器上的端口转发规则都是正确的。
从互联网的另一端,FTP 连接也很好。我已经
- 将 FileZilla Server FTP 端口设置为 21
- 将 FileZilla Server 隐式 FTP over TLS 端口设置为 990
- 将 FileZilla Server 被动模式自定义端口范围设置为 1024-65534
- 在 Windows 防火墙入站规则中允许这些端口
- 将这些端口(TCP)转发到
192.168.1.48
内部路由器的IP - 将这些端口 (TCP) 转发到
192.168.0.2
外部路由器的IP
定义...
有三个网络位置:
- 互联网,互联网的某个地方。
- 外部子网,作为外部路由器的客户端,拥有 IP 地址
192.168.0.xxx
。 - 内层子网,作为内层路由器的客户端,拥有IP地址
192.168.1.xxx
。
我能做什么/不能做什么:
A. Windows 远程桌面 - 由于我在两个路由器上转发了端口 3389,因此 RDP 可在这三个位置上运行。
B. 使用端口 21 的基本 FTP(非 FTPS 隐式,非 FTPS 显式)- 在所有三个位置均可使用。但非常不安全。
C.FTPS(我重点介绍隐式 FTPS,它更安全)使用端口 990:
- 通过互联网,通过
ftps://123.123.123.123:990
,它就能发挥作用。 - 在外网,有一台电脑和一部手机,IP地址为 ,
192.168.0.11
通过192.168.0.12
访问FTP服务器ftps://192.168.0.2:990
,只有这种情况才不起作用,我不知道为什么。 - 在内网,与FTP服务器在同一个子网内。通过 访问
ftps://192.168.1.48:990
。一切如预期。
添加:显式 FTPS 在情况 C2 中也不起作用。
更多关于这个问题
如上所述,只有外部子网中的客户端无法通过隐式FTPS(端口990)协议访问FTP服务器。
准确的说,根据FTP服务器和FTP客户端的日志,我们可以登录,但是无法列出目录和文件。
案例 C2 中的 FileZilla FTP 客户端日志:
Status: Connecting to 192.168.0.2:990...
Status: Connection established, initializing TLS...
Status: Verifying certificate...
Status: TLS connection established, waiting for welcome message...
Status: Logged in
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is current directory.
Command: TYPE I
Response: 200 Type set to I
Command: PASV
Response: 227 Entering Passive Mode (192,168,1,48,32,136)
Command: MLSD
Response: 425 Can't open data connection for transfer of "/"
Error: Failed to retrieve directory listing
案例 C2 中的 FileZilla FTP 服务器日志:
(000873)12/05/2017 01:50:00 - (not logged in) (192.168.0.11)> Connected on port 990, sending welcome message...
(000873)12/05/2017 01:50:00 - (not logged in) (192.168.0.11)> 220-FileZilla Server 0.9.60 beta
(000873)12/05/2017 01:50:00 - (not logged in) (192.168.0.11)> 220-written by Tim Kosse ([email protected])
(000873)12/05/2017 01:50:00 - (not logged in) (192.168.0.11)> 220 Please visit https://filezilla-project.org/
(000873)12/05/2017 01:50:00 - (not logged in) (192.168.0.11)> TLS connection established
(000873)12/05/2017 01:50:02 - (not logged in) (192.168.0.11)> USER midnite
(000873)12/05/2017 01:50:02 - (not logged in) (192.168.0.11)> 331 Password required for midnite
(000873)12/05/2017 01:50:02 - (not logged in) (192.168.0.11)> PASS ***
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 230 Logged on
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> SYST
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 215 UNIX emulated by FileZilla
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> FEAT
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 211-Features:
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> MDTM
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> REST STREAM
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> SIZE
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> MLST type*;size*;modify*;
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> MLSD
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> AUTH SSL
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> AUTH TLS
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> PROT
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> PBSZ
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> UTF8
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> CLNT
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> MFMT
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> EPSV
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> EPRT
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 211 End
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> PBSZ 0
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 200 PBSZ=0
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> PROT P
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 200 Protection level set to P
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> PWD
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 257 "/" is current directory.
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> TYPE I
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 200 Type set to I
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> PASV
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> 227 Entering Passive Mode (192,168,1,48,32,136)
(000873)12/05/2017 01:50:02 - midnite (192.168.0.11)> MLSD
(000873)12/05/2017 01:50:12 - midnite (192.168.0.11)> 425 Can't open data connection for transfer of "/"