公司配置内网穿透方法笔记(二):FTP内网穿透方法

一、前言

接上篇文章,假设公司外网IP是10.123.123.123(只要公司局域网里能上外网,就总会有一个外网IP,联系运营商改成静态的);

公司路由器配置,端口转发(Port Forwarding),配置了21的端口转发:

a 复制代码
2221 TCP 192.168.1.9 21

这个配置的效果是,把访问10.123.123.123:2221的报文(TCP协议的),转发给公司内部局域网电脑192.168.1.9:21上,这台电脑就是公司内部的FTP服务器,默认FTP协议就是21。

现在的问题是,只配置21的端口转发不行,从外部还是链接不了公司内部的FTP服务器,报错超时。

二、FTP的两种模式

因为FTP协议是多端口协议,还需要其他端口才行;并且有两种工作模式,如图:

现在推荐使用的是被动模式,不推荐主动模式;(Windows CMD比较老了,只有主动模式,无法使用被动模式,注意别用这个测试)

1.假设客户端使用被动模式链接FTP服务器,首先要给服务器的21端口发请求;然后服务器会开放一个随机端口通知客户端,客户端再给服务器的随机端口发请求,才能完成数据传输。

2.假设客户端用主动模式链接FTP服务器,首先要给服务器的21端口发请求,然后自己开放一个随机端口、还走21端口通知给服务器,最后服务器去给客户端的随机端口发请求,完成数据传输。

三、FTP内网穿透配置方法

假设客户端用被动模式链接公司内网FTP服务器,访问10.123.123.123:2221,被路由器转发到了192.168.1.9:21,登录成功;

然后FTP服务器开放了一个随机端口,通知客户端、下次访问这个端口;

但是客户端再访问10.123.123.123:随机端口,就链接不上服务器了,因为没有配置其他的路由器的端口转发规则。

1.路由器配置

a 复制代码
2221 TCP 192.168.1.9 21
60000-65534 TCP 192.168.1.9 60000-65534

首先,多配置一个路由器端口转发规则,注意这次需要对应一致。

2.FTP服务器配置

注意这个是FileZilla FTP服务器,不是客户端。

其中,选择了自定义开放端口范围,60000-65534,与路由器转发端口保持一致;外网服务器地址(Public IP)10.123.123.123,与公司外网IP保持一致,下面的对钩,意思是,如果用内网访问FTP服务器(192.168.1.9),那就返回给客户端内网IP(192.168.1.9)。

四、梳理流程

假设客户端用被动模式链接FTP服务器,先访问10.123.123.123:2221,被路由器转发到192.168.1.9:21,登录成功;

然后FTP服务器根据配置,随机一个端口(假设是60000),返回10.123.123.123.:60000,告诉客户端,下次用这个链接:端口来拿数据;

最后客户端访问10.123.123.123:60000,被路由器转发到192.168.1.9:60000,就能成功拿到数据。

五、备注

如果客户端用主动模式链接服务器,最后一步,服务器访问客户端的IP:随机端口时,通常会被客户端这边的防火墙/路由器拦截,导致传输超时。防火墙为了安全,默认就是让出不让进,不让陌生端口的数据进来。

(用被动模式就行,FileZilla客户端与FlashFXP客户端都支持被动模式,除了Windows CMD)

相关推荐
小彭律师5 小时前
量子密码的轻量级通信协议笔记
笔记·信息可视化
&Cheems6 小时前
ZYNQ笔记(十九):VDMA VGA 输出分辨率可调
笔记·fpga开发
自小吃多7 小时前
FreeRTOS Semaphore信号量-笔记
笔记·stm32
axinawang7 小时前
python笔记和练习----少儿编程课程【阶段二(二)】
笔记
Timmer丿8 小时前
kafka学习笔记(四、生产者、消费者(客户端)深入研究(三)——事务详解及代码实例)
java·笔记·学习·kafka
清风来点灯9 小时前
Ubuntu22.04安装显卡驱动/卸载显卡驱动
linux·笔记·ubuntu
吃货界的硬件攻城狮10 小时前
【STM32 学习笔记】USART串口
笔记·stm32·单片机·学习
吃货界的硬件攻城狮11 小时前
【STM32 学习笔记】I2C通信协议
笔记·stm32·单片机·学习
晨曦学习日记11 小时前
C++学习笔记
c++·笔记·学习
Humbunklung11 小时前
PySide6 GUI 学习笔记——常用类及控件使用方法(常用类字体QFont)
笔记·python·学习·pyqt