一把鼻涕一把泪 搭建公网ftp服务器
至于为什么要搭建公网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服务器的更多相关文章
- linux中搭建公网ftp服务器
Linux搭建ftp服务器汇总整理 一.检查linux中是否已经安装vsftpd服务端软件 rpm -qa |grep vsftpd 二.卸载linux中的vsftpd服务端软件 rpm -e vsf ...
- 在Linux中搭建一个FTP服务器
在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...
- Linux中搭建一个ftp服务器详解
来源:Linux社区 作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...
- 使用FileZilla Server轻松搭建个人FTP服务器
Linux平台下快速搭建FTP服务器 服务器FTP Server环境搭建 针对以上遇到的问题的解决方案如下: 1)如何上传文件到云服务器上 关于这个问题,我首先想到的是使用FileZ ...
- Linux搭建一个FTP服务器
1.安装vsftp 2.配置vsftpd.conf, vim /etc/vsftpd.conf 下面说说里面比较重要的选项 1 anonymous_enable=NO #不允许匿名用户 2 3 loc ...
- 【Linux搭建创建FTP服务器】---完美解决 - 费元星
配置大红字文件置顶: vsftp d.conf 4.5KB useradd -d /home/bai_du -s /sbin/nologin bai_du 修改访问权限: usermod ...
- Windows10搭建本地ftp服务器
首先要有一个win10专业版的操作系统,连接上互联网... 一.首先打开控制面板选择程序,再选择"启用或关闭windows功能" 二.在"Windows功能"中 ...
- Ubuntu 14.10下搭建简易FTP服务器[vsftpd]
Ubuntu下公认最易上手的ftp软件是vsftpd,既然标题都说了是“简易”的,那么必然是用最大众的..下面是正题 目标需求:搭建一个允许匿名/本地登录的FTP,并且支持上传/下载/修改功能,同时F ...
- 使用filezilla server搭建FTP服务器
参考文献 http://www.pc6.com/infoview/Article_51961_all.html 背景 需要在内网环境下搭建一个FTP服务器,查阅相关资料发现使用filezilla se ...
随机推荐
- cxf 调用 webservice服务时传递 服务器验证需要的用户名密码
cxf通过wsdl2java生成客户端调用webservice时,如果服务器端需要通过用户名和密码验证,则客户端必须传递验证所必须的用户名和密码,刚开始想通过url传递用户名和密码,于是在wsdl文件 ...
- yii2 session的使用方法
yii2打开session use yii\web\Session; $session = Yii::$app->session; // check if a session is alread ...
- 使用Nominatim进行openstreetmap地址搜索/解析
Nominatim(来自拉丁语,意思是“名称”)是一个可以按名称和地址来搜索OSM中的数据,并生成OSM点的合成地址的工具(反向地理编码).可用在http://nominatim.openstreet ...
- 适配iOS10以及Xcode8
现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本, ...
- angularjs中父,子,兄之间controller值得传递
使用angularjs,发现controller间的值传递,比较麻烦的,以后几篇文章会陆续说几种方法. 一,angularjs $broadcast $emit $on的处理思想 在一个control ...
- Shell入门教程:流程控制(4)case 条件判断
case的语法结构: case 待测项 in 样式串1] 命令区域1 ;; (样式串2) 命令区域2 ;; 样式串3) 命令区域3 ;; *) 命令区域 ;; esac 命令区域,可以是单一指令或多行 ...
- C#常用类库(100多个)
http://download.csdn.net/download/dxf1213cs/8238153
- C和指针 第十章 结构和联合 (二)
结构体传值: 结构体也是标量,像字符和整数一样,可以传递给一个函数,但是传入整个结构体效率很低,可以传入指向结构体的指针来提高效率.如果不希望程序对结构体变量改变可以加入const关键词. typed ...
- Asp.Net Core--基于声明的授权
翻译如下: 当创建身份时,其可以被分配由可信方发布的一个或多个声明. 索赔是名称值对,表示主题是什么,而不是主体可以做什么. 例如,您可能有驾驶执照,由当地驾驶执照颁发. 您的驾驶执照上有您的出生日期 ...
- iOS开发——高级篇——图片轮播及其无限循环效果
平时APP中的广告位.或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是Scr ...