Skip to content

This repository contains a collection of Go experiments demonstrating NAT hole punching techniques. NAT hole punching is a method used to establish communication between devices behind different Network Address Translators (NATs).

Notifications You must be signed in to change notification settings

metinagaoglu/nat-hole-punch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

NAT Hole Punching Experiments in Go

This repository contains a collection of Go experiments demonstrating NAT hole punching techniques. NAT hole punching is a method used to establish communication between devices behind different Network Address Translators (NATs).

Introduction

NAT (Network Address Translation) is a common technology used in routers and firewalls to map multiple private IP addresses to a single public IP address. This can cause challenges when trying to establish direct communication between devices behind different NATs.

This project explores various NAT hole punching techniques and provides code samples and explanations for each.

Build for osx

GOOS=darwin GOARCH=amd64 go build -o client-osx *.go

/client c

/client s

Examples

/client c 192.168.0.11:3986 4545 ./client s

Useful resources

About

This repository contains a collection of Go experiments demonstrating NAT hole punching techniques. NAT hole punching is a method used to establish communication between devices behind different Network Address Translators (NATs).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published