httptap là một công cụ giúp bạn dễ dàng xem các yêu cầu HTTP và HTTPS do chương trình Linux thực hiện
- Có thể dùng
httptap -- để theo dõi các yêu cầu mạng của một lệnh cụ thể
- Ví dụ, khi gửi yêu cầu tới một URL cụ thể bằng lệnh
curl, httptap sẽ in ra yêu cầu và phản hồi tương ứng
httptap không cần quyền root và không ảnh hưởng đến toàn bộ hệ thống
- Hiện chỉ hoạt động trên Linux, và việc port sang hệ điều hành khác là khó khăn
- Cách cài đặt
- Bắt đầu nhanh
- Có thể gửi yêu cầu HTTP bằng lệnh
curl và kiểm tra yêu cầu cũng như phản hồi bằng httptap
- Khi dùng tùy chọn
-L để theo dõi chuyển hướng, sẽ phát sinh thêm các yêu cầu HTTP
- Ví dụ sử dụng với Google Cloud và kubectl
- Có thể theo dõi các yêu cầu HTTP phát sinh khi dùng lệnh
gcloud compute instances list để liệt kê các compute instance trên Google Cloud
- Có thể theo dõi các yêu cầu HTTP phát sinh khi dùng lệnh
kubectl get all để liệt kê tài nguyên trong cụm Kubernetes
- DNS-over-HTTP
- Có thể thực hiện yêu cầu DNS-over-HTTP bằng tùy chọn
--doh-url của curl.
- Có thể dùng
httptap để kiểm tra yêu cầu và phản hồi DNS.
- Xuất HAR
- Có thể dump các yêu cầu và phản hồi HTTP thành tệp HAR.
- Tệp HAR có thể được trực quan hóa bằng nhiều trình xem khác nhau.
- Cơ chế hoạt động
httptap dùng network namespace để chạy lệnh trong môi trường cách ly
- Tạo thiết bị TUN để theo dõi lưu lượng mạng, và tạo một cơ quan chứng thực tạm thời để giải mã lưu lượng HTTPS
- Lưu ý
- Tiến trình không thể lắng nghe các kết nối mạng đi vào.
- Cần quyền truy cập vào
/dev/net/tun.
- Mọi yêu cầu ICMP echo đều chỉ được echo lại mà không gửi gói ICMP ra mạng thực tế
2 bình luận
nó được phát triển tại Monastic Academy ở Vermont, Mỹ. Chúng tôi tin rằng thời khóa biểu tu viện, và rộng hơn là việc thực hành con đường tâm linh Phật giáo, tạo ra những điều kiện lý tưởng cho phát triển công nghệ.
Ý kiến trên Hacker News
Phần "How it was made" trong README thú vị không kém gì bản thân công cụ
http_proxy, và chương trình có thể bỏ qua biến đó/etc/resolv.conf, và tôi tự hỏi liệu có hữu ích không nếu mount thư mục/etc/ca-certificatesbằng CA bundle tạm thờihttptap là một trình truy vết HTTP theo phạm vi tiến trình có thể chạy mà không cần quyền root
httptap <command>để theo dõi các request và response HTTP/HTTPS ra standard outputMột công cụ khác có thể phân tích lưu lượng mạng mà không cần quyền root là rootless Podman và Pasta
--network=pasta:--pcap,myfile.pcapđể ghi lưu lượng mạng vào tệp PCAPDùng thiết bị TUN là một ý tưởng rất hay, và phần "How it was made" là một trong những README hay nhất trên GitHub
Tôi sẽ dùng ngay nó để debug cấu hình nginx
Gần đây tôi đã xây dựng tính năng tương tự trong mitmproxy, nhưng có những trade-off khác
Cách tiếp cận khác dùng LD_PRELOAD có thể thất bại với ELF liên kết tĩnh, ví dụ như binary golang
Đây là một cách tận dụng rất hay TCP/IP stack không gian người dùng của gVisor
Mitmproxy v11.1 cũng có thể thực hiện tính năng tương tự