Marlbo's blog

路在脚下,心向远方

autossh+launchd 实现全自动 ssh隧道转发 Socks5代理

在 Windows 下有非常好用的 xshell 用于管理远程 Linux 服务器,并且可以非常方便的设置隧道转发以实现 socks5 代理的功能,而且 xshell 有断线重连的功能,简直不要太贴心。

但是在 mac 环境下试了很多 ssh 客户端,效果都不尽人意,试过最好的就是 FinalShell 了,也可以设置 ssh 隧道实现 socks5 代理,但就是没有断线自动重连的功能,用起来是有点憋屈的感觉。


AB压测提交POST数据的问题

一、安装ab

sudo yum install httpd-tools

二、编辑POST数据文件

这里是最可能出问题的,因为vi编辑器会自动在文件末尾添加换行符,导致提交的数据不正确,需要强制关闭这个功能。

vi postdata.txt
:set invlist # 显示所有字符
:set bin noeol # 设置为二进制格式,禁止末尾自动添加换行符
:wq
wc -l postdata.txt # 统计文件行数
wc -m postdata.txt # 统计文件字数

三、尝试提交压测指令

nc -l 8081 # 监听8081端口,可以观察ab提交的数据
ab -n 1 -c 1 -p postdata.txt -T application/x-www-form-urlencoded http://127.0.0.1:8081/test.php?sign=a24e13f28196d86a52df905f6e645d6c

四、ab参数详解

-n 即requests,用于指定压力测试总共的执行次数。 -c 即concurrency,用于指定压力测试的并发数。 -t 即timelimit,等待响应的最大时间(单位:秒)。 -b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。 -p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。 -u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。 -T 即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。 -v 即verbosity,指定打印帮助信息的冗余级别。 -w 以HTML表格形式打印结果。 -i 使用HEAD请求代替GET请求。 -x 插入字符串作为table标签的属性。 -y 插入字符串作为tr标签的属性。 -z 插入字符串作为td标签的属性。 -C 添加cookie信息,例如:“Apache=1234”(可以重复该参数选项以添加多个)。 -H 添加任意的请求头,例如:“Accept-Encoding: gzip”,请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。 -A 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。 -P 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。 -X 指定使用的代理服务器和端口号,例如:“126.10.10.3:88”。 -V 打印版本号并退出。 -k 使用HTTP的KeepAlive特性。 -d 不显示百分比。 -S 不显示预估和警告信息。 -g 输出结果信息到gnuplot格式的文件中。 -e 输出结果信息到CSV格式的文件中。 -r 指定接收到错误信息时不退出程序。 -h 显示用法信息,其实就是ab -help。