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

相关推荐
霍霍的袁14 分钟前
【C++11】左值右值引用与移动语义详细笔记(左值右值、右值引用、移动构造、移动赋值、引用折叠、万能转发)
c++·笔记·学习·visual studio
MandalaO_O16 分钟前
SpringMVC 异常处理 & 拦截器
笔记
李永奉1 小时前
杰理可视化SDK开发-音频录制功能使用教程
笔记·单片机·嵌入式硬件·mcu·物联网·音视频
ysu_03142 小时前
【C++ 进阶之路】(二)从内联函数到类与对象:深挖内存对齐、this 指针与三大默认成员函数
开发语言·数据结构·c++·笔记·面向对象·this
叼烟扛炮2 小时前
Linux 学习笔记(三十二):线程控制——创建、等待与分离
linux·运维·服务器·笔记·学习·1024程序员节
Nuanyt2 小时前
LeetCode Hot 100 · 双指针 3 题 Java
java·笔记·算法·leetcode·双指针
深圳老胡2 小时前
FDC2212 + STM32G030 液面探测:IIC 读数跳动导致下探深度不一致的排查与解决
笔记·stm32·单片机·代码规范·1024程序员节
程序边界2 小时前
一台数据集成软件的拆解笔记(上):把 KFS 装起来、跑起来,再挑一堆毛病
笔记·原型模式
叼烟扛炮2 小时前
Linux 学习笔记(二十九):进程信号(上)—— 信号捕捉与异步魔法
linux·运维·笔记·学习·1024程序员节
曾庆睿3 小时前
计算机图形学入门笔记_GAMES101_Lecture01-02
笔记·计算机图形学