Linux平台下java程序员的基本功(三)

一、安装vsftpd和LeapFTP,并做相关配置
 
1、先扫盲
 
(1)何为vsftpd?
如果你想在你的Linux/Unix服务器上搭建一个安全、高性能、稳定性好的FTP服务器,那么vsftpd可能是你的首选应用。vsftpd意思为“very secure FTP daemon(非常安全的FTP进程)”,是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux、BSD、Solaris、HP-UX以及Irix等系统上面。vsftpd支持很多其他传统的FTP服务器不支持的良好特性。
 
(2)何为ftp?
FTP的全称是File Transfer Protocol(文件传输协议),顾名思义,就是专门用来传输文件的协议。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着 FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
 
 
2、验证vsftpd是否安装
 
在安装redhat的时候,如果我们勾选了vsftpd相关选项,那么系统中这个时候已经带了vsftp,就不需要再手动安装了,否则,我们需要手动安装。
 
如何验证?
 
打开putty(上节介绍过,不懂点我),连接上远端linux服务器
命令行下输入:rpm -qa| grep vsftpd
如果已经安装就会出现vstfp的版本号相关的信息,如果没有出现就是没有安装
如果未安装,那就得选择安装方式了。
 
(1)用安装盘安装
 
插入Red Hat Enterprise Linux 5安装光盘(第二张光盘) ,使用如下命令 :
 
1)先把光盘挂载到系统上:
mount /dev/cdrom /mnt 这样光盘的内容就被挂载到/mnt的设备上,现在可以通过/mnt访问光盘上的内容了
2)在光盘上安装vsftp,并且启动vsftp
rpm  -ivh vsftpd*
3)修改启动方式,改为系统启动时,自动启动
chkconfig vsftpd on 也可以查看启动方式 chkconfig --list |grep vsftpd 只要在第2--5为on就能随机启动
4)启动ftp
service vsftpd start
 
5)连接测试
 
windows+r打开windows的命令行,输入ftp 服务器ip,例如ftp192.168.40.128
 
