文档章节

在内网架设一个可供外网登录的ftp服务器

首席吹牛官
 首席吹牛官
发布于 2015/05/22 12:56
字数 670
阅读 5
收藏 0

ftp服务器是使用比较平常的服务器,但是IP资源是有限的,那么怎么让内网的服务器給外网的用户提供服务了?

首先需要找一个FTP服务器程序,我在这边使用pure-ftpd-mysql ,这边使用-mysql版本是为了方便用户管理,同时通过数据库可以很好的和其中应用结合起来.

安装pure-ftpd-mysql

我使用的是ubuntu,所以安装没有从源码编译,直接 sudo apt-get install pure-ftpd-mysql .然后使用sudo service pure-ftpd-mysql start开启ftp服务器,这是它会打印一些启动时的配置参数.想看参数可以使用--h命令,可以使用pure-ftpd-mysql -h > help保存到文件,然后看文件.

参数:

-0    --notruncate    
-1    --logpid    
-4    --ipv4only    
-6    --ipv6only    
-8    --fscharset    <opt>
-9    --clientcharset    <opt>
-A    --chrooteveryone    
-a    --trustedgid    <opt>
-b    --brokenclientscompatibility    
-B    --daemonize    
-C    --maxclientsperip    <opt>
-c    --maxclientsnumber    <opt>
-d    --verboselog    
-D    --displaydotfiles    
-e    --anonymousonly    
-E    --noanonymous    
-f    --syslogfacility    <opt>
-F    --fortunesfile    <opt>
-g    --pidfile    <opt>
-G    --norename    
-h    --help    
-H    --dontresolve    
-I    --maxidletime    <opt>
-i    --anonymouscantupload    
-j    --createhomedir    
-K    --keepallfiles    
-k    --maxdiskusagepct    <opt>
-l    --login    <opt>
-L    --limitrecursion    <opt>
-M    --anonymouscancreatedirs    
-m    --maxload    <opt>
-N    --natmode    
-n    --quota    <opt>
-o    --uploadscript    
-O    --altlog    <opt>
-p    --passiveportrange    <opt>
-P    --forcepassiveip    <opt>
-q    --anonymousratio    <opt>
-Q    --userratio    <opt>
-r    --autorename    
-R    --nochmod    
-s    --antiwarez    
-S    --bind    <opt>
-t    --anonymousbandwidth    <opt>
-T    --userbandwidth    <opt>
-U    --umask    <opt>
-u    --minuid    <opt>
-V    --trustedip    <opt>
-w    --allowuserfxp    
-W    --allowanonymousfxp    
-x    --prohibitdotfileswrite    
-X    --prohibitdotfilesread    
-y    --peruserlimits    <opt>
-Y    --tls    <opt>
-J    --tlsciphersuite    <opt>
-z    --allowdotfiles    
-Z    --customerproof   
下面怎么控制用户访问,到/etc/pure-ftpd/db下,然后配置mysql.conf文件,mysql的IP,Port,user,password,database,然后是进行验证的sql语句,我的表是我users,其中有三个字段,用户名,密码,用户登录后的目录,UID和GID默认的是1000.


现在你在浏览器中,输入ftp://127.0.0.1,输入数据库中的保存的数据就可以登录了.

下面对ftp配置,配置文件在/etc/pure-ftpd/conf,其一个配置项为一个文件,默认有AltLog     MinUID           NoAnonymous        PureDB
FSCharset  MySQLConfigFile  PAMAuthentication  UnixAuthentication

其实文件名就是-h命令打印的参数全名.比如-p参数--passiveportrange,先建一个PassivePortRange文件,注意文件名,小写不认的.

内容为45000 50000,标识被动模式的端口范围,在不需要客户端有任何变化情况下访问内网的ftp,使用被动是最好的,有兴趣可以看看主动和被动的区别.

重新启动ftp

可以看到-p参数有效果了.那么怎么让外网访问,需要将21端口和45000~50000端口映射到路由器上的端口,ip为你内网的地址.进入路由器,转发规则,虚拟服务器

现在使用外网登录

ok,搞定收工

© 著作权归作者所有

共有 人打赏支持
首席吹牛官
粉丝 9
博文 368
码字总数 191938
作品 0
闵行
程序员
私信 提问
NAT静态映射

  企业在内网架设了WEB、FTP等服务器,怎么让这些服务器在外网也可以访问呢?能否在路由器上面设置实现呢?当然了,要想把内网的服务器共享到互联网访问,我们必须要通过映射把内网服务器的...

怪诞祖母绿
2017/06/05
0
0
FTP服务器需要开几个端口:理解f tp 主动服务和被动服务的原理

一、FTP服务器需要开几个端口 新买了台服务器,只用来提供FTP和SQL Server服务,为保证安全,只开放21和1433端口。但FTP不能访问,于是我就花了点时间研究了一下防火墙的日志和在网上找了些相...

Oscarfff
2016/01/13
363
0
搭建ntpd时间服务器

由于线上的环境,有些服务器不需要上外网,只需做内网之间的通信即可,所以这些服务器的时间就无法保证同步,可能会对业务造成一些影响,为此,我们需要在内网架设一台NTP时间同步服务器。 ...

残夜寻茶香
2014/07/23
0
0
zimbra如何实现pop3代理

具体想实现这样:公司使用QQ企业邮箱,但邮箱大小有限制,经常爆满就不能收邮件了。 解决方法: 在内网架设一台zimbra服务器,然后在zimbra下载QQ企业邮箱的邮件,客户端(outlook)从zimbr...

wickey
2011/05/30
1K
5
VMware提示:没有更多空间可供虚拟磁盘"***.vmdk"使用 所引发的故障及处理

昨日中午接到客户电话,描述道:生产环境有一台服务器通过外网IP登录不上,在内网IP ssh登陆也密码错误;怀疑是被入侵了,立即登陆VMware ESXi管理端登陆此虚拟机查看,然后重起此虚拟机,结...

Mr_sheng
2018/05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

https://www.jianshu.com/p/dbffae16ba0b

https://www.jianshu.com/p/dbffae16ba0b

张宏亮1982
23分钟前
5
0
linux基本命令

linux常用shell命令=命令+选项+参数 cd (change directory)切换目录 cd #root根目录 cd / #系统根目录 cd ../../ #返回上上一层目录 ls/dir (list)列出目录下文件 ls -a (--all) #列出所...

陈刚生
29分钟前
2
0
30分钟学会如何使用Shiro

本篇内容大多总结自张开涛的《跟我学Shiro》原文地址:http://jinnianshilongnian.iteye.com/blog/2018936 我并没有全部看完,只是选择了一部分对我来说急需在项目中使用的知识加以学习。并且...

群星纪元
30分钟前
2
0
常用算法之快速排序python&php

python(快速排序): # -*- UTF-8 -*- def quicksort(arr): if (len(arr)) < 2: return arr; mark = arr[0] #递归条件 #第一种方式 # left = [i for i in arr[1:] if i < mark]; # right = [i ......

山人有妙计
34分钟前
0
0
synchronized关键字

synchronized关键字可分为对象锁和类锁,修饰对象可分为代码块和方法 。 修饰代码块: 1.对象锁:synchronized (this) 或 synchronized (object) : 如果是同一个实例,则代码块的执行有先后;...

某只小强
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部