场景:ftp服务器对于在Linux服务器上进行文件操作太方便,在安装软件时候,大的软件也可以先上传再进行安装!

1 搭建FTP服务器

1.1 检查vsftpd

查看是否已经安装vsftpd

rpm -qa | grep vsftpd

卸载vsftpd:

rpm -e vsftpd

即可卸载ftp。

查看vsftpd运行状态:

ps -ef | grep vsftpd

1.2 安装VSFTPD

在CentOS下,搭建FTP服务器是使用vsftpd软件。

键入以下命令以安装VSFTPD

yum install vsftpd

依旧会在检查依赖项目后要求用户确认,按y并回车即可。当提示“完成!”后即代表VSFTPD安装完毕。

然后我们需要将vsftpd启动并设置成开机自启动:

//启动vsftpd
systemctl start vsftpd.service //设置vsftpd开机自启动
systemctl enable vsftpd.service

查看vsftpd是否开机启动可以使用如下命令:

systemctl is-enabled vsftpd.service

1.3 配置vsftpd.conf

先备份配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_vba.conf

完成上面的步骤后,其实已经启动了ftp服务器,但我们并用不了,因为我们还没有对vsftpd进行一些必要的设置。

vsftpd的配置文件是/etc/vsftpd/vsftpd.conf,直接用vim打开编辑即可。

使用vim编辑器打开vsftpd配置文件:

vim /etc/vsftpd/vsftpd.conf

vsftpd的配置文件非常大,所以我就不截图展示和完整展示了,我们直接挑关键的地方进行一些简单的修改。

注:在vim中,非编辑状态下输入“/”+需要查找的内容 后按回车键可以快键查找指定字符串。

这个地方的修改,可以参考第3小节的控制

anonymous_enable=YES

是否允许匿名用户登陆FTP。

为了安全起见关闭这个功能(将等号后的YES改成NO即可)。

dirmessage_enable=YES

切换目录时,显示目录下.message文件中的内容

默认是开启的

local_umask=022

FTP上本地的文件权限,默认是077,不过vsftpd安装后的配置文件里默认是022.

没有什么特殊情况不用修改。

xferlog_enable=YES

启用上传和下载的日志功能,默认开启。

建议开启此功能,它可以对用户的操作进行日志记录,当出现问题的时候可以通过日志排查问题。

ftpd_banner=XXXX

FTP的欢迎信息。

在FTP登陆成功之后,服务器会往客户端发送一个欢迎消息以表示登陆成功。这是一个个性化的功能,您可以自由的设置其值,也可以在配置最前加上#注释本行。

data_connection_timeout=120

数据连接超时时间。

如果在使用vsftpd上传下载碎小文件的时候容易发生超时中断的问题,可以将本行前的#注释符去掉,然后将120改成5或者更小,然后重启vsftpd即可。

修改配置文件完成,保存后重启VSFTPD。

重启vsftpd服务:

//重启vsftpd服务
systemctl restart vsftpd.service

2 Linux添加FTP用户并设置权限

2.1 创建FTp用户

添加一个名为ftpuser的用户,用户文件夹位置为:/var/www/html,且禁止此用户登陆服务器:

useradd -d /var/www/html -s /sbin/nologin ftpuser

ps:

  • 在指定用户文件夹/var/www/html时候,最好先创建目录,否则会出现2.2中的问题。
  • /sbin/nologin只是不允许系统login,可以使用其他ftp等服务

然后设置一下密码,为ftpuser设置密码:

//设置密码
passwd ftpuser

这时候系统会要求您输入新的密码并且重复一遍。顺便一提在SSH中,密码一般不会回显,所以初学者可能会觉得输进去没反应,其实是已经输进去了。

2.2 防火墙开放端口

经过创建用户之后,有小部分的同学可能已经可以登陆了。但是绝大部分的同学会连接ftp失败,提示连接失败 (连接已超时)

失败的原因很简单,就是iptables防火墙将我们的连接请求阻断了。如果你个人怕麻烦,而且也觉得防火墙没什么用,那你可以将iptables防火墙关闭,关闭防火墙之后就可以正常使用了。

