| 2021-08-16
在日常工作中,有时候需要把公司内部的某些服务向外提供服务,例如FTP服务、WEB服务等等,像这种需求,应该怎样解决呢?下面小编就带大家详细了解关于外网访问内网ftp服务器的相关知识。
FTP 使用 2 个端口,一个数据端口和一个命令端口(也叫做控制端口)。这两个端口一般是21 (命令端口)和 20 (数据端口),当然你也可以自定义。控制 Socket 用来传送命令,数据 Socket 是用于传送数据。每一个 FTP 命令发送之后,FTP 服务器都会返回一个字符串,其中包括一个响应代码和一些说明信息。其中的返回码主要是用于判断命令是否被成功执行了。
命令端口
一般来说,客户端有一个 Socket用来连接 FTP 服务器的相关端口,它负责 FTP 命令的发送和接收返回的响应信息。一些操作如“登录”、“改变目录”、“删除文件”,依靠这个连接发送命令就可完成。
数据端口
对于有数据传输的操作,主要是显示目录列表,上传、下载文件,我们需要依靠另一个 Socket来完成。
如果使用被动模式,通常服务器端会返回一个端口号。客户端需要用另开一个 Socket 来连接这个端口,然后我们可根据操作来发送命令,数据会通过新开的一个端口传输。
如果使用主动模式,通常客户端会发送一个端口号给服务器端,并在这个端口监听。服务器需要连接到客户端开启的这个数据端口,并进行数据的传输。
下面对 FTP 的主动模式和被动模式做一个简单的介绍。
主动模式(PORT)
主动模式下,客户端随机打开一个大于1024 的端口向服务器的命令端口 P,即 21 端口,发起连接,同时开放N +1 端口监听,并向服务器发出 “port N+1” 命令,由服务器从它自己的数据端口 (20) 主动连接到客户端指定的数据端口 (N+1)。
FTP 的客户端只是告诉服务器自己的端口号,让服务器来连接客户端指定的端口。对于客户端的防火墙来说,这是从外部到内部的连接,可能会被阻塞。
被动模式(PASV)
为了解决服务器发起到客户的连接问题,有了另一种 FTP 连接方式,即被动方式。命令连接和数据连接都由客户端发起,这样就解决了从服务器到客户端的数据端口的连接被防火墙过滤的问题。
被动模式下,当开启一个 FTP 连接时,客户端打开两个任意的本地端口 (N > 1024 和 N+1) 。
准备工具:
1.花生壳盒子(花生棒Pro);
2.Serv-U,大家可自行上网搜索下载;
一、Serv-U的安装及设置
1.相信大家对于安装软件不会有啥问题。
2.安装完毕后,直接启动Serv-U,并设置域,记得勾选启用域。
3.接着就是很简单的下一步,端口信息自己可以留意下,FTP网页形式的默认都是用的80端口。
4.到这里,域已经创建成功,我们还需要创建FTP的用户账号密码。
5.设置你的FTP服务器根目录。就是你希望从外网连接到你服务器的哪个目录,每个人需求不一样,请根据实际需求设置。
6.点击完成,就已经搭建好FTP服务器了,可以用简单的命令测试下。
7.如果你还要给其他人访问你的FTP,但又不想给那么多权限他们,就可以另外再创建一个用户,单独设置这个新账号的权限,这样就不怕别人连接你的FTP后,删除你的重要文件,或者捣乱。
二、花生壳盒子(花生棒Pro)设置
下面的花生壳盒子(花生棒Pro)设置方法,你肯定会觉得非常简单。
So easy,一步到位。填写你的服务器内网IP,FTP端口80,应用名称随便填,点确定就OK。
三、连接FTP
打开浏览器,在地址栏输入花生壳盒子(花生棒Pro)里面设置的映射外网访问地址即可访问。