Cách tạo tcpdump để hiển thị ip và số cổng nhưng không phải tên máy chủ và giao thức


42

Tôi đang sử dụng tcpdump cho một số thử nghiệm Tôi muốn xem IP và số cổng nhưng đầu ra của tcpdump giống như

IP pl1snu.koren.kr.http > kitch.pl.sophia.inria.fr.dnp: Flags [P.], seq 54:72, ack 1, win 5792, length 18

Nó chỉ hiển thị tên máy chủ và giao thức cho http, thật dễ dàng để biết nó là 80 nhưng đối với dnp tôi phải tìm kiếm

Vì vậy, có thể làm thế nào để làm cho tcpdump hiển thị ip và số cổng nhưng không phải tên máy chủ và giao thức nếu vậy, làm thế nào? cảm ơn

Câu trả lời:


44

Thêm vào dòng lệnh -ncủa bạn tcpdump.

Từ trang tcpdump :

-n Don't convert addresses (i.e., host addresses, port numbers, etc.) to names.

Cũng cần lưu ý rằng trên Fedora (và có lẽ các công cụ phái sinh khác: RHEL, CentOS, v.v.), họ đã phiên bản tcpdump ban đầu để bao gồm một tùy chọn riêng -nnđể xóa số cổng. Từ trang hướng dẫn :

-n     Don't convert host addresses to names.   This  can  be  used  to
              avoid DNS lookups.

-nn    Don't convert protocol and port numbers etc. to names either.

số cổng vẫn được chuyển đổi thành tên giao thức bằng cách sử dụng-n
misteryes

"số cổng vẫn được chuyển đổi thành tên giao thức bằng cách sử dụng -n" Bạn đang thấy phiên bản tcpdump nào - không ngăn chặn việc chuyển đổi số cổng thành tên giao thức?

5

Tôi sử dụng -nntham số.

-nn: Không giải quyết tên máy chủ hoặc tên cổng.

Chạy nó như:

tcpdump -nn 

2

-nchỉ hoạt động cho tên máy chủ, nhưng không hoạt động cho số cổng. -nnkhông lừa cho cả hai. Đây là phiên bản tcpdump 4.5.1 trên Fedora 20 gnu / linux. Câu trả lời bị bỏ qua của @ATMc là chính xác duy nhất. Đáng buồn là tôi không thể nâng cao nó cũng như không viết bình luận bên dưới vì nghiệp thấp.


1

Tôi nghĩ rằng cách tiếp cận tốt nhất là:

sudo tcpdump -ni any

Các bước để kiểm tra:

  1. Mở một giao diện điều khiển và gõ:

    sudo nc -l -p 6666
    
  2. Mở một giao diện điều khiển khác và gõ:

    sudo tcpdump -ni any
    

    Nếu đầu ra quá dài dòng, bạn có thể lọc nó ra ( | grep -v "patter1n|pattern2")

  3. Mở bàn điều khiển thứ ba và gõ:

    telnet localhost 6666
    

Sản lượng dự kiến:

10:37:13.770997 IP 127.0.0.1.56920 > 127.0.0.1.443: Flags [S], seq 2822288041, win 43690, options [mss 65495,sackOK,TS val 1028779 ecr 0,nop,wscale 7], length 0

Nếu bạn sử dụng, sudo tcpdump -i anybạn sẽ thấy một cái gì đó như thế này:

10:38:22.106022 IP localhost.56924 > localhost.https: Flags [S], seq 3147104744, win 43690, options [mss 65495,sackOK,TS val 1045863 ecr 0,nop,wscale 7], length 0

1
Điều đó cũng giống như câu trả lời khác - -i anykhông cần thiết nếu bạn muốn loại bỏ chuyển đổi địa chỉ / cổng thành tên, đó mới chỉ -nlà vấn đề.

-2
tcpdump -i eth0 -p -nn | grep "IP" | awk '{print$3 ,$4 ,$5}' | sed 's/://'

1
tôi không hiểu được
Pierre.Vriens

1
Trong khi câu hỏi nói rằng ip hiển thị ip và số cổng nhưng không phải tên máy chủ và giao thức, thì tôi nghi ngờ rằng nó có nghĩa là ip hiển thị ip và số cổng chứ không phải bất kỳ thông tin nào khác. (Tôi có thể sai, nhưng dường như không ai khác giải thích câu hỏi theo cách bạn đã làm.) Vì vậy, câu trả lời của bạn dường như rút ngắn thành hai phần: (1) sử dụng  -nnđể hiển thị các dịch vụ như là http http và và dnpiêu như một cổng số thay vì tên (đã được trình bày trong ba câu trả lời trước) và (2) sử dụng  awkđể loại bỏ dữ liệu trên nội dung gói (có thể không mong muốn).
Scott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.