不过因为这么一点小事儿就关闭防火墙未免显得有点水,而且防火墙摆在那里总归是有用的。那么有什么办法既保留防火墙,又能让iptables不把我们的ftp连接请求阻断呢?

当然有,我们需要调整一下iptables的配置文件,使ftp协议的端口可以通过防火墙。

配置防火墙请参考2.3中的主动模式。

2.3 FTP两种模式

FTP有两种模式,主动模式和被动模式。由于两种模式使用的端口不一样,所以调整的内容也不一样。

虽然知道FTP存在两种模式:PORT(主动)模式、PASV(被动)模式,但是却不知道vsftpd此时竟然“不支持”被动模式!不会的,一定是配置出了问题~经过一番搜索,发现了其中的端倪:

FTP两种模式的区别:

(1)PORT(主动)模式

所谓主动模式,指的是FTP服务器“主动”去连接客户端的数据端口来传输数据,其过程具体来说就是:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(即tcp 21端口),紧接着客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。然后服务器会从它自己的数据端口(20)“主动”连接到客户端指定的数据端口(N+1),这样客户端就可以和ftp服务器建立数据传输通道了。

(2)PASV(被动)模式

所谓被动模式,指的是FTP服务器“被动”等待客户端来连接自己的数据端口,其过程具体是:当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。(注意此模式下的FTP服务器不需要开启tcp 20端口了)

两种模式的比较:

(1)PORT(主动)模式模式只要开启服务器的21和20端口,而PASV(被动)模式需要开启服务器大于1024所有tcp端口和21端口。

(2)从网络安全的角度来看的话似乎ftp PORT模式更安全,而ftp PASV更不安全,那么为什么RFC要在ftp PORT基础再制定一个ftp PASV模式呢?其实RFC制定ftp PASV模式的主要目的是为了数据传输安全角度出发的,因为ftp port使用固定20端口进行传输数据,那么作为黑客很容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp PORT模式传输数据很容易被黑客窃取,因此使用PASV方式来架设ftp server是最安全绝佳方案。

因此:如果只是简单的为了文件共享,完全可以禁用PASV模式,解除开放大量端口的威胁,同时也为防火墙的设置带来便利。

不幸的是,FTP工具或者浏览器默认使用的都是PASV模式连接FTP服务器,因此,必须要使vsftpd在开启了防火墙的情况下,也能够支持PASV模式进行数据访问。

vsftpd两种模式设置:

FTP主动模式

使用Vim编辑器打开iptables配置文件:

vim /etc/sysconfig/iptables

然后在配置文件中加入这么一句:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

这句话告诉iptables开放21端口,允许接受从21端口传入的连接。

然后重启iptables服务:

systemctl restart iptables.service

现在就可以使用ftp工具登陆我们的ftp服务器了!

FTP被动模式

如果ftp处于被动模式下,除了需要修改iptables的配置文件以外,还需要修改vsftpd的配置文件。

1、首先是修改vsftpd的配置文件:

使用Vim编辑器打开vsftpd配置文件:

vim /etc/vsftpd/vsftpd.conf

现在配置文件中找到“connect_from_port_20=YES”并将它修改为“connect_from_port_20=NO”,关闭掉vsftpd的主动模式。

2、然后在配置文件的末尾追加:

#使vsftpd运行在被动模式
pasv_enable=YES #被动模式最小端口号30000
pasv_min_port=30000 #被动模式最大端口号31000
pasv_max_port=31000

保存配置文件并退出。

3、重启vsftpd服务:

systemctl restart vsftpd.service

4、再使用Vim编辑器打开iptables配置文件:

vim /etc/sysconfig/iptables

