`
mzlly999
  • 浏览: 52399 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

memcached限制ip进行tcp连接

 
阅读更多

最近新增了一台服务器,想把apache那台的memcached分到这台新机器上,我杯具的有个错误认识:

我以为memcached -l 的listen参数是用来监听哪台机进行connection,比如apache的ip是10.0.0.1,memcached那台服务器的ip是10.0.0.2,开始我以为,如果只让memcached允许来自apache机器的connection,只要配置memcached -l 10.0.0.1就可以了,可是这样报错:

bind(): Cannot assign requested address
failed to listen

问题是-l参数就是绑定本机网卡的,根本不是来限制tcp的connection的,这个限制是要靠iptable来搞的。

先说下-l绑定本机网卡的问题,当使用-l 127.0.0.1运行md的时候,只有本机能connect上这个memcache;让使用-l 10.0.0.2运行的时候(这里假定10.0.0.2是md机器对外的ip),任何机器都可以连上这个memcache。同事有人指出,-l实际上就是在指定绑定机器的那个网卡的问题,比如当使用ifconfig的时候,显示信息类似如下:

eth0      Link encap:Ethernet  HWaddr 00:17:a4:3a:e8:56

inet addr:10.0.0.2  Bcast:10.0.0.255  Mask:255.255.255.0

inet6 addr: fe80::217:a4ff:fe3a:e856/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:1635820 errors:0 dropped:0 overruns:0 frame:0

TX packets:20283 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:148717543 (141.8 MiB)  TX bytes:2281514 (2.1 MiB)

Interrupt:25

lo        Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:16436  Metric:1

RX packets:17 errors:0 dropped:0 overruns:0 frame:0

TX packets:17 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:1526 (1.4 KiB)  TX bytes:1526 (1.4 KiB)

这样当使用-l 127.0.0.1的参数跑的时候是绑定lo,监听来自lo的连接,这样只有本机能connect,;当使用-l 10.0.0.2的参数跑的时候是绑定eth0(对外ip),这样外面的任何机器都能connect。
当使用-l制定对外ip的时候,肯定不希望任何机器都能连接上我们服务器的memcached,希望只要指定ip的机器能连上memcached,比如这个例子中的apache(ip:10.0.0.1)和memcached本机(10.0.0.2),这个时候就是需要iptables的时候,先写一个规则文件iptable-rules,类似如下(这里假定11211是memcached跑的端口):
=============
*filter
-A INPUT -i lo -j ACCEPT
#38049
-A INPUT -p tcp -m tcp –dport 11211 -s 10.0.0.1 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 11211 -s 10.0.0.2 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 11211 -j REJECT
COMMIT
=============
然后使用命令iptables-restore < iptable-rules 应用这些规则。成功后使用iptables -L 可以看到对端口的限制已经生效
分享到:
评论

相关推荐

    memcached windows稳定版

    -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u ...

    java中连接memcached服务器

    java中连接memcached缓存服务器

    memcached客户端工具

    TreeNMS是一款redis,Memcache可视化客户端工具,采用JAVA开发,实现基于WEB方式对Redis, Memcached数据库进行管理、维护。 功能包括:NoSQL数据库的展示,库表的展示,key,value的展示,新增,修改,删除等数据的...

    connect-memcached, 用于连接的Memcached会话存储.zip

    connect-memcached, 用于连接的Memcached会话存储 连接 memcachedMemcached会话存储,使用节点 Memcached 与缓存服务器进行通信。安装通过 npm:$ npm install connect-memcached示例var express =

    memcached 网络部分详解

    自己总结的memcached的网络部分,主要是TCP 套接字编程方面,有兴趣的可以看看。

    memcached连接demo

    memcached连接demo!

    tomcat8+memcached-session的连接1.9.6版本jar包

    tomcat8和memcached的连接jar包,版本为1.9.6,解决了java.lang.InterruptedException的问题,实测是没问题的

    java连接memcached服务的jar

    java连接memcached服务的jar

    memcached for win32

    -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以的身份...

    memcached安装包以及MemCachedClient

    memcached, libevent, MemCachedClient

    Memcached 1.2.1.0 For Windows

    -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以的身份...

    memcached 64位 window

    memcached 64位 window memcached 64位 window memcached 64位 window

    memcached1

    // 设置TCP的参数,连接超时等 pool.setNagle( false ); pool.setSocketTO( 3000 ); pool.setSocketConnectTO( 0 ); // 初始化连接池 pool.initialize(); // 压缩设置,超过指定大小(单位为K)的数据都会...

    Memcached 1.4.13(Windows 32/64)最新稳定版

    -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以...

    memcached for Win32/x64服务器(袋鼠图标,版本是1.4.13)

    l 连接的IP地址 默认是本机 d start 启动memcached服务 d restart 重起memcached服务 d stop|shutdown 关闭正在运行的memcached服务 d install 安装memcached服务 d uninstall 卸载memcached服务 u 以的身份...

    memcached 1.5.6 linux

    1.如果您屏蔽了对外TCP协议11211端口,您可以在外网办公电脑上使用命令“telnet ip 11211",如果返回连接失败,则表示已经关闭对外TCP协议11211端口; 2.如果您在服务器上禁用了Memcached服务的UDP协议,您可以运行...

    Memcached1.4.13 For Windows 32/64

    -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以的身份...

    memcached32位&64位

    -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以的身份...

    memcached-win-32/64-1.4.4-14

    memcached的基本设置: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d ...

    Memcached 统计与监控

    Memcached 统计与监控,用telnet去连接memcached,并统计和监控memcached

Global site tag (gtag.js) - Google Analytics