至于为什么要搭建公网ftp服务器,就当我心血来潮吧。

  ftp开源工具很多,咱用的是filezilla服务器。后来为了方便搭建web服务器,就改成了集成工具xampp。客户端工具也是filezilla client,用浏览器也行。

  首先内网用户想搭建公网ftp服务器第一个要解决的问题是如何得到公网ip。经过认真试验仔细研究得到两种方案:

    1.设置路由器参数,增加转发规则,外网21端口转发到内网21端口;

    2.还是设置路由器,设置dmz主机,把自己的内网ip地址填上去,路由器的公网ip就成了自己电脑的公网ip。

  这里要注意的是,设置完路由器后,还要把21端口添加到防火墙的例外中,否则外网的连接被拒绝。我是直接关掉了防火墙。

  幸运的话,打开ftp服务器,设置用户名密码和根目录,一个公网ftp服务器就诞生了。查一下路由器自己的公网ip即可从外网访问。

  路由器的公网ip也不是一成不变的,为了解决这个问题,咱们下载一个免费的花生壳,注册账号密码登录,就能得到一个域名。用域名代替公网ip,就可以坐享公网ftp服务器了。

  其实刚开始咱还是很幸运的,舒舒服服用了两天公网ftp后,突然不能连接了。这个原因排查的过程,真是不堪回首月明中啊。我把上面的过程翻来覆去重复了5遍,已经看透了原理学懂了理论,结果仍是一样的。为了测试公网ip的可用性,特地找远程的朋友用socket工具测试了tcp连接,发现聊天妥妥的顺滑。问题就定位在ftp服务器上了。最具有误导性的现象是,公网ip过来的连接是可以正常登录服务器的,但是无法进入pasv模式,用dir命令列出目录也不能,服务器会断开socket。我就以为是服务器设置的问题,禁用pasv模式,改用port模式也不能够可以。查到一个方案,说是用花生壳做端口映射,但是妹的那是内网映射,收费的。后来发现别人有遇到有时候可用有时候不能用的情况,更换21端口就稳定了。我试了一下,问题解决!原来是ISP把21端口给封了,路由器的公网ip也不是免费的午餐!

  最后,ftp端口改成21212,尘埃落定。

  

一把鼻涕一把泪 搭建公网ftp服务器的更多相关文章

  1. linux中搭建公网ftp服务器

    Linux搭建ftp服务器汇总整理 一.检查linux中是否已经安装vsftpd服务端软件 rpm -qa |grep vsftpd 二.卸载linux中的vsftpd服务端软件 rpm -e vsf ...

  2. 在Linux中搭建一个FTP服务器

    在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...

  3. Linux中搭建一个ftp服务器详解

    来源:Linux社区  作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...

  4. 使用FileZilla Server轻松搭建个人FTP服务器

    Linux平台下快速搭建FTP服务器 服务器FTP Server环境搭建 针对以上遇到的问题的解决方案如下: 1)如何上传文件到云服务器上          关于这个问题,我首先想到的是使用FileZ ...

  5. Linux搭建一个FTP服务器

    1.安装vsftp 2.配置vsftpd.conf, vim /etc/vsftpd.conf 下面说说里面比较重要的选项 1 anonymous_enable=NO #不允许匿名用户 2 3 loc ...

  6. 【Linux搭建创建FTP服务器】---完美解决 - 费元星

    配置大红字文件置顶:   vsftp d.conf 4.5KB     useradd -d /home/bai_du -s /sbin/nologin bai_du 修改访问权限: usermod ...

  7. Windows10搭建本地ftp服务器

    首先要有一个win10专业版的操作系统,连接上互联网... 一.首先打开控制面板选择程序,再选择"启用或关闭windows功能" 二.在"Windows功能"中 ...

  8. Ubuntu 14.10下搭建简易FTP服务器[vsftpd]

    Ubuntu下公认最易上手的ftp软件是vsftpd,既然标题都说了是“简易”的,那么必然是用最大众的..下面是正题 目标需求:搭建一个允许匿名/本地登录的FTP,并且支持上传/下载/修改功能,同时F ...

  9. 使用filezilla server搭建FTP服务器

    参考文献 http://www.pc6.com/infoview/Article_51961_all.html 背景 需要在内网环境下搭建一个FTP服务器,查阅相关资料发现使用filezilla se ...

随机推荐

  1. HTML5 图片缩放功能

    腾讯新闻上用的插件(xw.qq.com) 缩放插件scale.js (function(window, undefined) { var document = window.document, sup ...

  2. 详解https是如何确保安全的?

    Https 介绍 什么是Https HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是 ...

  3. 【网络基础编程】第三节 C/S

    学习地址: C语言中文网 - 实现迭代服务端和客户端 GNU - Closing a Socket 前面介绍的程序,不管Service 端还是 Client端,都有一个问题,就是处理完一个 accep ...

  4. 战神Z7 D2安装黑苹果OS X El Capitan 10.11.2

    安装之初状态:两块硬盘,都是MBR格式分区,一块是机械硬盘,安装了WIN7 32位和Linux,一块是SSD,安装的是WIN7 64位与WIN10 64位以前玩过Mavericks,安装的就是在硬盘的 ...

  5. JavaScript 中一些概念理解 :clientX、clientY、offsetX、offsetY、screenX、screenY

    clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条. clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包 ...

  6. Java框架--jQueryEasyUI

    111------------------------------------------------------------------------------------------------- ...

  7. VC调试闪退解决办法

    在VC2010调试或执行EXE文件时,程序运行结束后自动退出了,想看到打印 可以采用几种方法: 1.按ctrl+F5只执行不调试 2.在cmd中手动调用 而不是直接点 3.加入getchar  #in ...

  8. PHP异常处理函数set_exception_handler()的用法

    定义和用法 set_exception_handler() 函数设置用户自定义的异常处理函数. 该函数用于创建运行时期间的用户自己的异常处理方法. 该函数会返回旧的异常处理程序,若失败,则返回 nul ...

  9. 【MySQL】 empty table and delete table.

    1.MySQL生成删除满足条件的表的sql: 1 SELECT 2 CONCAT( 3 'DROP TABLE ', 4 GROUP_CONCAT(table_name), 5 ';' 6 ) AS ...

  10. angularjs向后台传参,后台收不到数据

    angularjs中封装了一个$http服务,用来请求远程资源 参见:HTTP API 其中封装过的$http.post和$http.get使用起来比较方便 后台是php,用$_POST['name' ...