添加这两句话:(“#”开头的是注释,可以不添加)

#开放ftp协议21端口,允许接受来自21端口的新建TCP连接

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

#开放30000-31000号端口,允许接受来自此端口号段的新建TCP连接

-A INPUT -p tcp --dport 30000:31000 -j ACCEPT

保存并退出,然后重启iptables服务:

systemctl restart iptables.service

现在就可以使用ftp工具登陆我们的ftp服务器了!

2.4 调整文件夹权限

可能现在又有个问题冒出来了,使用ftp工具登陆服务器之后,不管创建什么,都会失败。

这个问题主要是在服务器的文件夹权限设置上。以笔者为例,笔者将ftp服务器登陆后的默认文件夹设置为/var/www/html,登陆ftp之后上传什么文件都显示553 Could not create file.

进入/var/www文件夹

查看一下目录权限

ls –l

我们可以看到html文件夹的权限是drwxr-xr-x。

我们将这个权限字符串分为四个部分,以顿号隔开:d、rwx、r-x、r-x。

这四部分分别说明了:

1.此文件其实是个文件夹;

2.此文件的文件主拥有读、写、执行权限;

3.此文件的组用户拥有读、执行权限;

4.此文件的其他用户拥有读、执行权限。

果然是权限不够!

调整一下权限,让所有人都拥有读、写、执行的权力

chmod 777 html

再看一下现在的文件夹权限

ls –l

可以了,返回ftp工具,上传文件,一切正常!

#####经过上面的配置,已经可以使用ftp服务器,下面是对ftp进行更加详细的控制,使用起来更加得心应手

2.5添加用户及指定用户默认目录

使用useradd创建新用户,并指定用户的家目录时候出现如下问题:

在创建ftp用户时候,之所以出现上面的错误,是因为home下面没有fdp目录,添加用户时候只能创建一层目录,多层就会报错。

此时home目录中不存在我们指定的目录——

但是用户信息中的用户是存在的——

cat /etc/passwd

此时用fdp03进行登录出现如下错误——

解决办法:通过mkdir命令建立相关用户的目录即可!

2.6 在linux中添加ftp用户,并设置相应的权限

操作步骤如下:
 
1、环境:ftp为vsftp。被限制用户名为test。被限制路径为/home/test
2、建用户:在root用户下:

useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
passwd test //为test设置密码
#-a表示复制隐藏文件,防止shell格式不全问题
cp -a /etc/skel/. /home/test
3、更改用户相应的权限设置:

usermod -s /sbin/nologin test //只是不允许系统login,可以使用其他ftp等服务
usermod -s /bin/bash test //用户test恢复正常,既可以登录shell,也可以登录ftp
usermod -d /test test //更改用户test的主目录为/test

2.7 查看新建用户信息

cat /etc/passwd

2.8 解决vsftpd 读取目录列表失败的问题

搭建ftp服务器后必须进行设置的!

Linux中搭建Ftp服务器,并使用FileZilla软件登录时候出现如下错误:

该错误是由iptables的配置引起的,临时的解决方法是执行如下命令:

[root@localhost soft]# modprobe ip_nat_ftp

再次登陆列表正常啦!

一劳永逸的解决办法:
但当你重新启动服务器则iptables规则失效,又会出现相同的情况,所以我们需要修改/etc/sysconfig/iptables-config文件,

[root@localhost soft]# vi /etc/sysconfig/iptables-config

# Load additional iptables modules (nat helpers)
# Default: -none-
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
# are loaded after the firewall rules are applied. Options for the helpers are
# stored in /etc/modprobe.conf.
IPTABLES_MODULES="" # Unload modules on restart and stop
# Value: yes|no, default: yes
# This option has to be 'yes' to get to a sane state for a firewall
# restart or stop. Only set to 'no' if there are problems unloading netfilter
# modules.
IPTABLES_MODULES_UNLOAD="yes" ......

IPTABLES_MODULES_UNLOAD="yes"的意义:每次iptables停止或者重启都会Unload modules
IPTABLES_MODULES=""的意义:每次防火墙规则应用以后加载的模块

我们需要把
IPTABLES_MODULES=""
修改为:

IPTABLES_MODULES="ip_nat_ftp"
#重启防火墙
service iptables restart

这样重启服务器之后就不必再每次都执行mobprobe啦。

3 vsftpd 配置:chroot_local_user与chroot_list_enable详解(重要)

3.1 配置用户访问目录

vim /etc/vsftpd/vsftpd.conf

搭建ftp服务器,我喜欢配置用户访问目录,并选择方式一

很多情况下,我们希望限制ftp用户只能在其主目录下(root dir)下活动,不允许他们跳出主目录之外浏览服务器上的其他目录,

这时候我就需要使用到chroot_local_user,chroot_list_enable,chroot_list_file这三个选项了。

以下是对三个配置项的解释: 本文原文出处:http://blog.csdn.net/bluishglc/article/details/42398811 !

  • chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)

  • chroot_list_enable #是否启动限制用户的名单 YES为启用  NO禁用(包括注释掉也为禁用)

  • chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!

