美文网首页
docker container里如何使用tcpdump

docker container里如何使用tcpdump

作者: CodingCode | 来源:发表于2020-02-08 06:18 被阅读0次

docker container里如何使用tcpdump

参考的原文:
https://medium.com/@xxradar/how-to-tcpdump-effectively-in-docker-2ed0a09b5406

  1. 创建一个tcpdump image,当然可以取任意名字啦。
$ docker build -t tcpdump - <<EOF 
FROM oraclelinux
RUN yum install -y tcpdump 
CMD tcpdump -i eth0 
EOF

当然可以从ubuntu创建,我这个例子使用了oraclelinux,因为比较熟悉。
另外如果在build image的时候需要设置proxy,那么:

$ export PROXY=http://<host>:<port>
$ docker build -t tcpdump --build-arg http_proxy=${PROXY} --build-arg https_proxy=${PROXY} ...
  1. 监听目标contianer
$ TARGETCONT=wwwnginx
$ docker run -it --net=container:${TARGETCONT} tcpdump
  1. 监听指定端口
$ docker run -it --net=container:${TARGETCONT} tcpdump tcpdump -N -A 'port 8080'
$ docker run -it --net=container:${TARGETCONT} tcpdump tcpdump -s 0 tcp port 8080 -w loghttp.cap
  • 假设wwwnginx的服务在容器内监听在端口8080
  • 第一个tcpdump是image名字,第二个tcpdump是执行的命令名字,这样覆盖了image的默认命令行。
  • "-w" 参数是把输出写到文件(注意这里会到容器内去),然后文件可以拷贝出来用wireshark进行分析。

相关文章

网友评论

      本文标题:docker container里如何使用tcpdump

      本文链接:https://www.haomeiwen.com/subject/dfmbxhtx.html