环境准备:
部署环境为: 阿里云centos7 + jdk + bison-2.4.1 + flex-2.5.35 + libpcap-1.4.0 + m4-1.4.13 + libjnetpcap.so
需要的安装包在后面
上传安装包
bison-2.4.1.tar.gz
flex-2.5.35.tar.gz
libpcap-1.4.0.tar.gz
m4-1.4.13.tar.gz
全部解压
tar -zxvf bison-2.4.1.tar.gz
tar -zxvf flex-2.5.35.tar.gz
tar -zxvf libpcap-1.4.0.tar.gz
tar -zxvf m4-1.4.13.tar.gz
开始安装(必须按照顺序)
cd m4-1.4.13
./configure
make
make install
cd bison-2.4.1
./configure
make
make install
cd flex-2.5.35
./configure
make
make install
cd libpcap-1.4.0
./configure
make
make install
安装完成后/usr/local/lib 下会有 libpcap.so libpcap.so.1 libpcap.so.1.4.0 文件
建立一个软连接或者直接复制到 /usr/lib 和 /usr/lib64下
sudo ln -s /usr/local/lib/libpcap.so.1 /usr/lib/libpcap.so.1
sudo ln -s /usr/local/lib/libpcap.so /usr/lib/libpcap.so
sudo ln -s /usr/local/lib/libpcap.so.1.4.0 /usr/lib/libpcap.so.1.4.0
sudo ln -s /usr/local/lib/libpcap.so.1 /usr/lib64/libpcap.so.1
sudo ln -s /usr/local/lib/libpcap.so /usr/lib64/libpcap.so
sudo ln -s /usr/local/lib/libpcap.so.1.4.0 /usr/lib64/libpcap.so.1.4.0
将 libjnetpcap.so 文件复制到 /usr/lib 和 /usr/lib64下
已有的就不用管
代码实现:
项目结构:
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>jnetpcap</groupId>
<artifactId>jnetpcap</artifactId>
<version>1.4.r1425-1g</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.6.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
</dependencies>
application.yml
server:
port: 8083
myproxy:
# 抓取每个请求头里面设定好的值,此值用于降抓取的请求返回配对,值为NGINX随机生成,后面nginx有配置
headerKey: Psession_id
logging:
file:
path: logs/proxy-java/
name: logs/proxy-java/debug.log
level:
"com.capinfo": debug
AsyncApp.java
package com.capinfo.bcip.async;
import com.capinfo.bcip.service.CaptureService;
import lombok.extern.slf4j.Slf4j;
import org.jnetpcap.PcapIf;
import org.springframework.b