
웹 UI를 갖춘 크로스 플랫폼 HTTP 스니퍼
Netgraph는 모든 HTTP 요청/응답을 캡처하여 웹 페이지에 표시하는 패킷 스니퍼 도구입니다.

데스크톱 환경이 설치되지 않은 리눅스 서버에서 Netgraph를 실행하고, 노트북 브라우저에서 http 요청/응답을 모니터링할 수 있습니다.
1. go get github.com/ga0/netgraph
2. $GOPATH/bin/netgraph -i INTERFACE -p PORT 실행
3. 브라우저에서 netgraph 웹 페이지 열기 (예: http://localhost:9000, 9000은 2단계에서 설정한 PORT)
Windows 사용자는 먼저 winpcap 라이브러리를 설치해야 합니다.
-bpf string
berkeley packet filter 설정 (기본값 "tcp port 80")
-i string
인터페이스에서 수신 대기, 인터페이스가 제공되지 않으면 자동으로 하나 선택
-input-pcap string
pcap 파일 열기
-o string
HTTP 요청/응답을 파일에 쓰기, 콘솔에 출력하려면 값 "stdout" 설정
-output-pcap string
캡처된 패킷을 pcap 파일에 쓰기
-output-request-only
HTTP 요청만 파일에 쓰고 응답은 버림. "-o" 옵션이 있을 때만 사용됨. (기본값 true)
-p int
웹 서버 포트. 포트를 '0'으로 설정하면 서버가 실행되지 않음. (기본값 9000)
-s 서버에 HTTP 이벤트 저장
-v 상세 메시지 표시 (기본값 true)
예시: 캡처된 요청을 stdout에 출력:
$ ./netgraph -i en0 -o=stdout
2018/07/26 10:33:24 open live on device "en0", bpf "tcp port 80"
[2018-07-26 10:33:34.873] #0 Request 192.168.1.50:60448->93.184.216.34:80
GET / HTTP/1.1
Host: www.example.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7
content(0)