经常使用软件安装及使用目录 html
一个小插曲,安装一个FTP服务,便于和远程服务器的文件沟通。后续咱们会讲到如何使用Capistrano配合git完成服务器的代码部署以及发布流程。如今,代码先走FTP吧,挺稳。linux
FTP简介nginx
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。git
在FTP的使用当中,用户常常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至本身的计算机上;"上传"文件就是将文件从本身的计算机中拷贝至远程主机上。vim
用Internet语言来讲,用户可经过客户机程序向(从)远程主机上传(下载)文件。windows
FTP安装centos
首先检查一下你的远程服务器是否已经安装了FTP服务。api
1
|
#rpm -qa | grep vsftpd
|
若是啥都没显示,恭喜你,没有安装ftp服务,你能够安心的进行下面的动做了。若是有vsftpd的版本,跳过这一步!浏览器
那咱们首先安装vsftpd。安全
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特色。vsftpd 是一个 UNIX 类操做系统上运行的服务器的名字,它能够运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个彻底免费的、开放源代码的ftp服务器软件,支持不少其余的 FTP 服务器所不支持的特征。
运行下面的命令就能够完成vsftpd的安装
1
|
#yum -y install vsftpd
|
安装完成再次利用上面的rpm命令检查一下是否完成安装,若是完成安装,那就能够继续。
开启vsftpd服务
1
|
#service vsftpd start
|
在centos 中使用 systemctl start vsftpd
检查vsftpd服务
1
|
#service vsftpd status
|
注意,ftp服务使用的是21端口,有时候也使用20端口。咱们以前设置的iptables防火墙服务阻止了这一端口,因此也要添加下面的代码到/etc/sysconfig/iptables里去。
1
|
A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
|
重启防火墙服务
1
|
#systemctl restart iptables.service
|
好的,到这里,咱们的默认ftp服务就已经开始运做啦,让咱们来测试一下吧。
1
|
#ftp localhost
|
用户名称那一栏输入anonymous(匿名)
获得下面的信息就标识你的vsftp服务安装已完成。
在ftp>后面输入bye,先暂时和ftp告别,由于咱们还有一些事没干呢。
配置vsftpd服务
打开vsftpd服务的配置文件
1
|
#vim /etc/vsftpd/vsftpd.conf
|
改变这几个属性的值,具体是啥意思呢,当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,能够切换到其余目录;未在文件中列出的用户,不能切换到其余目录。为了之后好控制,咱们先打开这几个配置。
保存退出,咱们新建一个chroot_list文件
1
|
#touch /etc/vsftpd/chroot_list
|
重启vsftp服务
1
|
#service vsftpd restart
|
新增ftp用户
1
|
#/usr/sbin/adduser -d /usr/www/ftptest -g ftp -s /sbin/nologin vftpuser
|
新增用户vftpuser,用户的主目录是/usr/www/ftptest目录,用户组是ftp,不能登陆的帐户。
设置vftpuser密码
1
|
#passwd vftpuser
|
修改/usr/www/ftptest的目录权限
1
|
#chmod 755 /usr/www/ftptest/
|
重启vsftp服务
1
|
#/sbin/service vsftpd restart
|
设置权限
查看SElinux策略内ftp相关权限
1
|
#getsebool -a | grep ftp
|
打开ftp权限
1
|
#setsebool allow_ftpd_full_access 1
|
重启vsftp服务
1
|
#/sbin/service vsftpd restart
|
如今,能够在本机ftp远程服务器啦。
将vsftpd卸载(yum remove vsftpd)后,结果以下:
从新安装后又能使用vftpuser用户在电脑本地链接了。
问题1:SElinux未关闭致使没法访问,能够尝试将selinux策略先行关闭。
1
|
#vim /etc/selinux/config
|
将SELINUX一栏设置为disable便可
Microsoft Windows [版本 10.0.17134.590] (c) 2018 Microsoft Corporation。保留全部权利。 C:\Users\89723>cd C:\ali\kong #切换目录到笔记本客户端的工做目录,随便建立的一个目录 C:\ali\kong>ftp 192.168.132.5 链接到 192.168.132.5。 220 (vsFTPd 2.2.2) 200 Always in UTF8 mode. 用户(192.168.132.5:(none)): vftpuser 331 Please specify the password. 密码: 230 Login successful. ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 0 0 4 Feb 23 15:05 mcw.txt 226 Directory send OK. ftp: 收到 68 字节,用时 0.00秒 22.67千字节/秒。 ftp> ls #ls显示服务器ftp的用户主目录内容 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. mcw.txt 226 Directory send OK.用户vftpuser,用户的主目录是/usr/www/ftptest目录
ftp: 收到 12 字节,用时 0.00秒 12000.00千字节/秒。
ftp> get mcw.txt bmcw.txt #get下载,bmcw.txt是新文件名,缺省为不改原文件名
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for mcw.txt (4 bytes).
226 Transfer complete.
ftp: 收到 4 字节,用时 0.00秒 4.00千字节/秒。
ftp> put bxiaoma.txt xiaoma.txt #put将笔记本客户端文件上传到ftp服务端,xiaoma.txt为新文件名,缺省是不改文件名。
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 10 字节,用时 0.00秒 10.00千字节/秒。
ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 1.txt 2.txt 3.txt 4.txt mcw.txt xiaoma.txt 226 Directory send OK. ftp: 收到 52 字节,用时 0.02秒 2.89千字节/秒。 ftp> get 1.txt 2.txt #get 同时两个文件,只下载了第二个文件 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for 1.txt (0 bytes). 226 Transfer complete. ftp> mget 1.txt 3.txt 4.txt #mget三个文件,每一个下载前都提示输入y,有交互。 200 Switching to ASCII mode. mget 1.txt? y 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for 1.txt (0 bytes). 226 Transfer complete. mget 3.txt? y 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for 3.txt (0 bytes). 226 Transfer complete. mget 4.txt? y 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for 4.txt (0 bytes). 226 Transfer complete.
ftp> pwd #显示所在的服务器端的目录 257 "/usr/www/ftptest" ftp> cd mcw #切换目录 250 Directory successfully changed. ftp> pwd 257 "/usr/www/ftptest/mcw" ftp> cd /root/ #访问ftp服务端家目录之外的目录失败 550 Failed to change directory.
ftp> ls mcw01.txt
mcw02.txt
ftp> rename mcw01.txt mcw_modify.txt
350 Ready for RNTO.
250 Rename successful.
ftp> ls
mcw02.txt
mcw_modify.txt
ftp> delete mcw02.txt
250 Delete operation successful.
ftp> ls
mcw_modify.txt
安装后在etc目录会有vsftpd文件夹存在,须要配置vsftpd.conf配置文件 #进入vsftpd配置文件 vim /etc/vsftpd/vsftpd.conf # 禁止匿名用户anonymous登陆 anonymous_enable=NO # 容许本地用户登陆 local_enable=YES # 让登陆的用户有写权限(上传,删除) write_enable=YES # 默认umask local_umask=022 # 把传输记录的日志保存到/var/log/vsftpd.log xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=NO # 容许ASCII模式上传 ascii_upload_enable=YES # 容许ASCII模式下载 ascii_download_enable=YES # 使用20号端口传输数据 connect_from_port_20=YES # 欢迎标语 ftpd_banner=Welcome to use my test ftp server. # 接下来的三条配置很重要 # chroot_local_user设置了YES,那么全部的用户默认将被chroot, # 也就用户目录被限制在了本身的home下,没法向上改变目录。 # chroot_list_enable设置了YES,即让chroot用户列表有效。 # ★超重要:若是chroot_local_user设置了YES,那么chroot_list_file # 设置的文件里,是不被chroot的用户(能够向上改变目录) # ★超重要:若是chroot_local_user设置了NO,那么chroot_list_file # 设置的文件里,是被chroot的用户(没法向上改变目录) chroot_local_user=YES chroot_list_enable=YES # touch /etc/vsftpd/chroot_list 新建 chroot_list_file=/etc/vsftpd/chroot_list use_localtime=YES # 以standalone模式在ipv4上运行 listen=YES # PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经建立了这个pam文件, # 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers # 文件里的用户将禁止登陆ftp服务器,好比root这样敏感的用户,因此你要禁止别的用户 # 登陆的时候,也能够把该用户追加到/etc/vsftpd/ftpusers里。 pam_service_name=vsftpd
将ftp根目录用rsync+inotify同步到开启auto的站点目录下。
(思考:是否能够Windows客户端链接到ftp服务器主目录,在将主目录实时同步到nginx开启auto的站点目录下,就能够有人直接下载文件了呢。能够用这种方法将我电脑上要共享的文件放到个人ecs上,给出别人一个连接去下载。)
在ftp服务端建立文件mcw02.txt,在Windows的ftp客户端会刷新出来
以前的主目录是ftp用户组里一个用户的家目录,而不是ftp服务器端默认的主目录
3.1在主目录中右击选择新建文件夹报错权限问题
3.2右击属性可看到以下信息
3.2右击让后选择登录,输入用户密码
3.3进入ftp用户组对应的一个用户的家目录下。
3.4在ftp服务端建立一个文件mcw.txt,在Windows客户端能够刷新出来。在Windows客户端右击而后能够建立文件夹,在ftp服务的能够看到目录生成了。
3.5右击文件和文件夹,点击复制到笔记本另外一个文件夹,能够成功下载ftp服务端文件到笔记本。
3.6复制电脑本地文件或文件夹,粘贴到Windows客户端的目录下,就能将它们传输到ftp服务器对应用户的家目录。
3.7访问目录下的文件,会以浏览器的方式打开。而且须要登录。(访问失败,有时间再看这个问题,怎么解决)
安装好软件进行链接ftp服务器
成功链接到远程ftp,并列出用户vftpuser的家目录文件。
双击文件就完成复制。
ftp> dir 200 PORT command successful. Consider using PASV. 425 Failed to establish connection.
参考:
https://blog.csdn.net/qq_38526635/article/details/82147980
https://blog.csdn.net/renliang01/article/details/79327251