至于为什么要搭建公网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. Android开发之《常用工具及文档汇总》

    GreenVPN:https://www.getgreenjsq.com/ Android开发工具.资料下载汇总:http://androiddevtools.cn/#img-size-handle- ...

  2. windows系统在python3.5环境下安装mysql组件

    折腾了一个多小时,终于把连接Mysql的模块装好了,由于我的环境是python3.5,Mysql官方支持到python3.4,后面google查到有pymysql模快支持python3.5,这个模块是 ...

  3. Python之路【第一篇】:Python简介和入门

    python简介: 一.什么是python Python(英国发音:/ pa θ n/ 美国发音:/ pa θɑ n/),是一种面向对象.直译式的计算机程序语言. 每一门语言都有自己的哲学: pyth ...

  4. php5 数据类型

    一.PHP主要有一下几种数据类型 String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值) ...

  5. table td 文字超出显示省略号

    .autocut {      width:250px;      overflow:hidden;      white-space:nowrap;      text-overflow:ellip ...

  6. XHTML的规则

    以正确的DOCTYPE和命名空间开始文档 使用meta内容元素声明你的字符编码 用小写字母写所有元素和属性名称 给所有属性值加引号 给所有属性赋一个值 关闭所有标签 用空格和斜杠关闭“空”标签 不要在 ...

  7. centos安装PHP服务器步骤

    方法一.使用网友开发的EZHTTP程序包一键安装. 可以参考地址http://www.centos.bz/2013/08/ezhttp-tutorial/ http://www.cnblogs.com ...

  8. URL处理几个关键的函数parse_url、parse_str与http_build_query

    parse_url() 该函数可以解析 URL,返回其组成部分.它的用法如下: array parse_url(string $url) 此函数返回一个关联数组,包含现有 URL 的各种组成部分.如果 ...

  9. Linux进程间通信(六):共享内存 shmget()、shmat()、shmdt()、shmctl()

    下面将讲解进程间通信的另一种方式,使用共享内存. 一.什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存.共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式 ...

  10. Java 调用 C++ (Java 调用 dll)康哥手把手教你

    摘要: 本文原创,转载请注明地址 http://www.cnblogs.com/baokang/p/4979243.html 因为要做点图形处理的项目,需要在Java中调用dll库,所以开发的第一步是 ...