Làm thế nào để có được traceroute trên cygwin?


14

Việc thực hiện traceroute (tracert) khác nhau trên Windows và Unix. Tôi muốn so sánh cả hai với Wireshark. Bây giờ tôi đang dùng Windows 7 và tôi muốn nhanh chóng thực hiện traceroute Unix.

Ý tưởng đầu tiên của tôi là lấy nó bằng MSYS hoặc Cygwin. Tôi đã cài đặt Cygwin với các gói "inetutils *", nhưng không có lệnh traceroute và thực thi tương ứng trong /usr/bin/.

Tôi cũng đã thử tìm kiếm "traceroute" với tìm kiếm gói Cygwin và tìm thấy chuỗi con này trong danh sách các tệp "zsh". Tôi đã cài đặt zsh và đã thử traceroutetcptraceroutekhông có kết quả.

Gói nào tôi nên kiểm tra để cài đặt traceroute và có traceroute cho Cygwin không?

Câu trả lời:


14

Không có traceroutetrong các gói Cygwin, vì tracertluôn có sẵn trên Windows. Xem https://cygwin.com/ml/cygwin/2005-12/msg00443.html để biết một chủ đề thảo luận ngắn gọn về điều này. Bạn có thể thử biên dịch kiểu Unix traceroutetừ nguồn usg Cygwin.

Nếu bạn muốn so sánh kiểu Windows với kiểu tracertUnix traceroute, tôi khuyên bạn nên chạy traceroutetrên Unix hoặc Linux, vì các ngăn xếp mạng là khác nhau; vì vậy, chạy kiểu Unix traceroutetrên Windows sẽ không cung cấp cho bạn các dấu vết mạng tương tự như kiểu tracerouteUnix trên Unix.


3
pingcũng tồn tại trên Windows, nhưng có sẵn cho Cygwin :) Dù sao đi nữa, cảm ơn câu trả lời của bạn. Có lẽ tôi sẽ cố gắng biên dịch traceroutecho Cygwin bằng tay.
Kirill

4
Điểm công bằng, và traceroutecung cấp khá nhiều tính năng hơn tracert.
Stephen Kitt

4

Ok, như Stephen Kitt nói rằng không có sẵn sàng sử dụng nhị phân theo dõi cho Cygwin. Đó là lý do tại sao tôi cố gắng tự biên dịch nó.

Tôi có thể thấy có traceroute hiện đại nhưng theo mô tả của nó, nó không thể được sử dụng với các nhân Linux cũ và đối với tôi, quá trình biên dịch bị kẹt khi thiếu "dccp.h" và tôi đã bỏ cuộc.

Tôi đã có thể biên dịch triển khai cũ , nhưng nó hoạt động như không thể thấy các phản hồi ICMP trên TTL bị vượt quá (có dấu hoa thị thay vì kết quả):

1 * * *

2 * * *

Có lẽ nó yêu cầu một số bản sửa lỗi để hoạt động trên Cygwin và đó là lý do tại sao không có gói traceroute cho Cygwin.

Tôi đã kiểm tra với Wireshark và thấy nó sử dụng các gói kiểm tra UDP và các phản hồi ICMP tương ứng được gửi chính xác. Tôi muốn lưu ý rằng trình theo dõi cũ này hoạt động chậm như tracertcác nút của Win ("truy vấn" từng cái một). Traceroute hiện đại cho kết quả rất nhanh.


2

Tôi đã có thể xây dựng một cổng mtrtrong Cygwin32 bằng cách sử dụng các hướng dẫn:

https://github.com/traviscross/mtr/

MTR là một công cụ theo dõi mã nguồn mở thay thế. Nó có cả giao diện văn bản GUI và Ncurses. Nó không chính xác là traceroute cổ điển, nhưng tôi thích nó hơn.

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.