db 的服务要迁移,原本也是用haproxy 来做mysql 的代理跨机房的业务过渡。由于,也不知道为什么,负责网络 (在外地)同仁把haproxy 给过滤掉了,mysql 客户端测试连接的时候直接给断开了,很明显是 tcp 以上的协议阻挡, 我都反馈的很清楚了。最可气的是我找中间人去理论,说的很清楚 telnet 端口号是没有问题的,但那哥们死心眼的让我 确认一下tracertoute 是不是正常(一个三层telnet 都是通的,还较真的让我看网络是不是通的,后面我也无奈的贴了, 都是通滴,真想跟他说下让他看看计算机网络 OSI 模型)。 telnet 返回的信息(这不明白的是提示输入密码么): Escape character is '^]'. N 5.5.23-log8a7A737Y<] ? uF:2,%t9_R\Xmysql_native_password 使用haproxy 后的客户端访问提示信息: Unable to connect to remote host: Connection refused 最后中间同事也烦了,说自己的事自己搞定吧。无奈啊,google 之,发现了这个 tcproxy: https://github.com/dccmx/tcproxy sample usagetcproxy "11212 -> 11211" tcproxy "192.168.0.1:11212 -> 192.168.0.2:11211" not implemented yettcproxy "any:11212 -> rr{192.168.0.100:11211 192.168.0.101:11211 192.168.0.102:11211}" tcproxy "any:11212 -> hash{192.168.0.100:11211 192.168.0.101:11211 192.168.0.102:11211}" 这种规则就只是一条命令的事,我也不用什么hash 来做,当然你的需求必须同样的简单。 这种应该是直接走tcp ,没有封包(估计haproxy 就是由于封包的header 才被拦截),顺利的跑了一个月,没出问题。 总结: 万不得已,还是自己找路。 |
2013年8月17日星期六
取代haproxy 的简单的tcproxy
订阅:
博文评论 (Atom)
订阅:
博文评论 (Atom)
2 条评论:
不明白,“在网络上把haproxy 给过滤掉”,这是指什么,非得换成tcproxy才行
网络为了安全,会禁止一些特定的工具反向连接到服务器内部端口。haproxy 会有一个header,类似于浏览器的 user-agent,防火墙工具根据这些规则来设定。
发表评论