昨天调试了半天的ftp passive模式,记录一下
![引导关注](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2dpZi9nVHVHZGF3dUhuSXVsRVpkWXlaamZzaHZlbHpZVTJYWmQ4M2JRdld2WHN3TDg0ZDZNSTRFU2JjNVdqYk1yZ0FaS0l0bVZ2eEdRcWNWZGtDaWNTU0RXUHcvNjQw?x-oss-process=image/format,png)
今天在一台测试服务器上搭建ftp,折腾了许久。
主要是不了解ftp的passive模式和port模式的区别。这里记录一下。
和passive模式对应的叫做port模式,也叫做standard模式,也叫主动模式。
每个ftp客户端和服务端建立连接需要建立两个连接,一个连接用于命令传输,一个连接用于数据传输。
命令传输不管主动模式还是被动模式,都是客户端主动连接服务端建立的。
但是数据传输就不同了。
主动模式的图
20200628140929
主动模式的主动说的是服务端主动。当要进行数据传输的时候,客户端先向服务端告知一个端口,然后在客户端开启端口listen。由服务端主动连接这个端口,建立数据传输通道。
被动模式的图
20200628141254
被动模式的被动说的也是服务端。当要进行数据传输的时候,服务端告知客户端一个端口,然后在服务端开启端口listen,由客户端主动连接这个端口,服务端被动接受连接,建立数据传输通道。
有什么不同
这两种连接方式最大的不同在于是否服务端主动发起连接。由于防火墙,安全等策略,很多情况下根本不允许服务端主动发起连接。所以在很多情况下会建议使用被动模式(Passive)。
被动模式就要求服务端开启端口,这个端口是可以指定的
MaxInstances 30
PassivePorts 8040 8070
这样就指定了同时允许有30个连接,其中的服务器开启的数据传输端口为8040 - 8070。
参考
http://blog.fens.me/linux-ftp-proftpd/
https://blog.csdn.net/lizhiqiang5846/article/details/78783111
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9mZkdHSzB5M2JCSzNIRlQ1Ykl0VlpiUVNLZ21DZGxja3JjU0hiY3ZpYkVNVUdiVW1KNGdGbEw4eUp5OVF3bjBtTmdpY1A4R1o3Z3dsZ2liMGxHaFFTMTJuQS82NDA?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy8wM0tOTzlGaWIydzdFUEJTR1RLS0FwMzBqZXQ3aWNnWDZTN2lhbHpSalBpYm1tWlJtVFpvNG1QdE1pYm9VMFg1cEt1Sno0dmdUdjA2amZnYWEzdzFiOEt0ZGdnLzY0MA?x-oss-process=image/format,png)
Hi,我是轩脉刃,一个名不见经传码农,体制内的小愤青,躁动的骚年,2020年想坚持写一些学习/工作/思考笔记,谓之倒逼学习。欢迎关注个人公众号:轩脉刃的刀光剑影。
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9mZkdHSzB5M2JCTFAxdjYzaWI3eE4xd2liNHluSFFxU2tHWm1lbjZ4VjhsWXAxZ01RcTE0Vm5kc1F1c3ZibWJIbVZPM3N1MG5EaWJYdVJWNFB1RnhJY3BHQS82NDA?x-oss-process=image/format,png)
MORE | 更多原创文章
① gorm日志模块源码解析
② 测试用例是开发人员最后一块遮羞布
③ mariaDB vs mysql的区别
④ 一次composer错误使用引发的思考
⑤ colly源码学习
⑥ 使用chan的时候选择对象还是指针