linux怎么搭建ftp服务器
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指令
0条评论