Linux上安装和启动Memcached
本文由 小茗同学 发表于 2016-10-16 浏览(1522)
最后修改 2018-03-01 标签:linux memcached 安装

安装

memcached依赖libevent,要先安装libevent然后安装memcached

安装libevent(以下命令暂未亲测):

# tar zxvf libevent-2.0.12-stable.tar.gz
# cd libevent-2.0.12-stable
# ./configure –prefix=/home/memcached/libevent-2.0.12-stable
# make && make install

安装memcached:

# tar zxvf memcached-1.4.26.tar.gz
# cd memcached-1.4.26
# ./configure --prefix=/home/memcached/memcached-1.4.26 --with-libevent=/home/memcached/libevent-2.0.12-stable
# make && make install

启动

# cd /home/memcached/memcached-1.4.26
# ./memcached -p 11211 -d -u root -m 100 -c 256 -P /tmp/memcached.pid -l 127.0.0.1

参数解释:

-p是设置Memcache监听的端口,这里设置了11211;
-d选项是启动(-d start);
-u是运行Memcache的用户,这里是root;
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB;
-c选项是最大运行的并发连接数,默认是1024,这里设置了256,按照你服务器的负载量来设定;
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
-l是设置监听的IP,设置为127.0.0.1可以只让本机才能访问,外网无法访问;

想开机自动启动的话,只需在/etc/rc.d/rc.local中加入一行下面命令:

cd /etc/rc.d/
vim rc.local
# 添加如下内容
/home/memcached/memcached-1.4.26/memcached -p 11211 -d -u root -m 100 -c 256 -P /tmp/memcached.pid -l 127.0.0.1

其它命令

停止:

kill `cat /tmp/memcached.pid`

查看启动的memcache服务:

netstat -lp | grep memcached

查看memcache的进程号:

ps -ef | grep memcached

禁止外网访问Memcached

漏洞描述

Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。

解决方法

解决方法其实上面已经提到了,就是启动memcached时指定-l 127.0.0.1,这样外网就无法访问了,为了安全起见,再在防火墙增加如下配置vim /etc/sysconfig/iptables

# 只允许本机访问11211端口
-A INPUT -p tcp -s 127.0.0.1 --dport 11211 -j ACCEPT
-A INPUT -p udp -s 127.0.0.1 --dport 11211 -j ACCEPT
-A INPUT -p tcp --dport 11211 -j DROP
-A INPUT -p udp --dport 11211 -j DROP

然后执行service iptables restart重启生效。

Windows下安装

本来不应该写在这里,但是内容太少不足以单独写一篇文章。

Windows下直接双击exe文件就是了,但是老是开一个窗口好难看,最好配置成服务。

管理员身份打开命令行:

memcached.exe -d install

默认生成如下服务:

如果想安装多个不同端口的服务或者自定义名称的话,需要用sc命令自己来安装,这里不做多介绍。

参考