TCPCopy 常见问题


TCPCopy 常见问题:
出现 timeout 或者是频繁丢包

sysctl -w net.core.rmem_max=131071
sysctl -w net.core.wmem_max=131071
sysctl -p

虚拟机使用 ab 测试的结果
会有包堆积的情况 不会马上处理 在 ab 测试数据跑完后 依然在处理数据包
10000 100 缺包不明显
10000 500 出现 ack 处理异常 缺包不明显
10000 1000 出现 ack 处理异常 缺包不明显 有内存堆积不到 1MB
10000 2000 出现 ack 处理异常 缺包明显 3000 左右 有内存堆积 11MB
20000 500 出现 ack 处理异常 缺包不明显 有内存堆积 11MB
20000 1000 出现 ack 处理异常 缺包明显 13000 左右 有内存堆积 21MB
20000 2000 出现 ack 处理异常 缺包明显 13000 左右 有内存堆积 28MB










阅读全文

使用 TCPCopy 做引流测试


tcpcopy结构.png
TCPCopy 默认从 IP 层抓包,从 IP 层发包,我们在测试服务器进行响应包的截获,并通过 intercept 程序返回响应包的必要信息给 TCPCopy。
在线上要引流的机器和测试机分别安装 TCPCopy,版本 tcpcopy-0.9.6.tar.gz
然后

configure
make
make install



阅读全文

Linux netcat 命令


netcat 或者叫 nc 是 Linux 下的一个用于调试和检查网络工具包。
可用于创建 TCP/IP 连接,最大的用途就是用来处理 TCP/UDP 套接字。
这里我们将通过一些实例来学习 netcat 命令。
1.在服务器-客户端架构上使用 netcat
netcat 工具可运行于服务器模式,侦听指定端口

$ nc -l 2389

然后你可以使用客户端模式来连接到 2389 端口:

$ nc localhost 2389

现在如果你输入一些文本,它将被发送到服务器端:

$ nc localhost 2389
HI, 70data

在服务器的终端窗口将会显示下面内容:

$ nc -l 2389
HI, 70data




阅读全文

Linux 下 ctrl+s 假死恢复


使用 SecureCRT 或者 Xshell 时,偶尔发生屏幕假死,不能输入等情况。
后来发现,只要输入 ctrl+s,就会假死。
输入 ctrl+q 就可以恢复过来。
ctrl+s 是一个古老的 shell 控制键,再输入 ctrl+q 就可以恢复了。




阅读全文

Linux tee 命令


[root@myserver test]# tee --help
用法:tee [选项]... [文件]...
将标准输入复制到每个指定文件,并显示到标准输出。

  -a, --append        内容追加到给定的文件而非覆盖
  -i, --ignore-interrupts    忽略中断信号
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

如果文件指定为"-",则将输入内容复制到标准输出。

阅读全文

Linux ulimit 设置


[root@myserver test]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14846
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14846
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

其中 "open files (-n)" 是 Linux 操作系统对一个进程打开的文件句柄数量的限制,也包含打开的 socket 数量。
这个值可用 ulimit 命令来修改,但 ulimit 命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效。


阅读全文

pgrep & pkill 用法


查看 nginx 进程

[root@97lab ~]# ps -A | grep -i nginx
 1435 ?        00:00:00 nginx
 1436 ?        00:01:15 nginx
 1438 ?        00:01:21 nginx

使用 pgrep

[root@97lab ~]# pgrep -l nginx
1435 nginx
1436 nginx
1438 nginx

[root@97lab ~]# pgrep
pgrep: No matching criteria specified
Usage: pgrep [-flvx] [-d DELIM] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]
    [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]

阅读全文

/usr/bin/ld: cannot find -lxxx 解决思路


问题描述
/usr/bin/ld: cannot find -lxxx
其中 xxx 即表示函式库文件名称,其命名规则是:lib+库名(即xxx)+.so。

可能原因:
1.安装,但相对应的 lib 版本不兼容。
我们需要的是 libjpeg.so.8.0,但安装的是 libjpeg.so.6.0。或者是需要 arm 平台上的 lib,但我们安装的是 X86 架构的,或反之本来是要编译 arm 平台上的却忘了指定交叉编译器,我们需要 32 位但我们安装的是 64 位的。
2.安装了,版本也对了,但 lib(.so.version-num) 的 symbolic link 不正确,没有连结到正确的函式库文件(.so)。
我们需要的是 libjpeg.so.8.0,也安装上了。但是实际使用时我们是查找的 libjpeg.so,就需要相应的一个名为 libjpeg.so 的 link 指向 libjpeg.so.8.0。
3.目录中确实没有相对应的 lib。
系统中没有安装相对应的 lib,安装了,但不在这个目录且不在环境变量中。









阅读全文

一次被入侵和删除木马程序的经历


木马名称
Linux.BackDoor.Gates.5

中午服务器出现流量超高,平时只有几百 M 的流量,那时候发现流量上 G 了,而且提示阿里云有 DDOS 流量攻击行为。
开始也没有什么头绪,就是 ps 查进程,netstat 查端口号,nload 查流量。一时也没发现什么异常。
后来发现 root 的家目录下存在 conf.n 这个文件。
然而我并未创建这个文件,也是感觉问题来了。

/bin/ps,/bin/netsta 程序都是1.2M的大小,然后默认的只有几百 KB。
木马截图.png






阅读全文