对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:

  chroot_local_user=YES chroot_local_user=NO
chroot_list_enable=YES 1.所有用户都被限制在其主目录下

2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制

1.所有用户都不被限制其主目录下

2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制

chroot_list_enable=NO 1.所有用户都被限制在其主目录下

2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

1.所有用户都不被限制其主目录下

2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

让我们举个例子:

假设有ftp1, ftp2两个ftp用户, 计划让ftp1用户锁定在主目录下,不允许切换到其他目录, 但是允许ftp2用户自由切换目录,则可以分如下两种方式实现:

方式一:
令:
chroot_local_user=YES
chroot_list_enable=YES

通过如下方式解除用户的目录限制:(即是不进行解除,也要创建下面的文件,不然会报错)

vim /etc/vsftpd/chroot_list

/etc/vsftpd/chroot_list名单列表为:
ftp2
 ps:在开启chroot_local_user=YES和chroot_list_enable=YES后需要建立/etc/vsftpd/chroot_list文件,不然会报500错误

解释:chroot_local_user=YES将所有用户限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file,

因为chroot_local_user=YES,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。
 
方式二:
令:
chroot_local_user=NO
chroot_list_enable=YES
/etc/vsftpd/chroot_list名单列表为:
ftp1

解释:chroot_local_user=NO则所有用户不被限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file,

因为chroot_local_user=NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“会被限制在主目录下”的用户。

其他情况:

对于chroot_local_user和chroot_list_enable的组合还有这样两种情况:

chroot_local_user=YES
chroot_list_enable=NO

chroot_local_user=NO
chroot_list_enable=NO

当chroot_list_enable=NO时,就不再启用chroot_list_file,此时就是单纯的把全部用户限定或不限定在主目录下了!

补充:

  • 关于chroot_local_user的设置,通常我们倾向于:全局禁止跳出主目录,使用chroot_list添加例外!即:使用Case 1的设置!
  • 匿名用户默认的root是/var/ftp

3.2 500 OOPS

搭建ftp服务器,必须要进行的步骤

1、vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:

这个问题发生在最新的版本中,这是由于下面的更新造成的:

- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite pe

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,有两个方法:

方法一——可以用命令

chmod a-w /home/user

去除用户主目录的写权限,注意把目录替换成你自己的。

方法二——你可以在vsftpd的配置文件中增加下列两项中的一项:(通常采用的方式)

vim /etc/vsftpd/vsftpd.conf
//增加下面的配置内容
allow_writeable_chroot=YES

2、500 OOPS: chroot

解决办法,参考http://www.cnblogs.com/lixuwu/p/6087023.html 关闭SELINUX

3、227 Entering Passive Mode

在安装完centos虚拟机后,连接vsftp服务器出现这样的错误

响应:     Switching to Binary mode.
命令: PASV
响应: Entering Passive Mode (,,,,,).
命令: LIST
错误: 秒后无活动,连接超时
错误: 读取目录列表失败

经查询得知,要将vsftp设置为主动连接模式。

vim /etc/vsftpd/vsftpd.conf

#添加如下配置
pasv_enable=NO #保存后退出,重启vsftp服务器
systemctl restart vsftpd.service

4 、550 Permission denied

登录ftp出现如下错误

响应:     Switching to Binary mode.
命令: PASV
响应: Permission denied.
命令: PORT ,,,,,
响应: PORT command successful. Consider using PASV.
命令: LIST
响应: Failed to establish connection.
错误: 读取目录列表失败

问题分析:

查看ftp服务器账户,有写入权限,支持上传,服务器提示无法启动传输,说明连接无法建立

问题处理:

点击FileZilla文件,选择站点管理器——选择站点——常规——协议——SFTP-SHH

