公司配置内网穿透方法笔记(二):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)

相关推荐
特种加菲猫15 分钟前
指尖上的魔法:优雅高效的Linux命令手册
linux·笔记
wuxuanok43 分钟前
Web后端开发-分层解耦
java·笔记·后端·学习
wuxuanok1 小时前
Web后端开发-请求响应
java·开发语言·笔记·学习
诗句藏于尽头2 小时前
内网使用rustdesk搭建远程桌面详细版
笔记
蜡笔小电芯2 小时前
【C语言】指针与回调机制学习笔记
c语言·笔记·学习
丰锋ff2 小时前
瑞斯拜考研词汇课笔记
笔记
DKPT4 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
KoiHeng7 小时前
操作系统简要知识
linux·笔记
巴伦是只猫8 小时前
【机器学习笔记Ⅰ】11 多项式回归
笔记·机器学习·回归
DKPT11 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式