linux怎么搭建ftp服务器,第1张

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。并且是一个完全免费开放源码的ftp软件

方法/步骤

1、用在线安装

yum install vsftpd pam db4-y

使用命令将vsftp配置为系统服务

chkconfig --level 35 vsftpd on

2、配置vsftpd服务的宿主

useradd vsftpdadmin -s /sbin/nologin -M

这个vsftpdadmin只是用来替换root的,并不需要登录

3、建立ftp虚拟宿主帐户

useradd vsftpuser -s /sbin/nologin -M

这ftpuser只个虚拟帐户的宿主,本身是不用登录的

4、配置vsftpdconf 配置之前要先备份一下原来的

vi /etc/vsftpd/vsftpdconf

anonymous_enable=YES --> anonymous_enable=NO //不允许匿名用户访问,默认是允许。

chroot_list_enable=YES --> chroot_list_enable=YES //不允许FTP用户离开自己主目录

增加

#设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同。

user_config_dir=/etc/vsftpd/vconf/userlocal

#这一步非常重要,要记住这一步。一会要根据这个配置新建文件夹

#修改端口号

ftp_data_port=4040

reverse_lookup_enable=NO

pasv_enable=yes

pasv_min_port=48790

pasv_max_port=48800

listen_port=48796 #端口可以根据你自己实际情况配置,也可以用默认端口。但是为了安全考虑根据自己实际情况配置

5、建立虚拟用户文件

mkdir /etc/vsftpd/vconf

touch /etc/vsftpd/vonf/vir_user

6、建立虚拟用户

vi /etc/vsftpd/vonf/vir_user

virtualuser //用户名

12345678 //密码

7、生成数据库

db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_userdb

8、设置数据库文件访问权限

chmod 600 /etc/vsftpd/vconf/vir_user

chmod 600 /etc/vsftpd/vconf/vir_userdb

9、修改/etc/pamd/vsftpd

auth sufficient pam_userdbso db=/etc/vsftpd/vconf/vir_user

account sufficient pam_userdbso db=/etc/vsftpd/vconf/vir_user

(要想同时使用系统用户和虚拟用户,就需要把required改成sufficient)

10

根据第四步配置的user_config_dir=/etc/vsftpd/vconf/userlocal

新建userlocal文件夹

mkdir /etc/vsftpd/vconf/userlocal

11、根据第六步建立的用户名建立一个文件

例如第六步建立的帐号是virtualuser,则新建一个virtualuser文件

touch /etc/vsftpd/conf/userlocal/virtualuser

12、编辑该用户访问的文件路径

vi /etc/vsftpd/conf/userlocal/virtualuser

输入如下

local_root= //需要指定的网站根目录,例如wwwbaiducom所在文件夹为/www/baidu

anonymous_enable=NO #禁止匿名用户访问

write_enable=YES #开启写权限

local_umask=022 #上传后文件的权限掩码

anon_upload_enable=NO #关闭匿名下载

anon_mkdir_write_enable=NO #关闭匿名创建文件夹

idle_session_timeout=60 #会话自动关闭时间 60是因分钟

data_connection_timeout=120 #数据延迟时间

max_clients=10 #最大连接数

max_per_ip=5 #同一个ip同时允许5个IP联机

local_max_rate=1048576 #实体用户传输速度限制,单位B/s。0代表不限制

13、配置就此完成,重启vsftpd服务:service vsftpd restart。

查看系统端口状态:netstas -tulnp。如果能看到48796端口正在被vsftpd调用说明启动成功。

如有不清楚的可以再继续看看百度经验。

本回答由电脑网络分类达人 吕明推荐

评论

2 0

龙之晨_lemon | seo专员向TA咨询

擅长: 互联网

其他回答

1

检查安装vsftpd软件

使用如下命令#rpm -qa |grep vsftpd可以检测出是否安装了vsftpd软件,

如果没有安装,使用YUM命令进行安装。

2、启动服务

使用vsftpd软件,主要包括如下几个命令:

启动ftp命令#service vsftpd start

停止ftp命令#service vsftpd stop

重启ftp命令#service vsftpd restart

3、vsftpd的配置

ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是:

ftpusers 该文件用来指定那些用户不能访问ftp服务器。

user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp

vsftpdconf vsftpd的主配置文件

4、以匿名用户为例,我们去掉配置文件vsftpdconf 里面以下

anon_upload_enable=YES

anon_mkdir_write_enable=YES

两项前面的#号,就可以完成匿名用户的配置,此时匿名用户既可以登录上传、下载文件。记得修改配置文件后需要重启服务。

5、非匿名账户的创建与使用

vsftpd服务与系统用户是相互关联的,例如我们创建一个名为test 的系统用户,那么此用户在默认配置的情况下就可以实现登录

