疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

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下,下载绿色版,直接解压即可。

  使用起来很简单。