原创 在Linux下使用vsftpd搭建FTP服务器

2014-3-24 17:31 3863 17 17 分类: MCU/ 嵌入式 文集: Linux笔记

PC与PC,或者PC与手机之间,当需要传输数据时,使用FTP服务器非常方便。要是需要来回来去捣腾文件的话,热插拔个十来次USB口,实在是太麻烦了,这时候用FTP再合适不过。以Fedora系统为例,使用vsftpd搭建FTP服务器需要下面几个步骤:

1、使用yum命令安装vsftpd,它是FTP服务器端程序:yum install vsftpd

2、启动ftp服务:service vsftpd start

3、查看ftp服务器状态:service vsftpd status

4、修改配置文件:vim /etc/vsftpd/vsftpd.conf
将 anonymous_enable=YES 改为 anonymous_enable=NO,意为不允许匿名用户登陆;
将 anon_upload_enable=YES 改为 #anon_upload_enable=YES,意为不允许匿名用户上传文件;
将 anon_mkdir_write_enable=YES 改为 #anon_mkdir_write_enable=YES,意为不允许匿名用户创建目录;
检查 local_enable=YES 是否这样设置;
保存后退出。(要是设置为允许匿名用户登录,则使用anonymous这个用户名,且密码为任意字符,匿名用户的目录默认为是/var/ftp/pub。)

5、修改selinux中有关ftp的配置:
getsebool -a | grep ftp
setsebool -P ftp_home_dir on

6、检查一下要登录的用户名是否在/etc/vsftpd/user_list或/etc/vsftpd/ftpusers这两个文件中,是的话就去掉它。
FTP默认不能使用root用户登录。

7、重新启动ftp服务:service vsftpd restart

8、在防火墙中放行21号端口。

*******************************************************
附录一、在Linux下使用ftp命令访问FTP服务器

我是在局域网中搭建的FTP服务器,192.168.x.xxx是局域网地址,只能由局域网里面的设备访问,公网IP才是内网和外网的设备都可以访问。处在局域网里面的FTP服务器,可以通过设置路由器的转发规则来给外网提供FTP服务。but如果是3G路由器的话,由于它并不是真正意义上的公网IP,可能会出现转发规则设置不成功的情况。总而言之,局域网里面的FTP服务器和设备之间的访问,是最容易实现的。

Fedora系统默认没有安装ftp程序,要访问FTP服务器的话,首先需要通过yum来安装它:yum install ftp

1、登录FTP服务器:ftp 192.168.1.111

2、根据提示输入用户名和密码:
Name (192.168.1.111:root): maria
331 Please specify the password.
Password:
本地用户直接将自己的Name和Password输进去,能够登录主机shell的用户就可以登录FTP服务器。也可以另外创建无法登录系统shell的nologin类型用户,专门供FTP使用。

3、输入help就能看到ftp可用的命令,比如ls、cd、delete、get等等。对服务器进行操作的ftp命令并没有tab补全,*也不具备通配符功能(本地目录可以使用tab)。

*******************************************************
附录二、在Linux下搭建ssh服务器

FTP,File Transfer Protocol,文件传输协议;而SSH,Secure Shell,安全外壳协议。前者主要用来传输文件,后者可用来模拟终端,用户可以像使用本地主机一样使用远程的主机。ssh能够实现文件读写操作、音乐播放(当然听到音乐的是坐在远程主机前面的人,因为SSH终端控制的是远程主机声卡)、更改设置,还可以获得root权限来安装和删除软件,总之功能非常强大。

Fedora默认安装了SSHD服务,开启它就行:service sshd start

在防火墙里面把SSHD默认的22号端口放行(貌似sshd服务是打开的时候就默认放行了22号,即使不设置防火墙也行,我测试的是内网,不确定外网是个神马情况。)

在Linux下使用openssh登录ssh服务器时,因为Fedora默认安装了openssh,所以执行ssh命令就可以:
ssh maria@192.168.1.111

*******************************************************
附录三、关于安卓手机的FTP和SSH

A:使用安卓手机的FTP服务器:安卓手机没有提供默认的终端窗口,模拟终端能够获得的权限不多,且系统也不提供FTP命令,所以需要下载FTP客户端和服务器软件。有一款FTP服务器软件,名字为“FTP服务器”。在它的设置里面,填入用户名和密码(可随意设),以及端口号(默认为2121),保存后启动。

要使用浏览器访问它,就在地址栏中输入:ftp://192.168.1.100:2121
要使用终端ftp命令来访问它,就在终端输入: ftp 192.168.1.100 2121

B:使用安卓手机的FTP客户端:AndFTP是安卓系统下的一款FTP客户端软件。

C:使用安卓手机的SSH客户端ConnectBot。
http://bbs.ednchina.com/BLOG_ARTICLE_3014066.HTM
http://www.eefocus.com/marianna/blog/13-08/296471_9ffa6.html

D:使用安卓手机的SSH服务器(暂时略过)。

*******************************************************
附录四、ftp和sftp的区别

sftp并不是一个单独的程序,实际上应该算是openssh的一部分,当主机启动sshd服务时,sftp服务也同时被打开;关掉sshd服务时,sftp服务也不再能使用。要使用它,直接在终端执行sftp,它的语法几乎和ftp一样,而且具备ssh协议的命令补全功能,通配符也有效,selinux的设置基本上不用更改。

(下午本来是有一块电路板要画,然后觉得画板子好无聊,不如一边听歌一边画,然后发现歌都在手机里面,懒得用usb线倒,不如直接用ftp服务器吧……于是,四个小时光阴就在捣腾ftp中飕飕的过去了,伤不起……)


 

文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /2 下一条