登录后在页面创建名为“aa”的文件夹,同样我们在服务器test用户 的home目录里也可以看到相同的文件。

第一步:打开终端(快捷键是Ctrl+Alt+t),如果当前用户不是root用户,请输入命令“su”,然后输入root账户密码即可;

第二步:输入命令“apt-get update”,这一步是为了更新下载的数据源,如果不更新可能造成有几个后面的软件包无法下载;

第三步:输入命令“apt-get install vsftpd”完成安装vsftpd;

第四步:判断vsftp是否安装成功,输入命令“service vsftpd restart”重启vsftpd服务,如果他在运行状态说明安装成功;

第五步:新建“/home/uftp”目录作为用户主目录,输入命令“mkdir /home/uftp”回车 ,然后输入命令“ls /home”查看home目录下有uftp这个目录吗,如果有就是创建成功;

第六步:新建用户uftp并且设置密码,输入命令“useradd -d /home/uftp -s /bin/bash uftp”

回车,然后再输入命令“passwd uftp”回车,然后输入两次密码就设置ok了

第七步:使用vi修改配置文件/etc/vsftpdconf,输入命令“vi /etc/vsftpdconf”回车,

向文件中添加“userlist_deny=NO””userlist_enable=YES”, “userlist_file=/etc/allowed_users”,

“seccomp_sandbox=NO”,最后把文件中的“local_enable=YES”保存(如果提示无法保存,直接退出来,把读写和执行权限给这个文件,具体操作为:输入命令: “chmod 777 /etc/vsftpdconf”回车就可以了);

第八步:新建文件/etc/allowed_users,输入命令“vi /etc/allowed_users”,打开后再这个文件内写入“uftp”保存即可;《Linux就该这么学》

第九步:查看/etc/ftpusers文件(不能访问ftp服务用户清单)的内容,输入命令“vi /etc/ftpusers”回车,如果里面有uftp,就把他删除;

第十步:安装winscp软件,进行远程登录访问;下载直接在百度下载就行

一、启动vsftpd服务

1、 启动VSFTP服务器

A:cenos下运行:yum install vsftpd

B 登录Linux主机后,运行命令:”service vsftpd start”

C 要让FTP每次开机自动启动,运行命令: “chkconfig --level 35 vsftpd on”

二、设置FTP权限

A 编辑VSFTP配置文件,运行命令:”vi /etc/vsftpd/vsftpdconf “

B 将配置文件中”anonymous_enable=YES “改为 “anonymous_enable=NO”

C 保存修改,按ESC键,运行命令:“:wq”这样关闭了匿名登录功能。

三、添加用户:

A 登录Linux主机后,运行命令:”useradd ftpadmin -s /sbin/nologin “。该账户路径默认指向/home/ftpadmin目录;如果需要将用户指向其他目录,请运行命令:useradd ftpadmin -s /sbin/nologin _d /www(其他目录)

B 设置ftpadmin用户密码,运行命令:”passwd ftpadmin” ; 输入两次密码,匹配成功后,就设置好了ftpadmin用户的密码了。

C测试连接,您可以在“我的电脑”地址栏中输入 ftp://IP 来连接FTP服务器,根据提示输入账户密码。

一楼的说法是不对的,FTP,只要服务端开了21或23端口就就可以用的,在运行里输入CMD

然后FTP IP地址 就可以用的。你在检查一下FTP的配置文件吧,一般我们用的FTP是VSFTP,但PUREFTP也能用的,有几个配置文件要改成如下,

1、通过yast2工具来进行设置,选择Network Services->Network Services(inetd)。

2、在出现的界面上,选中“FTP”项”(ftp服务有两项,安装时,请选中Server为/usr/sbin/vsftpd的项),点击“Toggle Status(On or Off)”按钮,使其“Status”状态变为“On”。

3、点击Finish,即可。

4、配置FTP选项

vsftp默认的情况下只能通过anonymous的方式登陆,需要修改配置文件,让其可以通过Unix本地用户的方式进行登陆,修改/etc/vsftpdconf,将如下行前面的“#”去掉。

Write_enable=YES

local_enable=YES

local_umask=022

ascii_upload_enable=YES

ascii_download_enable=YES

5、设置FTP用户

FTP服务启动后,文件/etc/ftpusers中配置的用户是不允许使用FTP服务的,如果需要使用,请将该用户名前加“#”取消限制。

linux上的ftp服务器程序还是有很多的,可以参考如下操作步骤:

1、在创建FTP服务器之有先命令: ps -ef |grep vsftpd

2、查一下系统有没有安装vsftpd这个服务器,如果出现如下图所示的界面说明没有安装。

3、然后再执行:yum install vsftpd -y

4、进行在线安装vsftpd这个服务。

5、安装成功以后需要把匿名登陆的这个功能关闭了。