主机名,端口不填,协议使用SFTP-SHH,登录类型选择正常,输入用户和密码,点击链接,连接后选择上传文件,上传成功,配置如下:

4 ftpusers和user_list以及userlist_enable和userlist_deny(重要)

vsftpd中关于ftpusers和user_list两个文件的说明以及vsftpd.conf中的userlist_enable和userlist_deny两个配置项的解释

本文原文出处: http://blog.csdn.net/bluishglc/article/details/42273197

/etc/vsftpd/vsftpd.conf #主配置文件

/etc/vsftpd/ftpusers #不能访问FTP用户列表

/etc/vsftpd/user_list #不能访问FTP用户列表

问题一:ftpusers和user_list两个文件各自的用途是什么?有何关系?

首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!

该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。

//不能访问FTP用户列表
vim /etc/vsftpd/ftpusers

而user_list则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单!那么是什么的设置决定了它的作用呢?这就是问题二要解释的。

所以简单总结就是:ftpusers和user_list没有任何关系,ftpusers文件总是生效,user_list则取决于userlist_enable和userlist_deny两项配置。

使用root用户登陆,出现如下问题:

分两步解决:

1.将总开关中的root用户注释掉

vim /etc/vsftpd/ftpusers

注释掉root用户

2.查看主配置文件,确认是否启用userlist_enable配置,一般是YES

vim /etc/vsftpd/vsftpd.conf

所以:

vim /etc/vsftpd/user_list 

再次注释掉root用户

不需要重启,直接成功:

问题二:vsftpd.conf中的userlist_enable和userlist_deny两个配置项各自起什么作用,两者如何搭配使用?

userlist_enable=YES(默认有这个)
userlist_deny (默认没这个,这一项即使不设置也为YES,vsftpd已经默认了)

为了说明这个问题,我们来建立两个测试用户:

tom: 在user_list中
jim:不在user_list中

然后我们分别给两个配置项取不同的值,分4种Case进行测试:

Case 1: userlist_enable=YES, userlist_deny=YES

tom: 拒绝登入
jim: 允许登录

Case 2: userlist_enable=YES, userlist_deny=NO

tom: 允许登录
jim:拒绝登录(如user_list文件开头的注释所述,甚至不会提示输入密码,即无登入提示框,直接拒绝连接)

Case 3: userlist_enable=NO,userlist_deny=NO

tom: 允许登录
jim: 允许登录

Case 4: userlist_enable=NO,userlist_deny=YES

tom: 允许登录
jim: 允许登录

综上实验得出以下结论:

    1. userlist_enable和userlist_deny两个选项联合起来针对的是:本地全体用户(除去ftpusers中的用户)和出现在user_list文件中的用户以及不在在user_list文件中的用户这三类用户集合进行的设置。
    2. 当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
    3. 当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
    4. 当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous

另一篇博客的实验结果

上表为测试结果,从表中可以看出,当userlist_enable为NO时,userlist_deny为YES或NO都登录成功了。

这里推测,userlist_enable的功能是关闭和启用userlist机制,而user_deny用于是否阻止user_list文件中的用户登录,这么说有点绕。

换种说法就是,只要userlist_enable开启了,就可能有用户被禁止登录,如果开启userlist_deny,那么禁用的是user_list文件中指定的用户,否则user_list文件外的用户被禁用。

实际遇到的问题

现象:使用tws用户登录,ftp无法上传文件,上传文件都是0字节,或者本地更改上传到服务器都是0字节
原因是当前用户的磁盘空间被日志占满了。

df -h 查看用户空间使用情况
du -sh * 查看当前目录下各个文件的大小

使用上述命令,查找大日志目录,删除即可

 

