Hsüan's Blog

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                                     ..

完 😊

© 2019 ~ 2023Hsüan, Powered by Gatsby, Theme Material UI