1
oott123 2014-12-23 12:58:41 +08:00 via Android
你说的好像很有道理,我也想知道,楼主有答案了请@我谢谢~
|
2
yywudi 2014-12-23 13:32:09 +08:00 3
楼主请先去google一下FTP协议,active 模式和 passive模式的区别
http://slacksite.com/other/ftp.html Active FTP : command : client >1023 -> server 21 data : client >1023 <- server 20 Passive FTP : command : client >1023 -> server 21 data : client >1024 -> server >1023 发数据的时候,active模式是服务器的20端口主动去连客户端,在某些场景下,客户端在防火墙下面不允许远端20端口穿透防火墙(or NAT) 直接连到客户端 这时候采用passive模式,让客户端重新主动发起一个连接到服务端上协商好的一个随机端口来传数据 |
3
rrfeng OP |
6
yywudi 2014-12-23 14:00:52 +08:00
@rrfeng sorry, 那我之前是真的没看懂你的问题
你是想说为什么PASV模式客户端连到服务端为什么不直接连20端口,而是连一个>1024的随机端口? 那大概是像你所说的,20端口是被设计用来主动发起数据连接的,不能被监听... |
9
otakustay 2014-12-23 14:40:43 +08:00
我觉得主要原因是client的防火墙配置是未知的,用户也不一定有专业能力去配好防火墙,所以固定一个端口的话鬼知道什么时候就被墙了,所以就采用随机端口协商的方式
|
10
oott123 2014-12-23 15:00:58 +08:00 via Android
@otakustay 随机的鬼知道什么时候就背墙了…
对网络管理员来说更加不方便吧?要么就得分析 FTP 协议(加密的时候还没什么好办法,而且效率可能还不太好),要么就得把那一个范围的端口全打开,两者都不是什么好办法… |
11
Showfom 2014-12-23 15:48:59 +08:00 via iPhone
楼主这么一说我发现我一年没用过FTP了2333333
|
12
EPr2hh6LADQWqRVH 2014-12-23 16:04:58 +08:00
难道不是控制信道和数据信道分离的考虑?
|
14
Showfom 2014-12-23 16:12:53 +08:00 via iPhone
@rrfeng 文件多的话本地打包好用 scp 塞进去解压 文件少么直接 scp 咯 就是速度稍微慢点 大文件的话怎么都慢 宁可服务器里 wget
|
15
kslr 2014-12-23 17:08:21 +08:00
百度百科:FTP协议
看工作方式 主要是为了突破防火墙限制 |
16
dorentus 2014-12-23 17:58:25 +08:00 via iPhone
1024 以内的端口号都是要注册/保留给已知协议用的吧,所以随机的端口号才都会选后面的。
至于为什么要随机,而不是指定一个端口让所有客户端来连,就不清楚了。可能是怕麻烦? |
17
mfaner 2014-12-23 18:59:25 +08:00
似乎监听固定端口的话,同一IP下多个客户端没法辨认
|