This guide covers common issues with Pick's network reconnaissance tools.
Port scan returns no results
Symptom: Running port_scan against a target returns zero open ports.
Possible causes:
- Target is unreachable — The host is down or not on the same network.
- Firewall blocking — A firewall is dropping outbound connection attempts.
- Wrong port range — The specified range doesn't include any open ports.
Debugging:
# Verify the target is reachable
ping -c 3 <target>
# Test a known open port manually
nc -zv <target> 22
# Run with debug logging
RUST_LOG=pick_connector::tools=debug cargo run -p pick-connector
Look for:
pick_connector::tools: port_scan starting target="10.0.0.1" ports="1-1024"
pick_connector::tools: port_scan connection_timeout port=80 err="connection timed out"
Tip: If scanning takes a long time, the target may have a firewall that drops packets silently (no RST response). Reduce the port range or increase the timeout.
Traffic capture fails
Symptom: The traffic_capture tool returns an error or no packets.
Possible causes:
- Missing privileges — Packet capture requires root or
cap_net_raw. See the Privileges guide. - Wrong network interface — The tool is capturing on the wrong interface.
- No traffic — There's simply no traffic on the specified interface during the capture window.
Debugging:
# Check available interfaces
ip link show # Linux
ifconfig # macOS
# Verify raw socket access
sudo tcpdump -i any -c 5
If tcpdump works but Pick doesn't, the issue is likely missing capabilities on the Pick binary.
SSDP/UPnP discovery returns empty
Symptom: ssdp_discover finds no devices.
Possible causes:
- No UPnP devices on the network — Not all networks have UPnP-enabled devices.
- Multicast blocked — The network blocks UDP multicast traffic.
- Wrong interface — The discovery is happening on a loopback or inactive interface.
- Firewall blocking UDP 1900 — SSDP uses UDP port 1900 for multicast.
Debugging:
# Test SSDP manually
echo -e "M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nMAN: \"ssdp:discover\"\r\nMX: 3\r\nST: ssdp:all\r\n\r\n" | socat - UDP4-DATAGRAM:239.255.255.250:1900
# Check firewall rules (Linux)
sudo iptables -L -n | grep 1900
mDNS discovery returns empty
Symptom: network_discover (mDNS) finds no services.
Possible causes:
- No mDNS services advertised — No devices are advertising via mDNS/Bonjour.
- mDNS port blocked — Port 5353/UDP must be open for multicast.
- Avahi not running (Linux) — The mDNS responder service may not be active.
Debugging:
# Test mDNS manually
# Linux
avahi-browse -a -t
# macOS
dns-sd -B _http._tcp
If manual tools find services but Pick doesn't, check that Pick is binding to the correct interface.
WiFi scan returns empty
Symptom: wifi_scan returns no networks.
Possible causes:
- Missing privileges — WiFi scanning requires root or
cap_net_admin. See the Privileges guide. - No WiFi interface — The system doesn't have a wireless adapter, or it's disabled.
- Driver issues — The WiFi driver doesn't support scan operations via the nl80211 interface.
Debugging:
# Check for WiFi interfaces (Linux)
iw dev
# Run a manual scan (Linux, requires root)
sudo iw dev wlan0 scan
# macOS
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
Note: WiFi scanning on headless Linux servers without a wireless adapter will always return empty. This tool is designed for devices with WiFi hardware.