如果出现
连接到……等字样,说明安装成功。
 
 
(2)用下载包安装(注:该方法摘自http://os.51cto.com/art/201008/221989.htm,由于方法1很容易安装,所以并未验证该方法,但理论可行)
 
比如我们下载的是 vsftpd-2.0.3.tar.gz ;
 
[root@localhost ~]# tar zxvf vsftpd-2.0.3.tar.gz
[root@localhost ~]# cd vsftpd-2.0.3
[root@localhost ~]# make ;make install     (这里应该需要GCC,后面我们会提到它的安装方式)
[root@localhost ~]# cp vsftpd.conf /etc
然后修改/etc/vsftpd.conf ,在配置文件的最后一行加入下面一行;
 
listen=yes
源码包安装的方法,如果您的系统是RPM包管理的系统,可以删除/etc/xinetd.d/vsftpd 这个文件;然后启动xinetd 服务器;
 
[root@localhost ~]# /etc/init.d/xinetd restart
停止 xinetd:                                              [  确定  ]
启动 xinetd:                                              [  确定  ]
vsFTPd运行有两种模式,在RPM包管理的系重审统,大多是由Fedora/Redhat 开发而来,对于这样的系统有xinted服务器一说;对于非RPM包管理的系统,一般没有xinted这一说。为了保证本文档的统一,我们都不要用xinetd模式,而用initd运行模式来启动和管理服务器,也就是独立运行模式。
 
相关阅读:什么是xinetd模式和initd模式?
 
像其它守护程序一样,vsftpd提供了standalone和inetd(inetd或xinetd)两种运行模式。简单解释一下, standalone一次性启动,运行期间一直驻留在内存中,优点是对接入信号反应快,缺点是损耗了一定的系统资源,因此经常应用于对实时反应要求较高的专业FTP服务器。inetd恰恰相反,由于只在外部连接发送请求时才调用FTP进程,因此不适合应用在同时连接数量较多的系统。此外,inetd模式不占用系统资源。除了反应速度和占用资源两方面的影响外,vsftpd还提供了一些额外的高级功能,如inetd模式支持per_IP(单一IP)限制,而 standalone模式则更有利于PAM验证功能的应用。
 
xinetd模式和standalone模式的区别
 
以xinetd模式运行的服务表示该服务进程并不以守护进程执行,以FTPD进程为例吧,以xinetd模式运行这个服务,情况是这样的,本身FTP服务是会监听21号端口的,但是以这种模式运行这个服务的话,21号端口则由xinetd进程来监听(此时FTPD服务并没有运行),如果你的网卡接收到有21号端口请求,则有xinetd进程会去调用FTPD程序,将在21号端口接收到的请求数据移交给FTPD进程去处理,处理完后FTPD进程退出,而xinetd进程继续监听21号端口,这有点类似windows的svhost进程;而以 standalone模式运行的服务则是服务进程,如ftpd以守护进程在内存中运行,接收到21号端口的请求后由FTPD进程fork出一个子进程进行处理,而原进程继续监听21号端口。
 
¥xinetd运行模式
 
大多数较新的系统采用的是xinetd超级服务守护进程。使用“vi /etc/xinetd.d/vsftpd” 看一下它的内容,如下:
 
disable = no 
socket_type = stream
wait = no
# 这表示设备是激活的,它正在使用标准的TCP Sockets。
如果“/etc/vsftpd.conf”中的有选项为“listen=YES”,注销它
最后,重启xinetd,命令如下:
$ /etc/rc.d/init.d/xinetd restart
需要注意的是,“/etc/xinetd.d”目录中仅能开启一个FTP服务。
 
¥standalone模式
 
standalone模式便于实现PAM验证功能。进入这种模式首先要关闭xinetd下的vsftpd,设置
 
“disable = yes”,或者注销掉“/etc/inetd.conf”中相应的行。然后修改“/etc/vsftpd.con
 
f”中的选项为“listen=YES”。
 
如果是standlone模式,那么它是作为单独的一个服务启动的,不需要系统协作,不作为系统服务,  
 
如果要是成为xinetd模式,那么它的服务就要受系统服务的限制,比如创建一个新的服务进程,但是也有缺点,如果xinetd服务本身出了问题,那么相关的服务也是会受到影响的。
 
--------------------------------------------------------------------------
可能会遇到的问题
¥vsftpd匿名用户不能上传文件和删除
¥root用户无法登陆
 
这就需要我们vsftp进行简单的配置
 
3、vsftpd配置

主配置文件有三个: /etc/vsftpd/vsftpd.conf /etc/vsftpd.ftpusers /etc/vsftpd.user_list

修改前建议使用“cp”命令备份这三个文件,修改完成后需要重启vsftpd服务才能使设置生效。

匿名用户访问配置 ¥启动后FTP服务器就可以登陆了   匿名用户在text模式下,要用用户名ftp,密码也是ftp,来进行登陆;如果是用FTP工具来匿名登陆的话,用户名和密码都为:anonymous。默认情况下匿名用户可以访问和下载,但不能进行上传、删除、新建目录、执行文件等操作!   本地用户可以登陆,并可以离开自家目录至有权访问的其他目录,并在权限允许的情况下进行上传和下载,写在文件/etc/vsftpd.ftpusers中的本地用户禁止登录。

¥允许匿名用户上传文件 需要修改/etc/vsftpd/vsftpd.conf文件,把以下两项前的“#”去掉。 anon_upload_enable=YES anon_mkdir_write_enable=YES 重启vsftpd服务。

¥仅允许匿名用户访问 指需要限制本地账号访问,修改/etc/vsftpd/vsftpd.conf文件,把以下两项前的“#”去掉。 local_enable=YES write_enable=YES 重启vsftpd服务。

¥设置欢迎信息 修改/etc/vsftpd/vsftpd.conf文件 ftpd_banner=***** *****即为设置的欢迎信息。 重启vsftpd服务。

¥设置最大传输率 修改/etc/vsftpd/vsftpd.conf文件 设置匿名用户的最大传输速率为20Kbps,应添加以下语句: anon_max_rate=20000 设置本地账号的最大传输速率为1Mbps,应添加以下语句: local_max_rate=1000000

¥设置服务器最大并发数和用户最大线程数 修改/etc/vsftpd/vsftpd.conf文件 设置服务器最大并发数为99,应添加以下语句: max_clients=99 设置用户同一时段的最大连接数,应添加以下语句: max_per_ip=5

¥禁止某些IP段的主机匿名访问服务器 修改vsftpd.conf文件,确认有如下语句: tcp_wrappers=YES 修改/etc/hosts.allow文件,增加1行命令: vsftpd:192.168.1.1:DENY 表示限制IP为192.168.1.1的主机访问FTP服务器。 重启vsftpd服务。

¥用ASCII方法传送数据 修改/etc/vsftpd/vsftpd.conf文件, ascii_upload_enable=YES ascii_download_enable=YES 重启vsftpd服务。

¥设置数据传输中断间隔时间 修改/etc/vsftpd/vsftpd.conf文件, idle_session_timeout=600 表明空闲会话时间为600秒。 data_connection_timeout=120 表明数据连接超时时间为120秒。 重启vsftpd服务。

本地用户访问配置

¥使用用户列表进行访问控制 修改/etc/vsftpd/vsftpd.conf文件,按以下语句设置: userlist_enable=NO 表明vsftpd.ftpuser文件中的用户将被禁止访问FTP服务器。 userlist_enable=YES userlist_deny=NO 表明仅允许vsftpd.user_list文件中的用户访问FTP服务器。 userlist_enable=YES userlist_deny=YES 表明vsftpd.ftpuser和vsftpd.user_list文件中的用户都不能访问FTP服务器。

¥限制用户目录的访问权限 修改/etc/vsftpd/vsftpd.conf文件 chroot_local_user=YES 表明用户登录后不能访问自己目录以外的其它目录或文件。

¥修改默认端口 FTP服务器默认的端口是21,如需要修改端口,请修改/etc/vsftpd/vsftpd.conf文件,以下语句: listen_port=4444 表明FTP服务器的端口号为4444,应该尽量大于4000

 
3、安装leapFtp
 
接着扫盲
(1)何为LeapFTP?
LeapFTP是一款小巧强大的FTP工具之一,友好的用户界面,稳定的传输速度,LeapFTP与FlashFXP 、CuteFTP堪称FTP 三剑客。FlashFXP传输速度比较快,但有时对于一些教育网FTP站点却无法连接;LeapFTP传输速度稳定,能够连接绝大多数FTP站点(包括一些教育网站点);CuteFTP虽然相对来说比较庞大,但其自带了许多免费的FTP站点,资源丰富。总之来说,三者各有所长。
 
google下,下载绿色版,直接解压即可。
 
使用起来很简单。
posted @ 2013-10-15 17:40  huidaoli  阅读(157)  评论(0编辑  收藏  举报