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

相关推荐
s_little_monster1 小时前
【Linux】进程地址空间
linux·运维·服务器·经验分享·笔记·学习·学习方法
Pandaconda4 小时前
【新人系列】Python 入门(三十):工作常用第三方库 - 上
开发语言·经验分享·笔记·后端·python·面试·第三方库
羊小猪~~5 小时前
MYSQL学习笔记(七):新年第一篇之子查询
数据库·笔记·后端·sql·学习·mysql·考研
siy23336 小时前
[c语言日记]动态规划入门:杨辉三角
c语言·开发语言·笔记·学习·算法·动态规划
JeffreyGu.7 小时前
软考中级软件设计师如何两个月通过
笔记
小高Baby@8 小时前
Deepseek
人工智能·笔记
『₣λ¥√≈üĐ』9 小时前
推荐系统Day1笔记
笔记
仲大Nanami11 小时前
黑马React保姆级(PPT+笔记)
笔记·学习·react.js
隼玉14 小时前
C语言简单练习题
c语言·c++·笔记·学习·算法