CentOS 7运维管理笔记(4)----安装ftp服务器

在CentOS 7下安装ftp服务器,可以使局域网内的主机拥有共享文件的一个站点。

在Linux系统下,vsftp是一款应用比较广泛的FTP软件,其特点是小巧轻快,安全易用。目前在开源操作系统中常用的FTP软件除了vsftp外,主要有proftpd、pureftpd和 wu-ftpd等。本篇随笔记录vsftp的安装与配置。

注意:本随笔所有操作均在VMware workstations虚拟机中安装的CentOS7 中进行,在进行操作前最好设置快照,这样某一步出错了还可以退回原来的状态:

1.安装vsftp:在root用户下,输入:

yum install -y vsftpd

查看安装情况:

2.匿名FTP配置:

允许匿名用户访问并上传文件,配置文件路径一般为 /etc/vsftpd.conf, 如果是使用rpm 包安装,配置文件位于 /etc/vsftpd/vsftpd.conf

(i) 安装vsftpd后,该软件会自动在/var目录下生成/var/ftp/pub目录,此/var/ftp 目录即为匿名用户默认访问的目录。因为在虚拟机中拍摄了快照,所以可以通过转到安装vsfptd之前的快照的方式进行验证 /var/ftp目录为vsftpd软件生成的。在虚拟机中转到安装vsftpd软件之前的快照状态。输入

ls /var/ftp

显示没有该目录。

然后再转到安装vsftpd后的快照,再次输入同样的命令,结果如下:

显示该目录下有pub文件夹,该文件夹当前为空; 这足以说明 /var/ftp/ 和 /var/ftp/pub文件夹为 vsftpd软件安装过程中自动生成的。

(ii)系统中当前会有 ftp用户组和ftp用户,博主已通过退回快照的方式验证,该用户和该用户组并非由vsftpd软件产生。所用命令为:

groups ftp

在两个快照状态下均显示出ftp用户属于ftp用户组。

将默认目录赋予用户ftp权限以便可以上传文件。

该命令的意思是将 ftp用户组中的所有用户设置为 /var/ftp/pub目录的拥有者,使用 -R 参数的意义是使用 recursive方式,即pub目录下的所有其他子目录也都属于ftp用户组中的所有用户。

(iii)使用

vim /etc/vsftpd/vsftpd.conf

命令,编辑 vsftpd的配置文件。

配置情况如下:

其中

grep -v ^# filename

命令即是查看 filename 文件中去除‘#‘注释掉的内容后的有效内容。

关于红色方框内的 chroot_local_user等选项的详细解释,参见:http://blog.csdn.net/bluishglc/article/details/42398811

(3)启动FTP服务器

(i)在启动 vsftpd之前,查看端口状态:

netstat -nptl

可以看到目前只有ipv4的53,22,631号端口和ipv6的22号端口正在Listen。

输入

systemctl start vsftpd

启动 vsftpd 服务.

再次输入命令

netstat -ntpl 

可以看到21号端口已经启动,这正是ftp的命令端口。(ftp的数据端口为20)。

(ii)使用虚拟机中开启的另一台Ubuntu连接CentOS7上的ftp服务:

显示无法连接,这是因为没有在服务器的防火墙上开启21号端口的缘故。

于是在CentOS7服务器上编辑 iptables :

vim /etc/sysconfig/iptables

添加红色方框中的两行,开启20和21号端口。(21号端口为ftp命令端口,20号端口为ftp数据端口)

之前安装iptables的时候,已经使用了如下的命令

systemctl disable firewalld  #禁止开机启动 firewalld
systemctl stop firewalld      #停止运行firewalld
systemctl enable iptables    #开机启动iptables
systemctl start iptables        #启动iptables

当前,firewalld没有启动,iptables正在运行,在修改了 /etc/sysconfig/iptables文件的情况下,应该重新启动iptables

systemctl restart iptables

这时候再输入

systemctl stop vsftpdnetstat -nptl

没有开启21号端口,那是因为已经关闭了vsftpd服务器:

启动vsftpd服务器并查看端口:

systemctl start vsftpdnetstat -nptl

vsftpd服务重新开启了,且21号端口正在倾听。以上现象说明端口倾听与否只与服务运行与否有关,跟防火墙iptables中有没有开放端口无关。

(iii)用Ubuntu连接CentOS 7上的 ftp服务:

连接成功!

4.用ftp上传和下载文件

(i)在连接的ftp命令行里输入 ls 命令:

显示当前目录下有pub文件夹,说明当前匿名用户默认登陆的目录是CentOS7服务器上的/var/ftp目录

(ii)上传文件:

cd pub

命令进入pub文件夹

然后用

put filename.txt

命令上传本地的filename.txt文件

(注意:因为登陆ftp之前,Ubuntu所在目录为 /home/username ,则此时 filename.txt 默认为Ubuntu上的 /home/username/filename.txt,也可以用绝对路径指定文件。可以用 lcd pathname 命令改变客户端的当前目录)

结果:

显示“533 Could not create file.”

在CentOS7 上使用如下命令更改 /var/ftp/pub文件夹的权限:

chmod 766 /var/ftp/pub

重启vsftpd服务,在Ubuntu客户端上连接,然后上传文件,结果还是显示“533 Could not create file.”

网上搜索原因,按照这个网页的指示:http://www.111cn.net/sys/linux/45542.htm 在CentOS7服务器上做如下设置:

在CentOS7服务器上重启 vsftpd服务,然后在Ubuntu上重新登录服务器,这是还是默认登录进 /var/ftp目录,一定要用 cd pub 命令转换进pub目录,再试试上传文件:

