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

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

时间:2014-11-12 23:02:20      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:linux   ftp服务器   mysql   外网内网   

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.

bubuko.com,布布扣

现在你在浏览器中,输入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

bubuko.com,布布扣

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

bubuko.com,布布扣

bubuko.com,布布扣

现在使用外网登录

bubuko.com,布布扣

ok,搞定收工

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

标签:linux   ftp服务器   mysql   外网内网   

原文地址:http://blog.csdn.net/zhx6044/article/details/41051061

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