6、使用命令: vim /etc/vsftpd/vsftpdconf

7、然后在里成找到:‍

8、anonymous_enable=NO

9、然后再查看一下vsftpd这个服务有没有启动。

10、使用命令: chkconfig --list

11、如果你如下图所示一样没有启动。

12、没有启动使用启动:chkconfig --level 35 vsftpd on

13、再接下来就是创建用户名。

14、创建用户名:useradd jingyan

15、再然后就是创建密码。

16、命令:passwd jingyan

17、再输入两次密码就可以了。

18、最后重启一下服务:service vsftpd start

19、如果出现启动失败则可以使用:/etc/rcd/initd/vsftpd restart

20、成功链接FTP服务器上。

如何在linux下开启FTP服务

1 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:

#which vsftpd

如果看到有vsftpd的目录说明服务器已经安装了ftp软件

2 查看ftp 服务器状态

#service vsftpd status

3 启动ftp服务器

#service vsftpd start

4 重启ftp服务器

#service vsftpd restart

5 查看服务有没有启动

#netstat -an | grep 21

tcp 0 0 0000:21 0000: LISTEN

如果看到以上信息,证明ftp服务已经开启。

6如果需要开启root用户的ftp权限要修改以下两个文件

#vi /etc/vsftpdftpusers中注释掉root

#vi /etc/vsftpduser_list中也注释掉root

然后重新启动ftp服务。

7 vsftpd 500 OOPS: cannot change directory

登陆报错:

C:\>ftp 1921680101

Connected to 1921680101

220 (vsFTPd 205)

User (1921680101:(none)): frank

331 Please specify the password

Password:

500 OOPS: cannot change directory:/home/frank

Login failed

ftp> ls

500 OOPS: child died

Connection closed by remote host

解决方法:

setsebool ftpd_disable_trans 1

service vsftpd restart

就OK了!

这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。

8 永久开启,即os重启后自动开启ftp服务

方法一:

cd /etc/xinetdd ,编辑ftp服务的配置文件gssftp的设置:

vi /etc/xinetdd/gssftp ,将 修改两项内容:

(a) server_args = -l –a 去掉-a 改为server_args = -l

(b) disable=yes改为disable=no

(c) 保存退出。

方法二:

