fpipe: tcp or udp (without encrypt)
http://www.mcafee.com/cn/downloads/free-tools/fpipe.aspx
spipe: only for tcp
http://www.enet.com.cn/article/2009/0625/A20090625491131.shtml
stunnel:
https://www.stunnel.org/index.html
DevOps
fpipe: tcp or udp (without encrypt)
http://www.mcafee.com/cn/downloads/free-tools/fpipe.aspx
spipe: only for tcp
http://www.enet.com.cn/article/2009/0625/A20090625491131.shtml
stunnel:
https://www.stunnel.org/index.html
场景:
PHP通过phpredis(https://github.com/phpredis/phpredis)循环执行如下操作:
1 2 3 4 5 6 7 8 |
<?php while(true) { $r = new Redis(); $r->connect(...); $r->auth(...); $r->set(...); $r->get(...); } |
发现connect会出现大量超过1s的情况,甚至超过3s;但是,如下图抓包所示:两次请求之间间隔了3s才发送syn请求,并且没有失败,也就是说,并非syn丢包所致,而是因为某种原因导致根本没有发送syn包;但是外部表现却是connect花费了很多时间(3s);
所以,从此推断,连接超时未必就一定是网络的问题,你们究竟会是什么原因导致client端3s后才发送syn的呢?
阅读源码发现: redis的connect用的是php提供的connect方法:php_stream_xport_create
其实,fsockopen用的也是该方法,如此的话,不放通过如下脚本直接测试connect:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php $errno = 0; $error = ""; $i = 0; while(true) { $i++; $time_start = microtime(1); $fp = fsockopen("10.172.90.108", 6379, $errno, $error, 5); $time_end = microtime(1); $time_use = $time_end - $time_start; if ($time_use > 1) { echo "timeout: $time_use ($i)\n"; } if ($fp) fclose($fp); } |
结果如下:
问题:
salt-cp copy 了一个9MB的字体文件,结果就把内存耗光了,不解;
突然想起哪里又说salt-cp不能处理二进制文件,翻下代码看看:(注意这里的fopen)
/usr/lib/python2.6/site-packages/salt/cli/cp.py
参考文章: https://baokun.li/archives/go-get-proxy/
在你的nginx中添加配置:
1 2 3 4 5 6 7 8 9 |
if ($args ~* "^go-get=1") { set $condition goget; } if ($uri ~ ^/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/.*$) { set $condition "{condition}path"; } if ($condition = gogetpath) { return 200 "<!DOCTYPE html><html><head><meta content='your.domain.com/$1/$2 git http://your.domain.com/$1/$2.git' name='go-import'></head></html>"; } |
注意:修改你自己的域名
另:
1 |
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
1 2 3 4 5 6 |
#!/bin/bash # this is a start shell for containner service sshd start while :; do sleep 10000 done |
1 2 3 4 5 6 7 8 9 |
#include <stdlib.h> #include <unistd.h> int main(int ac, char **av) { while(1){ sleep(10000); } return 0; } |
1 2 3 4 |
#!/bin/bash # this is a start shell for containner service sshd start exec /sbin/myinit |
1 2 3 4 5 6 7 8 9 10 11 |
#include <stdlib.h> #include <unistd.h> #include <signal.h> int main(int ac, char **av) { signal(SIGCHLD, SIG_IGN); while(1){ sleep(10000); } return 0; } |
see also : https://docs.docker.com/engine/examples/running_ssh_service/
关于docker的内存限制:
学习一下人家下线产品是咋写的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
阿里云云引擎ACE产品转型下线公告 尊敬的阿里云用户: 您好。 自ACE产品上线以来,我们致力于为用户提供更好的服务以及体验。 今日,我们非常遗憾的通知您,由于产品体系升级,阿里云云引擎ACE产品将于2016年5月12日整体下线,届时ACE产品(包括扩展服务)将全部停止服务(整体下线安排见后)。我们推荐您使用云服务器ECS、弹性web托管、容器服务等其他云计算产品。 在此期间,ACE产品团队将会: 1、 如选择使用ECS或弹性web托管服务,我们将提供相应的代金券; 2、 在用户管理控制台为您提供数据下载的快速通道,您可通过此快速通道进行数据下载\备份以及迁移的工作(如您选择阿里云其他产品的,阿里云并将提供对应的迁移方案); 3、 针对未到期的包年包月ACE产品,阿里云将启动退款程序(具体方案将通过站内信或邮件发送给您)。 请在ACE服务到期日之前安排好数据,逾期将无法找回。 如您在下线过程中遇到问题,可直接从阿里云用户中心—工单管理—提交工单-云引擎ACE提交工单。 因产品体系升级给您带来不便,我们深表歉意。 再次感谢您对阿里云的支持! 阿里云计算有限公司 2016年4月6日 常用Q&A 1、云引擎ACE为什么要下线? 答:您好,非常抱歉,由于产品体系升级,业务调整影响,云引擎ACE将不再提供服务。 2、已买了云引擎ACE的包年包月某某版本,在2016年4月6日以后服务还未到期,产品下线了怎么办? 答:您好,已购用户一方面我们会根据您购买ACE的不同语言针对性的推荐阿里云其它产品并提供对应的迁移方案,另一方面会启动退款程序,已购用户的邮箱或者站内信、短信4月6日会统一收到通知,请收到的用户及时查到您的手机、邮箱或阿里云账户中心 3、已买了按量付费云引擎ACE,产品下线了怎么办? 答:您好,一方面我们会根据您购买ACE的不同语言针对性的推荐阿里云其它产品并提供对应的迁移方案,另一方面我们已争取替代产品的最大化代金券,已发放至您的账号,您可以直接用来购买新产品 4、产品下线了,我的应用数据怎么办 答:您好,5月12正式下线之前,我们会一直提供数据下载快速通道,您可以随时做好数据下线和备份工作,若您选择阿里云其他产品,我们提供推荐产品的迁移方案,您可直接根据方案迁移数据 5、我的应用正好在你产品下线期间到期了怎么办? 答:您好,为了保证用户体验,在4月6日-5月12日期间到期的客户可以继续使用应用直至5月12日产品正式下线为止。 6、你们产品下线,推荐我购买其他产品有没有优惠? 答:您好,我们已争取其他产品的最大化优惠代金券,已发放至您的账号,您可以直接用来购买新产品,代金券有效期为30天,请及时使用 。 7、下线期限,包年包月超过流量套餐配置外流量还收费吗? 答:您好,4月6日-5月12日针对超套餐的流量系统仍计费,超出部分按照¥0.80/GB收费,基本版和普通版每个月50GB免费公网流出流量,流入流量免费,专业版每个月80GB免费公网流出流量,流入流量免费 |
为什么API网关也能成为一种服务: http://www.d1net.com/cloud/vendors/359931.html
概要
httpdns就是通过http的方式进行域名解析;阿里云有提供httpdns服务(目前2016-4-9 还处于公测阶段,需要申请公测资格才能用)。
传统dns解析存在的问题:
httpdns的实现原理:
1 2 |
curl http://203.107.1.1/100000/d?host=www.aliyun.com {"host":"www.aliyun.com","ips":["140.205.63.8"],"ttl":274} |
1 |
curl -H"Host: www.aliyun.com" http://140.205.115.67/ |
问题:
优点:(参考文档: https://www.aliyun.com/product/httpdns?spm=5176.7960203.223922.4.2JohAO)
1 2 3 4 5 6 |
对于地址: http://203.107.1.1/100000/d?host=www.aliyun.com&ip=111.111.11.111 其中: 100000是你的账户ID,host参数是你要解析的域名,ip参数是你的来源IP(用来做精准调度的); 你可以在你的账户中设置允许解析的域名,以及要解析到的地址,甚至可以根据来源IP解析到不同的IP, 做到精准调度 |
问题:
dns投毒:
因为域名解析是udp的,只要我已dns server的ip不断地向你的机器发送域名解析结果响应的话,你可能就会认为确实是dns server响应的结果;当然,有几个关键点需要注意:
httpdns示例:
更多参考:
全局精确流量调度新思路-HttpDNS服务详解: http://www.zmke.com/i/8705.html
渗透测试:内网DNS投毒技术劫持会话:http://www.freebuf.com/articles/web/43157.html
http://www.onedns.net/ 需要特殊的dns客户端
加密的dns: https://www.opendns.com/about/innovations/dnscrypt/ 需要特殊的dns客户端
wireshark分析dns协议: http://blog.csdn.net/hunanchenxingyu/article/details/21488291
dns协议格式: http://cjhust.blog.163.com/blog/static/1758271572014111875652363/