2021-04-09
探查 docker 的網路狀態
先將要取資料的容器 A 開啟
docker run --rm -it --name curl --entrypoint="" sstc/curl /bin/bash
開啟另一個有 tcpdump 的容器 B 綁定 A 的網路
(這裡使用 nicolaka/netshoot Image 作為例子)
docker run --rm -it --net container:curl nicolaka/netshoot tcpdump -Xvv
在容器 A 行使要被探查的行為
# curl google.com
接下來就可以在 B 看到封包了
...
118cdb34f6cf.33256 > lax17s49-in-f14.1e100.net.80: Flags [P.], cksum 0x8401 (incorrect -> 0x21a7), seq 1:75, ack 1, win 502, length 74: HTTP, length: 74
GET / HTTP/1.1
Host: google.com
User-Agent: curl/7.69.1
Accept: */*
0x0000: 4500 0072 a5b8 4000 4006 1131 ac11 0003 E..r..@.@..1....
0x0010: 8efa 488e 81e8 0050 9b12 05a1 1afe ce49 ..H....P.......I
0x0020: 5018 01f6 8401 0000 4745 5420 2f20 4854 P.......GET./.HT
0x0030: 5450 2f31 2e31 0d0a 486f 7374 3a20 676f TP/1.1..Host:.go
0x0040: 6f67 6c65 2e63 6f6d 0d0a 5573 6572 2d41 ogle.com..User-A
0x0050: 6765 6e74 3a20 6375 726c 2f37 2e36 392e gent:.curl/7.69.
0x0060: 310d 0a41 6363 6570 743a 202a 2f2a 0d0a 1..Accept:.*/*..
0x0070: 0d0a ..
完 😊