Clone this repo:
  1. 469084d dns: remove default DNS server by David Crawshaw · 4 weeks ago master
  2. 590a0bc dhcp: remove broadcast addresses before callback by David Crawshaw · 4 weeks ago
  3. b831a67 Do random number generation all at once. by Matt Perry · 5 weeks ago
  4. e5a0626 Make the list of DNS servers configurable. by Matt Perry · 6 weeks ago
  5. 8cd53b1 Wait 60 seconds to reset connections after closing, not 3. by Matt Perry · 6 weeks ago


Netstack is a network stack written in Go.

Getting started

Try it out on Linux by installing the tun_tcp_echo demo:

go install

Create a TUN device with:

[sudo] ip tuntap add user <username> mode tun <device-name>
[sudo] ip link set <device-name> up
[sudo] ip addr add <ipv4-address>/<mask-length> dev <device-name>

Then run with:

tun_tcp_echo <device-name> <ipv4-address> <port>


We would love to accept contributions, but we have not yet worked out how to handle them. Please contact us before sending any pull requests.

Whatever we do decide on will require signing the Google Contributor License. Please see for more details.


This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.