成功!

(iii)下载文件:

在CentOS7服务器上用

vim /var/ftp/pub/welcom.txt

命令新建一个文件。

在Ubuntu上尝试下载:

成功!

时间: 2024-11-03 21:58:58

CentOS 7运维管理笔记(4)----安装ftp服务器的相关文章

CentOS 7运维管理笔记(1)----设置默认启动模式为GUI模式或命令行模式

昨天在虚拟机中安装CentOS 7时选择了GNOME模式安装,开机默认进入GUI模式.网上搜找修改为默认命令行模式的方法,看到说修改 /etc/inittab文件,在最低下一行添加 id:3 但是 使用 cat /etc/inittab 命令查看inittab文件,可以看到如下内容: 第一个红色方框内的内容表明 inittab不再使用. 第二个红色方框显示了两种启动模式:multi-user.target 和 graphical.target 模式,即名命令行多用户模式和图形界面模式. 第三个红

CentOS 7运维管理笔记(11)----PHP安装与配置

PHP的安装同样需要经过环境检查.编译和安装3个步骤. 1.首先用百度搜索 “PHP:Downloads”, 点击第一个网页: 选择5.5.37版本,选择 .tar.gz 格式的文件: 来到镜像列表网站:http://php.net/get/php-5.6.23.tar.gz/from/a/mirror 找到中国的镜像,点击,会弹出浏览器下载的对话框.在对话框中,有下载的地址信息: 在CentOS7 命令行里输入: wget http://cn2.php.net/distributions/ph

CentOS 7运维管理笔记(10)----MySQL源码安装

MySQL可以支持多种平台,如Windows,UNIX,FreeBSD或其他Linux系统.本篇随笔记录在CentOS 7 上使用源码安装MySQL的过程. 1.下载源码 选择使用北理工的镜像文件: 在CentOS 7 中输入如下命令: [[email protected]:~/Downloads] # wget http://mirror.bit.edu.cn/mysql/Downloads/MySQL-5.6/mysql-5.6.31.tar.gz 2.解压mysql源码压缩文件,并更新软件

CentOS 7运维管理笔记(6)----Apache 基于 IP 的虚拟主机配置

Apache 配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置.本篇随笔记录自己基于IP的虚拟主机配置. 如果同一台服务器有多个IP,可以使用基于IP的虚拟主机配置,将不同的服务绑定在不同的IP上. (1)绑定IP: 在虚拟机中搭建的CentOS 7 服务器的IP被自己设置为了静态IP 192.168.1.210,现在使用ifconfig在同一个网络接口上绑定192.168.1.211~213这三个IP: ifconfig eth0:1 192.1

CentOS 7运维管理笔记(3)----Linux路由器配置

当正在配置的Linux主机需要作为路由器使用时,通过以下步骤配置后,子网上的计算机就可以访问外网了: 1. 编辑 /etc/sysctl.conf 文件,添加 net.ipv4_ip_forward = 1 语句,这样就允许服务器使用Linux自身的内核转发功能.配置DHCP服务并使用防火墙的地址伪装作NAT功能:(By the way : net.ipv6.conf.all.disable_ipv6=1 和 net.ipv6.conf.default.disable_ipv6=1 两条语句禁用

CentOS 7运维管理笔记(7)----Apache基于域名的虚拟主机配置

使用基于域名的虚拟主机配置是比较流行的方式,可以在同一个IP上配置多个域名并且都通过80端口访问. (1) 在网卡 eth0的第五个接口上配置 192.168.1.215 这个地址: (2) 配置/etc/hosts文件,192.168.1.215 对应的域名如下: 做ping测试,保证ip是导通的: (3) 建立虚拟主机存放网页的根目录,并创建首页文件的 index.html 文件 (4)修改 /usr/local/apache2/conf/httpd.conf 文件,使得服务器开始Liste

CentOS 7运维管理笔记(6)----Apache 基于端口的虚拟主机配置

如果一台服务器只有一个IP或需要通过不同的端口访问不同的虚拟主机,可以使用基于端口的虚拟主机配置. (1) 在虚拟机的CentOS7服务器上配置 eth0:4 为192.168.1.214: (2) 配置 /etc/hosts文件以方便测试: 进行ping测试,看ip地址有没有导通: (3) 建立虚拟主机存放网页的根目录,并建立首页文件 index.html (4) 修改 /usr/local/apache2/conf/httpd.conf 文件,在文件末尾添加以下内容: Listen 192.

CentOS 7运维管理笔记(11)----解决配置静态IP还是会出现动态IP地址的问题

网上搜集CentOS7 配置静态IP的方法,基本上都是说在 /etc/sysconfig/network-scripts/ifcfg-eth0文件中做如下配置 TYPE=Ethernet HWADDR=00:xx:xx:xx:xx:xx #only : none , bootp , or dhcp BOOTPROTO= none DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no #禁用IPV6 IPV6INIT=no IP

CentOS 7运维管理笔记(2)----修改命令提示符颜色

使用 su  命令切换到root用户: 使用 vi /etc/bashrc 命令插入如下代码: PS1="\e[1;32m\u\e[m\e[1;[email protected]\e[m\e[1;35m\h\e[m:\w\$" 保存后,在root用户下输入命令 : source /etc/bashrc 即可生效. 注意:也可以在 /etc/profile中输入 PS1="\e[1;32m\u\e[m\e[1;[email protected]\e[m\e[1;35m\h\e[