A fast, high performance Cross-platform lightweight Nat Tracker Server,

Tweet Follow on Twitter GitHub Followers Top Langs

NatTrackerServer

  • A fast, high performance Cross-platform lightweight Nat Tracker Server
  • suport IPv4 and IPv6

image

Tracker Server protocol

1、get NAT public ip and port

Multiple requests, returning multiple different ports, can be used for NAT

//nat

reurn data:

122.44.78.33.223:998

2、Register the (currently returned NAT ip:port) or (public ip:port) and return a list of member ips identified by other uuids

format: //51pwn/P2P&E2E/[uuid]/your_publicIpPort_or_0/your_LanMac-Ips_or_0

send data:

//51pwn/P2P&E2E/46D0F69E-E347-47A7-8E95-43E5BAA95348/33.231.55.111:883,133.23.155.121:1883;33.123.155.11:4883/b6:11:48:10:91:82-1e88::aede:48ff:fe00:1122;90:9c:4a:ce:39:72-fe80::894:75ca:61c3:fbec,192.168.10.17;ca:76:ae:e7:31:9c-fe99::6676:eeff:f117:009c;42:0c:aa:cc:ee:68-172.26.53.10

return data:

122.44.78.33.223:998;192.168.0.56,172.66.0.10,10.10.101.4 [your self ip and port for other member NAT]
22.144.178.133.23:1998 [with you same uuid member]
122.44.78.33.223:1998;192.168.0.56,72.66.0.101,10.10.101.14 [your Lan other member NAT,and member lan ips]
...
  • Why do you need Lan ip(s)? Because multiple nodes are in networks of different depths and levels, they cannot penetrate each other, but they can access the Internet of Things and have the same Internet IP. This design allows them to know the IP of their own intranet, so they can directly connect to each other. network communication without internet

  • why have reg sefl public ip and port? If you have already monitored the port and have a public Internet IP, maybe you need to directly expose the IP and port to the tracker, so that the first one returned by the tracker is no longer Nat's address, but the address given by yourself.

4、between tracker servers protocol

Prevent malicious registration, each IP can only register 10 times per minute register,format: //tcksvr/publicIpPort,eg:

//tcksvr/223.16.111.99:9980;123.116.111.99:980

return all Nat tracker server lists,like this:

223.16.111.99:9980
22.116.11.199:99

client,Users in the intranet, get more NAT trackers to speed up mutual discovery between their own nodes send:

//tcksvr

return all Nat tracker lists,like this:

223.16.111.99:9980
22.116.11.199:99

How build

# server
go build NatTrackerServer.go

# server
go build example/client.go

How run

server

./NatTrackerServer

client

./client -uuid="15f76184-fa9d-47c4-806d-83041a097c3a"

Donation

Wechat Pay AliPay Paypal BTC Pay BCH Pay
paypal [email protected]
Owner
Similar Resources

rconn is a multiplatform program for creating generic reverse connections. Lets you consume services that are behind firewall or NAT without opening ports or port-forwarding.

rconn is a multiplatform program for creating generic reverse connections. Lets you consume services that are behind firewall or NAT without opening ports or port-forwarding.

rconn (r[everse] conn[ection]) is a multiplatform program for creating reverse connections. It lets you consume services that are behind NAT and/or fi

Jan 1, 2023

Internet connectivity for your VPC-attached Lambda functions without a NAT Gateway

Internet connectivity for your VPC-attached Lambda functions without a NAT Gateway

lambdaeip Internet connectivity for your VPC-attached Lambda functions without a NAT Gateway Background I occasionally have serverless applications th

Nov 9, 2022

Create a dynamic fou tunnels works behind NAT

Dynamic Linux Tunneling This software creates Gretap Tunnels over FOU for Dynamic client endpoints. It also works behind NAT444 (CGN-LSN). You can use

Oct 17, 2022

NAT puncher for Wireguard mesh networking.

natpunch-go This is a NAT hole punching tool designed for creating Wireguard mesh networks. It was inspired by Tailscale and informed by this example.

Dec 12, 2022

🖥️ Fast, modern and cross-platform SSH client

🖥️ Fast, modern and cross-platform SSH client

🖥️ Fast, modern and cross-platform SSH client Installation Build from source Requirements for building the project from source: Node 16 Go = 1.17 Wa

Mar 20, 2022

Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

fasthttp Fast HTTP implementation for Go. Currently fasthttp is successfully used by VertaMedia in a production serving up to 200K rps from more than

Jan 5, 2023

Cross-platform, multi-server chat app built using Fyne

Cross-platform, multi-server chat app built using Fyne

Fibro Really early days proof of concept for a cross-platform multi-server chat. Feel free to play, but don't expect it to do much! Features Multiple

Sep 10, 2022

A blockchains platform with high throughput, and blazing fast transactions

A blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high

Dec 18, 2021

🐈🌐 nyaa.si terminal BitTorrent tracker

🐈🌐 nyaa.si terminal BitTorrent tracker

koneko - TUI Client for nyaa.si 🐈 🌐 Download Anime, Literature, Audio, Live Action, Pictures, Software Data - go-nyaa TUI - tview Installation 🔨 go

Dec 30, 2022
netstat-nat - Display NAT entries on Linux systems

netstat-nat This is a reimplementation of the netstat-nat tool, written entirely in Go. It uses the same command line flags and almost the same output

Oct 26, 2021
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

frp README | 中文文档 What is frp? frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it s

Jan 5, 2023
4chain is a simple、fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet.

4Chain What is 4chain? 4chain is a simple、fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. Using the ssh

Nov 1, 2022
the pluto is a gateway new time, high performance, high stable, high availability, easy to use

pluto the pluto is a gateway new time, high performance, high stable, high availability, easy to use Acknowledgments thanks nbio for providing low lev

Sep 19, 2021
🚀Gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.
🚀Gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.

gev 中文 | English gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily bui

Jan 6, 2023
A http-relay server/client written in golang to forward requests to a service behind a nat router from web

http-relay This repo is WIP http-relay is a server/client application written in go(lang) to forward http(s) requests to an application behind a nat r

Dec 16, 2021
Packiffer is a lightweight cross-platform networking toolkit that let you sniff/analyze/inject/filter packets.
Packiffer is a lightweight cross-platform networking toolkit that let you sniff/analyze/inject/filter packets.

Packiffer is a lightweight cross-platform networking toolkit that let you sniff/analyze/inject/filter packets.

Dec 19, 2022
🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。
🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。

English | ???? 中文 ?? Introduction gnet is an event-driven networking framework that is fast and lightweight. It makes direct epoll and kqueue syscalls

Jan 2, 2023