garfieldwtf/network-tester

By garfieldwtf

Updated 1 day ago

A comprehensive firewall testing container with TCP/UDP services and network diagnostic tools.

Image
Networking
Security
Monitoring & observability
1

8.0K

garfieldwtf/network-tester repository overview

garfieldwtf/network-tester

Docker Pulls Docker Stars Docker Image Size

A comprehensive all-in-one network testing container combining:

📋 Quick Start

# Pull the image
docker pull garfieldwtf/network-tester:latest

# Run with host network (recommended)
docker run --network host --privileged -d --name network-tester garfieldwtf/network-tester:latest

# Run with explicit port mappings
docker run -d --name network-tester \
  -p 80:80 -p 443:443 -p 5000:5000 -p 161:161/udp \
  --privileged \
  garfieldwtf/network-tester:latest

📡 Exposed Ports

PortProtocolServiceDescription
80TCPHTTPNginx web server with status page
443TCPHTTPSNginx with 10-year self-signed SSL
5000TCPFlask AppWeb-based network testing tool
161UDPSNMPSNMP v2c with "public" community

🛠️ Complete Toolset

Network Diagnostics

ping arping hping3 traceroute mtr tcptraceroute fping

Scanning & Analysis

nmap nmap-ncat nmap-nping arp-scan netcat socat

DNS Tools

dig nslookup drill host bind-tools

Packet Capture

tcpdump tshark scapy

Performance Testing

iperf3 speedtest-cli bmon iftop vnstat htop

Web Tools

curl wget testssl.sh openssl

System Tools

ip ss ifconfig netstat iptables lsof ethtool jq

💻 Command Examples

Basic Connectivity
# Test HTTP
curl -v http://localhost:80
curl -I http://localhost:80

# Test HTTPS
curl -vk https://localhost:443
openssl s_client -connect localhost:443

# Test SNMP
snmpget -v 2c -c public localhost sysDescr.0
snmpwalk -v 2c -c public localhost system

# Test UDP port
nc -uzv localhost 161
Port Scanning
# Quick port scan
nmap -p 80,443,5000 localhost

# UDP scan
nmap -sU -p 161 localhost

# Service detection
nmap -sV -p 80,443 localhost

# Full port range
nmap -p- localhost

# OS detection
nmap -O localhost

# Aggressive scan
nmap -A localhost
DNS Testing
# Basic lookups
dig google.com A
dig google.com AAAA
dig -x 8.8.8.8

# Record types
dig google.com MX
dig google.com NS
dig google.com TXT

# Using nslookup
nslookup google.com
nslookup -type=MX google.com

# Resolution time
dig google.com +stats
Network Diagnostics
# Ping with timestamp
ping -D google.com

# Traceroute variants
traceroute -I google.com  # ICMP
traceroute -T google.com  # TCP
traceroute -U google.com  # UDP

# MTR report
mtr --report --report-cycles 10 google.com

# TCP traceroute
tcptraceroute google.com 80

# Fast ping sweep
fping -a -g 192.168.1.0/24

# ARP scan
arp-scan --local
arp-scan --interface=eth0 192.168.1.0/24
Packet Capture
# Capture HTTP
tcpdump -i any -n port 80

# Capture HTTPS handshake
tcpdump -i any -n port 443 -vv -X

# Save to file
tcpdump -i any -n -w capture.pcap

# Read capture
tcpdump -r capture.pcap

# Filter by host
tcpdump -i any host 192.168.1.100

# Using tshark
tshark -i any -f "port 80"
Performance Testing
# Bandwidth test
iperf3 -c iperf.he.net

# UDP test
iperf3 -c iperf.he.net -u

# Bidirectional
iperf3 -c iperf.he.net --bidir

# Speed test
speedtest-cli
speedtest-cli --simple
speedtest-cli --bytes

# Monitor bandwidth
iftop
iftop -i eth0
bmon
vnstat -d
SSL/TLS Testing
# Certificate details
openssl s_client -connect google.com:443

# Check expiration
echo | openssl s_client -connect localhost:443 2>/dev/null | openssl x509 -noout -dates

# TestSSL.sh
testssl.sh localhost
testssl.sh --protocols localhost

# Cipher check
nmap --script ssl-enum-ciphers -p 443 localhost
HTTP/HTTPS Testing
# Get headers
curl -I https://example.com

# Follow redirects
curl -L http://google.com

# POST request
curl -X POST -d "test=data" http://localhost:5000/test

