tcpcopy笔记

Tcpcopy 辅助服务器:

  • 安装Intercept(需要root权限)
    git clone git://github.com/session-replay-tools/intercept.git
    yum -y install gcc gcc-c++
    yum install libpcap-devel
    cd /usr/local/intercept/sbin
  • 开启Intercept
    sudo ./intercept -i eth0 -l intercept.log -P /var/run/intercept.pid -F ‘tcp and src port 80’ -d
    参数说明:
    -i 制定监听的网卡
    -l 日志
    -P PID保存路径
    -F 拦截过滤规则
    -p 设置监听端口,默认36525,tcpcopy连接辅助服务器时使用

    查看现网服务器已连接到本地端口
    ss -an |grep 36524 171->local

    生产Nginx服务器安装Tcpcopy:

  • 下载Tcpcopy
    git clone git://github.com/session-replay-tools/tcpcopy.git
  • 安装(需要root权限)
    ./configure
    编译参数:可以不设置,默认安装在/usr/local/tcpcopy/sbin

    --prefix=PATH                      set installation prefix
    --sbin-path=PATH                   set tcpcopy binary pathname
    --conf-path=PATH                   set plugin.conf pathname
    --pid-path=PATH                    set tcpcopy.pid pathname
    --builddir=DIR                     set build directory
    

    make
    make install

  • 开启Tcpcopy 导流,需要root权限,辅助服务器已经开启
    /usr/local/tcpcopy/sbin
    sudo ./tcpcopy -x 80-192.168.143.77:80 -s 192.168.143.45 -c 18.18.18.x -d -C 4 -l tcpcopy.log -P /var/run/tcpcopy.pid
    参数说明:
    -x 导流80 端口的数据流到 192.168.143.77:80
    -c 61.135.250.x,61.135.251.x 修改流量来源为制定网段,多个网段用逗号隔开
    -s 10.120.12.161:36525,10.120.12.161:36525 指定辅助服务器和端口,默认端口36525
    -f 1 开启多个tcpcopy实例时使用,f参数的值必须是不同,达到多倍流量复制效果,单个不用设置
  • 查看是否成功连接到辅助服务器
    查看tcpcopy.log
    ss -an|grep 192.168.143.45
    tcpdump 查看是否有流量导向测试服务器
    sudo tcpdump -i eth0 host 192.168.143.77 and port 80

新机房服务器:

  • 添加路由信息(需要root权限)
    把tcpcopy -c 参数里面的ip地址或者网段全部添加到路由表里面,转换到辅助服务器
    sudo route add -net 18.18.18.0 netmask 255.255.255.0 gw 192.168.143.45
  • 查看添加成功
    sudo route del -net 18.18.18.0 netmask 255.255.255.0
    route
    # ss -an |head
    tcpdump 查看是否有流量从修改的请求源到达测试服务器
    tcpdump port 80 and src net 18.18.18.0/24