binwiederhier/natter là dự án mã nguồn mở trên GitHub, viết chủ yếu bằng Go, với 42 sao. [EXPERIMENTAL] A peer-to-peer TCP port forwarding library using NAT traversal with QUIC
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
natter: A peer-to-peer TCP port forwarding library using NAT traversal with QUIC
natter is a peer-to-peer TCP port forwarding library and command line tool. It connects two clients across the Internet,
even if they are behind a NAT via UDP hole punching
(NAT traversal) as per RFC 5128.
Connections are brokered (but not relayed!) via a rendevous server ("broker"), and tunneled via the QUIC protocol.
The command line utility natter implements the broker and the client. The library is natively written in Go, but
provides a C library (and can be used in C/C++).
Project Status
While the functionality is very close to what I want the library to be, the project and library API is a
work in progress, mostly because this is my first Go project.
Building
You'll need Go 1.12+ and a protobuf compiler.
Pretty much everything can be compiled with make:
Build:
make all - Build all deliverables
make cmd - Build the natter CLI tool & Go library
make lib - Build the natter C/C++ library
make clean - Clean build folder
Examples:
example_echo_[_run] - Build/run echo client/server example
example_simple_go[_run] - Build/run simple Go example
example_simple_c[_run] - Build/run simple C example
example_simple_cpp[_run] - Build/run simple C++ example
Examples
We provide a few code examples for Go, C and C++ in the example directory. Please note that for obvious
reasons, all examples operate on localhost, but they could work across multiple systems.
You can also run examples via make.
TCP port forwarding using the natter CLI
Let's assume we have 3 machines, an Internet facing broker and two clients behind different NATs alice and bob.
First, start the broker on port 10000 (let's assume it listens on IP 1.2.3.4):
broker> natter -broker :10000
Then start client Bob, and listen for incoming connections:
bob> natter -id bob -broker 1.2.3.4:10000 -listen
And finally start client Alice, and forward local TCP connections on 8022 to bob's TCP port 22 (SSH). After that,
Alice can connect to Bob's SSH server by connecting to localhost:8022:
STDIN-to-remote-command forwarding using the natter CLI
This is a fun example. It forwards the output of a local command to the input of a remote command, again, assuming
that your broker is listening on 1.2.3.4:10000 and your remote client is Bob, like above:
alice> cat /etc/natter/natter.conf
ClientId alice
BrokerAddr 1.2.3.4:10000
alice> cat /dev/zero | natter :bob: sh -c 'cat > zeros'
Using the Go library
Here's the same example on two clients and a broker on localhost. To run it, first ensure that you are using Go modules by initializing a module via go mod init main. Then create nattertest.go:
binwiederhier/natter có 42 sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/binwiederhier/natter. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
binwiederhier/natter có phải mã nguồn mở không?
Có — binwiederhier/natter phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/binwiederhier/natter.
binwiederhier/natter có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho binwiederhier/natter. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
binwiederhier/natter là gì?
binwiederhier/natter (binwiederhier/natter) là dự án Go trên GitHub. Theo mô tả gốc: [EXPERIMENTAL] A peer-to-peer TCP port forwarding library using NAT traversal with QUIC
Đọc thêm về binwiederhier/natter ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/binwiederhier/natter là nguồn chính thức.
Đọc đầy đủ README ở tab phía trên.
natter có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về natter.