# Download file
wget --progress=bar http://speedtest.tele2.net/10MB.zip

# Test methods
curl -X OPTIONS http://localhost:80 -i
Advanced Network
# Custom packets with hping3
hping3 -S -p 80 localhost   # SYN scan
hping3 -2 -p 161 localhost  # UDP packet
hping3 --flood -p 80 localhost  # Flood test

# Port forwarding
socat TCP-LISTEN:8080,fork TCP:localhost:80

# UDP listener
socat UDP-LISTEN:5000,fork -
System Information
# List listening ports
netstat -tulpn
ss -tulpn
lsof -i

# Show routing
ip route show
route -n

# Interface stats
ip -s link show
ethtool eth0

# Firewall rules
iptables -L -n -v

🌐 Web Interface (Port 5000)

Access http://localhost:5000 for the web-based testing tool:

Basic Tools Tab
  • Ping - Test connectivity with custom count
  • Traceroute - Trace network path
  • MTR - Combined ping + traceroute
  • ARP Scan - Local network discovery
Port Scanner Tab
  • TCP/UDP scanning with custom ports
  • Port ranges (e.g., 80,443,8080 or 1-1000)
  • Banner grabbing
  • Multi-threaded scanning
DNS Tools Tab
  • A/AAAA record lookup
  • Reverse DNS
  • MX, NS, TXT, CNAME, SOA records
HTTP/SSL Tab
  • HTTP header inspection
  • SSL certificate details
  • Status code checking
  • Response time measurement
Network Info Tab
  • Interface details (MAC, IPv4, IPv6)
  • Active connections
  • Bandwidth test
  • Public IP (IPv4/IPv6)
  • GeoIP location
WHOIS & Lookup Tab
  • Domain WHOIS information
  • IP geolocation
  • IP subnet calculator

🏗️ Architecture Support

This image is built for multiple architectures:

  • linux/386
  • linux/amd64
  • linux/arm64/v8
  • linux/arm/v7
  • linux/arm/v6
  • linux/s390x
  • linux/ppc64le
  • linux/riscv64

Docker automatically selects the correct version for your system.

🔧 Firewall Testing Workflows

Test Firewall Rules
# Check if HTTP allowed
curl http://target-server:80

# Verify HTTPS blocked
curl -k https://target-server:443

# Test UDP SNMP access
snmpget -v 2c -c public target-server sysDescr.0

# Comprehensive port scan
nmap -p- target-server
Troubleshoot Connectivity
# Check gateway
ping -c 4 $(ip route | grep default | awk '{print $3}')

# Find packet drops
traceroute remote-server

# Analyze traffic
tcpdump -i eth0 host problematic-server

# Test DNS
dig problematic-domain.com
Security Auditing
# Scan for open ports
nmap -sV -p 1-1000 192.168.1.0/24

# Check SSL config
testssl.sh https://target-site.com

# Find unauthorized devices
arp-scan --local

# Enumerate services
nmap -sV -sC target-server

⚠️ Important Notes

Privileged Mode Required For:
  • Raw socket operations (hping3)
  • Packet capture (tcpdump, tshark)
  • ARP operations (arp-scan)
  • Interface configuration
  • iptables manipulation
Host Network Benefits:
  • Full network visibility
  • No port conflicts
  • Real source IPs
  • Access to all interfaces
  • Better performance
Security Considerations:
  • Testing Only: Not for production
  • Default SNMP: Change "public" in production
  • Self-Signed Cert: Browser warnings normal
  • Root Access: Container runs as root
  • Network Exposure: Be careful on untrusted networks
Troubleshooting:
# Check logs
docker logs network-tester

# Test health endpoint
curl http://localhost:5000/health

# Verify ports (without host network)
netstat -tulpn | grep -E ':(80|443|5000|161)'

# Fix permissions
docker run --privileged ...

🐳 Docker Hub Commands

# Pull image
docker pull garfieldwtf/network-tester:latest

# Run interactive shell
docker run -it --rm --network host --privileged garfieldwtf/network-tester:latest bash

# Run with specific architecture
docker run --platform linux/arm64 --network host --privileged garfieldwtf/network-tester:latest

# Stop container
docker stop network-tester

# Remove container
docker rm network-tester

# View logs
docker logs -f network-tester

Created by garfieldwtf • For legitimate network testing only

Tag summary

Content type

Image

Digest

sha256:9b376198f

Size

116.8 MB

Last updated

1 day ago

docker pull garfieldwtf/network-tester