您的位置:首页 > 编程语言 > PHP开发

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

2014-11-12 22:21 330 查看
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,搞定收工
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: