Docker和Tcpdump周围的薄包装,用于获取来自/到容器的流量

docker-network-capture的Python项目详细描述


#Docker Network Capture

一个用python3编写的小实用程序,可以帮助您调试Docker容器的网络问题。

/>```
$pip3安装docker network capture
```

```
ainer

可选参数:
-h,--帮助显示此帮助消息并退出
--详细
-b桥,--桥桥
docker桥使用
-c捕获,--捕获
要捕获的流量方向[出口,入口gress]
-j,--json缓冲数据并在末尾输出json
-d docker,--docker docker
````

[DNC架构](https://github.com/shaded-enmity/docker-network-capture/blob/master/media/dnc_architecture.jpg"DNC架构")

主进程从"根"开始,创建两个管道生成器,一个用于容器的以太网接口,另一个用于命名空间的loopbacK接口。每个管道都启动自己的"tcpdump"捕获进程,完成后,主进程通过将其uid/gid/groups设置更改为nobody来剥夺自己的权限。在"tcpdump"进程准备好之后,一个新的进程被分叉,它立即以与主进程相同的方式被剥夺特权,然后这个进程通过pcap将原始字节流解析为数据包,并通过"queue"将它们反馈给主进程。



在下面的示例中,我们看到执行"curl google.com"的容器的"docker network capture"输出:

```
$sudo docker network capture--capture=egresss,入口92707a5e8369
输出:10.38.5.26:53
00 01 02 04 05 07 08 09 10 11 13 14 15
+-----------------------------+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————|
+-----------------------------+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————R/>67 6C 65 03 63 6F 6D 00 1C 00 01 gle.com…..|
+-----------------------------+——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————R/>67 6C 65 03 63 6F 6D 00 01 00 01 C0 0C 00 01 gle.com………..|
+---------------------------+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————R/>67 6C 65 03 63 6F 6D 00 00 1C 00 01 C0 0C 00 1C gle.com………...
+-----------------------------+—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-+------------———+
47 45 54 54 20 2F 20 48 54 54 54 54 50 2F 31 2E 31 0D 0D 0A GET/http/1.1
48 6F 73 74 74 3A 20 67 6F 6F 67 6F 67 6C 65 2E 63 6F 6F 6D;主持人:google.com;
0D 0A 55 73 65 72 72 72 72 72 2D 41 67 65 65 65 6E 74 3A 20 63 63 75;.用户代理:CU
/>72 6C 2F 72 6C 2F 37 2E 34 37 2E 34 37 2E 31 0E 34 24 2E 31 0E 31 0E 31 0E 31 0E 31 0 0 0 0 0 7 2E 34 24 D 0A 41 63 65 70 RL/7.47.1..验收|
124;74 3A 20 2A 2F 2A 0D 0A 0D 0A 124T:**…124;
+———————————————————————————————————————————————46 6F 75 http/1.1 302 fou
6E 64 0D 6E 64 0D 0A 43 61 63 63 68 65二维43 6F 6E 74 72 6F nd.cache contro;
6C 3A 20 70 72 68 65 65二维43 43 72 6F 74 nd.cache contro;
65 6E 74 72 72 76 76 76 61 74 65 D 0A 43 6F 6F 6F 6E 74 l:private.cont
65 6E 74 74 74 65 65 65 65 65 65 65 65 65 3A 74 74 74 74 74 74 2F 75 f 75 f 75;74 6D 6C 3B 20 63 61 72 65 74三维55 54 4124;tml;charset=utf,124;
124;2d380d 0a 4C 663 613 6174 6669 6F 6669 6F 6669 6F 3A 20 68 74是124;-8.位置:HT124;
>1244Goo704 3A2F 2F 77 2F 66F 66F 66F 66F 66F 66F 6666 66 66 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 F 67 66 65 5 F 72 64 3D 63 26 65 69$124CZ/?Gfe Ard=Cr&;Ei
3d 50 72 72 63 45 57 57 49 4F 64 49 34 4C 62 38 41 66;=prcewiodiodi4lb8af;
52 34 62 76 64 34 4C 62 34 46 46 46 41 66=prcewiodiodi4lb8af;
52 34 62 76 67 44 44 44 44 44 44 44 44 44 44 54 6E 74 65 6F 0A 43 6F 6 E 74 65 6E 74 65 6E 74 6 E 74 74 r4bvgdq content;
2d
2d4c 65 65 6E 67 67 67 67 67 67 6E 67 67 67 67 65 3A 20 4D 6F 6E 2C 20 31 37 20 4F 63 74 20时间:周一10月17日,10月17日,
32 30 31 31 31 31 31 31 31 31 31 31 31 33 34 34 32 32 20 47 4D 2016 11:34:22通用汽车
54 0D 0D 0D 0A 0A 3C 48 54 4D 4C 4D 4C3E 3C 48 45 41 44 T…<;html>;<;head;
3E 3C 6D 65 65 36 31 31 31 31 31 31 31 31 31 31 31 31 31 31 33 3A 32 32 32 47 47 4D;2016 11:34:22:22通用汽车
;54 0D 0D 0D 0D 0A 0A 0A 0A 3C 48 54 54 4D 3C 4D 4C 4D三维22 63 6F 6E 74 65 6E 74二维74 79 70 65 22|
20 63 6f 6f 6e 74 65 6e 74 3d 74 74 65 74 65 78 74 74 74 74 74 74 2f 68 content="text/h
74 6d 6d 6c 74 74 64 64 74 74 74 74 74 74 3d 74 74 66 2d tml;charset=utf-
38 22 3e 0a 3e 0a 3c 54 54 54 54 54 54 4c 45 3e 33 30 32 20 20 4d 8">;<;title>;302 m
6 6 6 6 6 6f 6f 6f 6f 6e 74 74 65 65 65 74 74 74 74 74 74 74 6d 6c 3b 63 63 63 63 63 63 68 68 68 68 68 68 68 76 65 64 3C 2F 54 49 54 4C 45 E 3C 2F 48 45以上和lt;title>;<;<;<;<;lt;<;H1>;30;<;<;H1>;30;<;<;<;<;<;<;<;>;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;< D 6F文件有MO
76 65 64 0A 3C 41 20 4852 45 46 3d 22 68 74 74.124ved.&a href="htt 124;
1244;70 3A 2F 2F 77 77 77 2E 67 6F 6F 67 6C 65 2E 63$124p://www.google.c.124c;
1244th;7A 2F 3F格菲路=CR&;amp;amp;
3B 65 65 69 3D 50 65 69 3D 50 72 63 45 57 57 49 4F 64 49 34 4C 64 64 34 4C 62;EI=Prcewiwiodi4lb;
38 41 41 66 66 52 34 64 64 64 64 34 34 4C 62;EI=Prcewiwiodi4lb;
3C 2F 41 3E 2E 2E 2E 0E 2E 2E 2E 0A 3C 2F 42 4F 44 59 3E 3E 3C 2F 42 4F 44 59 3E 3E 3C 2F;<;<;<;<;<;<;<;<;<;<;lt;lt;/车身>;//
48 54 4D 4C 3E 0D 0A124html>;。|
+-----------------------------+—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————"5BE60100000000000000000000000066666666666666660000001000010000100001000010000100001000010101",
"SRU端口":"36838",
"接口":"Docker0",
"src":"172.17.170000000000000000000000000000000000000000000000001001001010110101",
"10.385.26"<>"br br br 3">"端口">"5brbr 3">"5.5.5.5">"5.5.5.5">"5.5.5brbr br br br br br 3">"5.5.5.5.5.5brbr br br br 3">"5.5.5.5.5.5brbr br br br 3">"5.5.{br/>"有效载荷":"1DD310000001000000006676F6676C166666666666001C0001",
"端口":"36838",
"接口":"Docker0",
"src":"172.17.0.0.2",
"dst-dst at":"10.38.5.5.26",
"接口":"Docker0">"接口":"Docker0",
"src":"src":"src":"src":"src":"src":"src":"172.172.172.172.172.172.172.172.172.172.172.172.172.172.172.172..172.172.17000006676F667C6503636F0000010C000100000000008904D83AD02E",
"src.port":"53"
"interface":"docker0",
"src":"10.38.5.26",
"dst dst":"172.17.0.2",
"dst port":"36838
br>>"load/"如果你不想走到"港口的港口的港口"的话,就要到"港口的港口"了:53、53、<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<端口":"36838"
},
{
"",<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<,
"interface ":"docker0 ",
"src ":"216.8.208.8.8.8.8.8.<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.58.208.46 ",
"The main port ":"80 "
},
{
"有效载荷":"474554202202202202f0485454502f31231231202E23100A486f7374A320676f676f676f676f676f676f676f676f6a573657573657573657367236363672726c363636367272c36363672e36363672e363672e3636575736363636575736573657367272e3672e363636363657573657365736573657365736722a202202202A2A2A2A200a00a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0,
><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
{
"payload": "485454502f312e312033303220466f75e64406e400A4361636368652D436F6e746F6e746F6e746e746e746e746e746e745454797070653674747474747474747474747474747474363636363636363636363636727474747474545454547474747474747474747474746e74363636363636367474747474747474747474746a6e7436363636363636363654545454545474747474746e74746e74747474746e746e743636363636363636747474747474747474747474747474747474747474747474742510d0a436f6e74656e742d4c656e6774683A2032353803030A34461747474653A20404D6F6E2C20313137204F6374232353203203313131313131313131313131313131313131313131313131313131313333131313131313131313131313131313131313131343434540D204040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404A3A3A3A3A3C4C4C4C4C434343434343434343434344C45型E3C2C4843434343E3C4C434343E3C43434343E3C4C434343E3C43434343E3C43434343E3C43434343E3C4343434343E3C43434343E3343434343E3343434343E3343434343E334343434343E334343434363636363636363636363636363636363636363636363636363636363636363636363634343434343434343434363636363636363636363636363636363636343434343434343434343434343434363636363636363636363636363636363636363636363636363636363636363636363636F424F44593E3C2F4
>>>>>>>>>>>>>><<<<<<<<"interface ":"docker0 ",
"src ":"172.17.17.0.2",
"dst":"216.58.208.208.46",
"dst-dst-port":"80"

{
"payload":",
"src-u-port":"46094",
"interface":"docker0",
"src":"172.17.0.2",
"dst":"216.58.208.46",
"dst-port":"80"

"dst":"216.58.58.208.46",
"dst-dst-port":"dst-port":"80"




{
"payload":",<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<094",
"interface": "docker0",
"src":"172.17.0.2",
"dst":"216.58.208.46",
"dst端口":"80"
}











欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
试图读取字段“java”。lang.反对安卓。util。一对首先   gradle对java的影响。属性作为任务的输入?   java我的return语句不起作用。我做错了什么?   java通用同步代码块[无对象锁定]   macos Java小程序游戏不能在Mac上运行,即使它可以在PC上运行   java Firebase GeoFire设置位置未在服务中工作   java排序字符串对象   java通过JLabel上传背景图像(jpg)后,如何将图像缩放到它所在的面板上?   java无法连接到jsp中的数据库   java如何在整个ant taskdef操作的执行过程中拥有一个singleton类实例   java如何在按键事件中检查JTtextField中的字符串数字验证器   如何最好地输出大型单行XML文件(使用Java/Eclipse)?   内存不足,Java运行时环境无法在Java应用程序中继续运行   java Hibernate连接错误:组织上的NullPointerException。冬眠hql。阿斯特。HqlSqlWalker。createFromJoinElement   linux将参数从shell脚本传递到java类   java对于接受多个参数的setter是否有类似于@JsonCreator的注释?   java在链表中添加节点