(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2,保存后退出

  (b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右

  (c) #setup

   此时能看到vsftpd项,此时选中此services项,保存后退出

快速构建FTP服务器,FTP服务器实现的基本功能是,下面就分几个步骤来搭建一个可以实现功能的简易FTP服务器。

1.安装FTP服务器

如果在安装系统时没有选择安装FTP服务器,可以通过Red Hat中的“添加/删除应用程序”进行安装。具体方法是,选择“主选单”→“”→“添加/删除应用程序”,在弹出的界面中选中FTP服务器,单击“更新”即可。

如果无法确认是否安装了该软件,可以使用以下命令查看:

2.启动FTP服务器

套用Red Hat 90的预设范例直接启动VSFTP。

为vsftpd启动vsftpd: [确定]

3.在/var/ftp/pub目录下创建一个名为testtxt的文件

文件内容为“This is a test file”。

4.测试

使用FTP客户端登录到本地服务器,然后以匿名身份(anonymous)登录:

# ftp 127001Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): anonymous331 Please specify the passPassword:230 Login successful Have funRemote system type is UNIXUsing binary mode to transfer files

这样就成功地登录到FTP服务器。可以显示服务器目录列表如下:

ftp ls227 Entering Passive Mode (127,0,0,1,63,15)drwxr-xr-x 2 0 0 4096 Dec 04 01:35 pub226 y send OK

切换到pub目录下,并显示目录内容,可以找到刚才创建的文件testtxt:

ftp cd pub250 Directory successfully changedftp ls227 Entering Passive Mode (127,0,0,1,232,34)150 Here comes the directory listing-rw-r--r-- 1 0 0 21 Dec 04 01:35 testtxt226 Directory send OK

下载testtxt文件:

ftp mget testtxtmget testtxt y227 Entering Passive Mode (127,0,0,1,186,210)150 Opening BINARY mode data connection for testtxt (21 bytes)226 File send OK21 bytes received in 00108 secs (19 Kbytes/sec)

查看本机目录内容,可以看到testtxt已成功下载到本机。

ftp !lsa EIO_Binders initrd mnt proc tftpboot ylgtxtbin etc lib mymnt root tmpboot home lost+found myshare sbin usrdev id_dsaspub misc opt testtxt var

尝试上传名为ylgtxt的文件,可以看到请求被拒绝了。

ftp put ylgtxtlocal: ylgtxt remote: ylgtxt227 Entering Passive Mode (127,0,0,1,243,10)550 Permission dend

退出登录:

由测试可以看出,已经可以下载文件,但不能上传文件(也不能在服务器上创建目录和文件)。实际上这是一个专门提供下载服务的匿名FTP服务器。

从上面的步骤可以看出,并不需要做什么配置就可以完成一个简易FTP服务器的架设。这是因为Red Hat已经配置好一个缺省的FTP服务器。不过在实际应用中,大部分情况下这个简易的服务器并不能满足需求。

进一步配置FTP

下面将创建一个能够满足常用需求的FTP服务器。实际应用中,FTP服务器一般要同时提供和功能。此外,出于安全考虑,还需要有用户身份验证、用户权限设置及空间管理等。下面就来搭建这样一个FTP服务器。

1.创建欢迎语

如果希望使用者在进入目录时,能够看到欢迎语或对本目录的介绍,可以通过以下方法来实现。

确定/etc/vsftpd/vsftpdconf文件中dirmessage_enable=YES,默认情况下,Red Hat 90有此设置。接着,在目录中新增名为message的文件。本例在/home/ylg目录下创建一个message文件,其内容为“欢迎来到我的 FTP站点”。

2.更换FTP服务器的默认端口

将预设的21端口改为2121,这样做是基于安全的考虑。更改方法为,使用vi打开/etc/vsftpd/vsftpdconf:#vi /etc/vsftpd/vsftpdconf

在文件最后增加如下一行内容:

3.取消anonymous登录的功能

在vsftpdconf文件中找到如下一行,并将其值改为“NO”:anonymous_enable=YES

4.设定使用者不得更改目录

这样做的目的也是基于安全性的考虑。一般情况下,使用者的预设目录为/home/username。若是不希望使用者在登录后能够切换至上一层目录/home,则可通过以下设置来实现。在/etc/vsftpd/vsftpdconf文件中找到以下三行内容:

#chroot_list_enable=YES# (default follows)#chroot_list_file=/etc/vsftpdchroot_list

将其改为:

chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list

新增一个文件/etc/vsftpd/chroot_list,文件内容为两个用户名:

5.针对不同的使用者限制不同的速度

假设用户ylg所能使用的最高速度为500Kb/s,用户user1所能使用的最高速度为250Kb/s,可以通过以下方法设置。在/etc/vsftpd/vsftpdconf文件尾部新增以下一行:

增加一个名为/etc/vsftpd/userconf的目录:

在/etc/vsftpd/userconf下新增一个名为ylg的文件,其内容如下所示:

local_max_rate=500000

在/etc/vsftpd/userconf目录下新增一个名为user1的文件,其内容如下所示:

local_max_rate=250000

VSFTP对于速度的限制范围大概在80%到120%之间,也就是限制最高速度为100Kb/s,但实际的速度可能在80Kb/s到120Kb/s之间。如果频宽不足,数值会低于此限制。6.对于每一个联机用户,都以独立的进程来运行。一般情况下,在启动VSFTP时,只会看到一个名为vsftpd的进程在运行。但若是读者希望每一个联机用户都能以独立的进程来呈现,则可通过在/etc/vsftpd/vsftpdconf文件中增加以下一行来实现:

setproctitle_enable=YES

6.保存/etc/vsftpd/vsftpdconf文件,然后重新启动vsftpd:

7.测试刚创建的FTP服务器

以缺省方式登录会被拒绝,因为此时的默认端口号已经更改为2121,所以登录时需指定端口。

此时也不能再使用匿名方式登录:

# ftp 127001 2121Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): anonymous331 Please specify the passPassword:530 Login incorrectLogin failed

如果以用户ylg则可以成功登录(指定端口2121),并显示欢迎信息:

# ftp 127001 2121Connected to 127001 (127001)220 (vsFTPd 113)Name (127001:root): ylg331 Please specify the passwordPassword:230-欢迎来到我的FTP站点230 Login successful Have funRemote system type is Using binary mode to transfer files

因为在设置中设定了不能切换目录,所以下列命令无法正确执行:

550 Failed to change y

再来测试一下上传和。首先下载服务器目录中的testtxt文件:

ftp get testtxtlocal: testtxt remote: testtxt227 Entering Passive Mode (127,0,0,1,243,215)150 Opening BINARY mode data connection for testtxt (21 bytes)226 File send OK21 bytes received in 000308 secs (67 Kbytes/sec)

可以通过!ls命令看到本机目录中已成功下载该文件。然后上传本机目录中的ylgtxt文件到服务器:

ftp put ylgtxtlocal: ylgtxt remote: ylgtxt227 Entering Passive Mode (127,0,0,1,133,248)150 Ok to send data226 File receive OK19 bytes sent in 00401 secs (046 Kbytes/sec)

用ls命令查看服务器目录,会发现该文件已成功上传。

为了测试不同连机用户使用的是不同进程,可以使用ps -ef指令

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux怎么搭建ftp服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情