NoRouter (IP-over-Stdio): Unprivileged instant multi-cloud networking

NoRouter

NoRouter is the easiest multi-host & multi-cloud networking ever:

  • Works with any container, any VM, and any baremetal machine, on anywhere, as long as the shell access is available (e.g. docker exec, kubectl exec, ssh)
  • Omnidirectional port forwarding: Local-to-Remote, Remote-to-Local, and Remote-to-Remote
  • No routing configuration is required
  • No root privilege is required (e.g. sudo, docker run --privileged)
  • No public IP is required
  • Provides several network modes
    • Loopback IP mode (e.g. 127.0.42.101, 127.0.42.102, …)
    • HTTP proxy mode with built-in name resolver
    • SOCKS4a and SOCKS5 proxy mode with built-in name resolver
  • Easily installable with a single binary, available for Linux, macOS, BSDs, and Windows

NoRouter implements unprivileged networking by using multiple loopback addresses such as 127.0.42.101 and 127.0.42.102.

The hosts in the network are connected by forwarding packets over stdio streams like docker exec, kubectl exec, ssh, and whatever.

Unlike traditional port forwarders such as docker run -p, kubectl port-forward, ssh -L, and ssh -R, NoRouter provides mutual interconnectivity across multiple remote hosts.

overview


Getting Started

How to download and install NoRouter. Please read first.

Examples

Examples for Docker, Podman, Kubernetes, LXD, SSH, …

Troubleshooting

Troubleshooting guide.

Command reference

The usage of norouter command.

YAML reference

How to write manifest YAML files.

How NoRouter works under the hood

How NoRouter works under the hood.

Roadmap

Project roadmap.

Similar projects

Similar projects.

Artwork

NoRouter artwork images.

Last modified December 17, 2020: add artwork (c8ab035)