samyk/pwnat

The only tool/technique to punch holes through firewalls/NATs where multiple clients & server can be behind separate NATs without any 3rd party involvement....

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 45 minutes ago
Added to GitGenius on September 17th, 2026
Created on August 10th, 2012
Open Issues & Pull Requests: 21 (+0)
GitHub issues: Enabled
Number of forks: 510
Total Stargazers: 3,927 (+0)
Total Subscribers: 142 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 146.3 days
Mean response time: 180.3 days
90th percentile: 317.0 days
Tracked items: 3

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,189 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

pwnat is a tool that enables direct communication between clients and servers that are each behind separate NATs without requiring port forwarding, third-party services, or router configuration.

The tool solves the problem of establishing peer-to-peer connections across NAT boundaries by exploiting properties of NAT translation tables. Its approach uses a two-phase technique: the server continuously sends ICMP echo requests to a fixed address, and when a client wants to connect, it sends an ICMP Time Exceeded packet back to the server containing the original packet. This allows the server to learn the client's public IP address without prior knowledge. Once both endpoints know each other's public addresses, they can establish direct communication by crafting packets that traverse the NAT translation tables, effectively punching through the firewall without spoofing or DNS manipulation.

The tool suits developers who need to run services behind NATs without administrative access to routers or the ability to configure port forwarding. It works whether one or both endpoints are behind NATs, and can tunnel any TCP-based service including HTTP, SSH, FTP, or game servers. The README indicates the tool will work behind many corporate NATs and firewalls but acknowledges it will not work behind all of them, so testing in your specific environment is necessary before relying on it for production use.

Development activity on the project appears minimal, with no recent commits or active maintenance indicated in the repository details provided.