码迷,mamicode.com
首页 > 其他好文 > 详细

虚拟机NAT模式下外网访问内网FTP服务

时间:2015-04-15 07:18:49      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:linux服务器   虚机映射   虚拟机   ftp映射   ftp服务器   

宿主主机地址  192.168.1.106

技术分享技术分享

VMnet8网络虚拟网卡地址 192.168.137.1

技术分享技术分享

虚拟机地址 192.168.137.99

技术分享技术分享

1,外网设备需要访问虚拟机FTP服务

首先在虚拟机上安装FTP服务(直接RPM安装vsftpd RPM安装包即可),并启用FTP服务

如果需要外网能访问这台虚拟机上的FTP服务,那么需要开启虚拟机的端口映射功能

Workstation虚拟机上操作步骤如下

 编辑--虚拟网络编辑器--

技术分享技术分享

  首先找个端口映射到咱们的虚拟机FTP服务器的21端口上

 技术分享技术分享

 但是这个时候问题来了,此时你在192.168.1这个网段的局域网主机上是无法访问这台虚机FTP服务的,通过在虚机上用tcpdump抓包,会发现到虚机的21号端口的命令链接是建立起来了,但是由于无法建立数据链接,所以最终你是无法访问FTP上的数据的。

      一般来讲FTP客户端软件(比如CuteFTP,Fillzilla,WinSCP)这些软件连接方式是PASV(被动模式),即FTP客户端向服务端口(默认是21)发出连接请求,服务端接到请求后建立命令链路。然后服务端通过命令链路发消息告诉客户端,服务端XXXX端口,位于(1025—65535)之间,开放,与客户端建立起数据链路,从而客户端可以进行数据上传与下载。这个被动指的是客户端被动收到服务端的消息,才能开始传输。一般这样的话,可能会收到服务端防火墙的阻隔

      而主动模式,PORT,即FTP客户端向服务端口(默认是21)发出连接请求,服务端接到请求后建立命令链路,这个过程与被动连接一样。然后客户端通过命令链路发消息告诉服务端,客户端一般是20端口开放,服务端收到消息后连接该端口,建立起数据链路,从而进行数据的上传下载。这个主动是指客户端主动开放20端口,并发起与服务端建立数据传输的请求。这种模式,可能受限于客户端防火墙的限制,另外也不能用与代理上网时的FTP服务,因为服务端收到客户端请求后,他连接的代理服务器的端口

      主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机 (上面三段文字取自网络)

     也就是说PASV模式下客户端访问FTP服务器的时候,服务器通过命令链接告诉客户端,我已经打开了XXXX端口,你来连接我的XXXX端口,就可以取得你需要的数据了,客户端收到了服务端的消息后,于是就去访问宿主主机也就是192.168.1.106的XXXX端口,但是XXXX端口并没有做相应的端口转发,于是这个请求就会超时,无法连接FTP服务器

此时只需要做两步,就可以让192.168.1这个网段的主机访问FTP 服务器了

1,在FTP服务端指明被动模式使用的端口范围

修改服务器FTP服务配置文件(vsftpd.conf)加两行,并重启FTP服务

pasv_min_port=10000

pasv_max_port=10003

技术分享技术分享

第二步在虚拟机上配置

技术分享技术分享

这样配置好后,利用客户端来登录访问

技术分享技术分享


本文出自 “明镜亦非台” 博客,请务必保留此出处http://kk876435928.blog.51cto.com/3530246/1632767

虚拟机NAT模式下外网访问内网FTP服务

标签:linux服务器   虚机映射   虚拟机   ftp映射   ftp服务器   

原文地址:http://kk876435928.blog.51cto.com/3530246/1632767

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!