(转)Centos搭建FTP服务器的更多相关文章

  1. centos搭建ftp服务器的方法

    FTP操作 一.查看是否安装vsftpd rpm –qa|grep vsftpd 二.下载vsftpd yum install -y vsftpd 三.查看是否开启服务 service vsftpd ...

  2. centos搭建ftp服务器

    申请个京东云服务用着.上传文件想搭建个ftp服务.遇到个坑记录一下: 这里就简单的使用yum安装 ftp服务: vsftpd  全称 very secure ftp deamon  (非常安全的ftp ...

  3. centos 搭建ftp服务器

    1.安装vsftpd sudo yum install vsftpd 2.配置vsftpd.conf # Allow anonymous FTP? (Beware - allowed by defau ...

  4. linxu篇-centos搭建ftp服务器

    1安装vsftpd 2备份配置文件 3修改配置文件 vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO #允许匿名用户访问为了安全选择关闭 local_ena ...

  5. 【Linux】- CentOS搭建FTP服务器

    1.安装vsftpd yum install -y vsftpd 2.启动vsftpd服务 service vsftpd start 3.查看运行状态 netstat -nltp | 完毕!!! 参考 ...

  6. 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  7. CentOS 下搭建FTP服务器

    vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个.本文介绍了在CentOS 6 4下安装vsftpd.配置虚拟用户登录FTP的过程.正 vsftpd是Linux下比较著名 ...

  8. 服务器linux centos 7.4 搭建ftp服务器

    此操作是在腾讯云服务器linux centos 7.4 完成搭建ftp服务器 vsftpd 的: 安装 vsftpd $ yum install vsftpd -y 启动 $ service vsft ...

  9. CentOS 6.5下快速搭建ftp服务器[转]

    CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vs ...

随机推荐

  1. 第45篇 js操作打开本地程序

    原文地址:http://blog.laofu.online/2017/06/10/how-js-controlApp/ 背景 假设有这样一个产品,一个web和一个winform客户端,在客户在web的 ...

  2. PHP编译

    编译php-5.3.6的时候需要先打一个内存泄露的补丁,具体的操作如下 tar vzxf suhosin-0.9.32.1.tar.gz tar vjxf php-5.3.6.tar.bz2 cd p ...

  3. Java基础——封装

    最近学习Java面向对象方面的知识点,一直没时间更新博客,因为这块的知识点真的蛮绕的.一个知识点一个知识点的往外冒,而且对于我这个初学者来说区分构造器和方法就花费了一整天的时间.现在准备再重新过一遍知 ...

  4. python_adb 图形界面获取app测试数据,并展示部分测试报告v1.0版本

    想到平时想用adb 我就忍不住去翻开笔记,脑子记不住,不好使,不知道大家有没有这个想法呢,不管你有没有,反正我有了,ttm,太烦人了,于是乎,我就开始给自己写个需求文档, 这就是我写的,产品需求,合理 ...

  5. CSS动画属性性能详细介绍

    CSS动画属性会触发整个页面的重排relayout.重绘repaint.重组recomposite Paint通常是其中最花费性能的,尽可能避免使用触发paint的CSS动画属性,这也是为什么我们推荐 ...

  6. 用Html5/CSS3做Winform,一步一步教你搭建CefSharp开发环境(附JavaScript异步调用C#例子,及全部源代码)上

    本文为鸡毛巾原创,原文地址:http://www.cnblogs.com/jimaojin/p/7077131.html,转载请注明 CefSharp说白了就是Chromium浏览器的嵌入式核心,我们 ...

  7. 探索Windows命令行系列(4):通过命令管理文件和文件夹

    1.文件夹操作 1.1.DIR(directory)命令 1.2.TREE 命令 1.3.CD(change directory)命令 1.4.MD(make directory)命令 1.5.RD( ...

  8. [ABP框架]动态web Api的拦截用法。

    先进行配置 首先这种需求,一般发生在APP端,我们给APP,不会给所有项目系统的接口给他们用.我们系统有200个接口,但是APP的需求只会用20个.那么这个需求也就应运而生了. 以上为API文件夹中为 ...

  9. DOCKER 从入门到放弃(二)

    搜索镜像 从docker官方镜像仓库搜索镜像 docker search [OPTIONS] TERM OPTIONS: --automated :只显示自动创建的镜像,默认值为fasle --fil ...

  10. Azure MySQL PaaS (3) 创建MySQL异地只读数据库 (Master-Slave)

    <Windows Azure Platform 系列文章目录> Azure MySQL PaaS服务提供异地只读的功能,我们可以在主站点,比如Azure上海数据中心,创建MySQL主节点. ...