github / gh-net

A network bridge between a Codespace and a local machine.
https://github.com/github/gh-net
289 stars 22 forks source link
cli codespaces gh-extension network

Codespaces Network Bridge

๐Ÿงช The extension is currently in the Preview stage, so some hiccups are expected. Please help us to improve by submitting feedback!

image

This GitHub CLI extension allows you to bridge the network between a Codespace and your local machine, so the Codespace can reach out to any remote resource that is reachable from your machine. In other words, it uses your local machine as a network gateway to get to those resources.

For instance, if you are using a VPN client to connect to private enterprise network to access a database or any other remote resources, this extension enables you to use those private resources from within a Codespace.

About GitHub CLI.

Prerequisites

  1. This extension requires GitHub CLI version v2.8.0 and up. Please make sure to upgrade it.

  2. If using GitHub CLI < 2.13.0 only. The extension relies on gh codespace ssh command to establish SSH tunnel to a Codespace. If you use GitHub CLI >=2.13.0 the SSH config is created automatically for all your Codespaces, otherwise follow SSH setup instructions.

  3. If your Codespace uses a non-default image, ensure that both the GitHub CLI, openssh-server, and sudo are installed inside the codespace. Some distros need an ssh group too. Please see linux dependencies doc for per-distro instructions.

Installation

gh extension install github/gh-net

Usage

To start network forwarding from a Codespace to a local machine, run:

gh net

Note: on Windows, you need to use a command prompt launched with Administrator privileges.

Connection issues? Please see https://github.com/github/gh-net/issues/9 and SSH setup doc for some of the known solutions.

The command will first open a Codespace selection dialog:

image

Select a codespace and press enter. The extension will connect to selected codespace and start forwarding network traffic:

image

There are two panels in the connected view of the extension:

Press q or ctrl + c to stop the extension.

CLI Options

Run gh net -h for details.

Supported platforms

Mac OSx

OS Intel chip Apple chip
Big Sur (v11) โœ… โœ… *
Monterey (v12) โœ… โœ… *

Windows

Architecture AMD64
Windows 10 โœ…
Windows 11 โœ…

Linux

Distro Local Inside Codespace
Ubuntu โœ… โœ…
Debian โœ… โœ…
Fedora โœ… โœ…
Red Hat โœ… โœ…
Mint โœ… โœ…
OpenSUSE โœ… โœ…
Centos โœ… โœ…
Kali โœ… โœ…
Arch โœ… โœ…
Alpine โœ… โœ… *

Supported Linux architectures

Architecture Status
AMD64 โœ…
ARM64 โœ…
ARMv6 โœ…
ARMv7 โœ…

Tested VPN Clients

Name Status
Viscocity โœ…
GlobalProtect โœ…
NordVPN โœ…
Tailscale โœ…


Legend: โœ… - supported ๐Ÿƒ - in progress ? - unknown / not tested


For list of supported network protocols refer to this doc.

Troubleshooting

Useful links