This guide covers common issues when running paqet and how to resolve them. Most problems fall into a few categories: permissions, network configuration, firewall rules, or encryption mismatches.
Linux: No additional setup needed, just use sudo.macOS: May prompt for administrator password. Ensure you have admin rights.Windows: Run PowerShell or Command Prompt as Administrator.
# Replace <PORT> with your server port (e.g., 9999)sudo iptables -t raw -A PREROUTING -p tcp --dport <PORT> -j NOTRACKsudo iptables -t raw -A OUTPUT -p tcp --sport <PORT> -j NOTRACKsudo iptables -t mangle -A OUTPUT -p tcp --sport <PORT> --tcp-flags RST RST -j DROP
Critical: iptables rules are essential. Without them, the kernel will send RST packets that break connections.
2
Verify network configuration
Double-check all network details:Client config:
network: interface: "en0" # Correct interface? ipv4: addr: "192.168.1.100:0" # Your actual local IP? router_mac: "aa:bb:cc:dd:ee:ff" # Your actual gateway MAC?server: addr: "10.0.0.100:9999" # Correct server IP and port?
Server config:
listen: addr: ":9999" # Port matches network.ipv4.addr?network: interface: "eth0" # Correct interface? ipv4: addr: "10.0.0.100:9999" # Server's actual IP? Port matches listen.addr? router_mac: "aa:bb:cc:dd:ee:ff" # Server's gateway MAC?
Use ip a (Linux) or ifconfig (macOS) to verify your IP address and interface name.
Use arp -n <gateway_ip> to get the gateway MAC address.
3
Check cloud provider firewalls
If your server is in the cloud (AWS, GCP, Azure, etc.), the cloud firewall must allow traffic.AWS Security Groups:
Add inbound rule: TCP, port 9999 (or your port), source 0.0.0.0/0
GCP Firewall Rules:
Create rule allowing TCP ingress on your port
Azure Network Security Groups:
Add inbound security rule for your port
Cloud firewalls are separate from iptables. Both must be configured correctly.
4
Verify NAT and port configuration
Server: The port in listen.addrmust match the port in network.ipv4.addr:
listen: addr: ":9999" # Port 9999network: ipv4: addr: "10.0.0.100:9999" # Port 9999 (must match)
Client: Use port 0 in network.ipv4.addr for automatic assignment:
network: ipv4: addr: "192.168.1.100:0" # Port 0 = random
# 1. Run dump on server to see if packets arrivesudo ./paqet dump -p 9999# 2. Run ping from clientsudo ./paqet ping -c config.yaml# 3. Check dump output# - Packets arriving? Configuration is mostly correct.# - No packets? Network config issue (IP, MAC, interface).
# Good choices:listen: addr: ":9999" # Non-standard high port# Bad choices:# addr: ":80" # HTTP - conflicts with web servers# addr: ":443" # HTTPS - conflicts with TLS# addr: ":22" # SSH - conflicts with SSH server
Recommended ports: 8888, 9999, 10000-65535
The iptables rules configured for paqet can affect outbound connections from the server if you use standard ports. This is why non-standard ports are required.
Before reporting issues, always test with paqet ping first. This helps isolate whether the problem is with basic connectivity or application-level functionality.