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

相关推荐
山岚的运维笔记2 小时前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
lpruoyu3 小时前
【Android第一行代码学习笔记】Android架构_四大组件_权限_持久化_通知_异步_服务
android·笔记·学习
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [drivers][mmc][mmc_sdio]
linux·笔记·学习
果果燕3 小时前
今日学习笔记:双向链表、循环链表、栈
笔记·学习·链表
觉醒大王4 小时前
AI写的青基中了
人工智能·笔记·深度学习·学习·职场和发展·学习方法
明月醉窗台4 小时前
qt使用笔记六之 Qt Creator、Qt Widgets、Qt Quick 详细解析
开发语言·笔记·qt
Hello_Embed6 小时前
libmodbus 移植 STM32(USB 串口后端篇)
笔记·stm32·单片机·嵌入式·freertos·libmodbus
张祥6422889046 小时前
RTKLIB源码和理论结合分析笔记三
笔记
日更嵌入式的打工仔7 小时前
0欧电阻作用
笔记
wdfk_prog7 小时前
[Linux]学习笔记系列 -- [drivers][I2C]I2C
linux·笔记·学习