- Notifications
You must be signed in to change notification settings - Fork33
A network bridge between a Codespace and a local machine.
github/gh-net
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
🧪The extension is currently in the Preview stage, so some hiccups are expected. Please help us to improveby submitting feedback!
ThisGitHub CLI extension allows you to bridge the network between a Codespace and your local machine, so theCodespace can reach out to any remote resource that is reachable from your machine. In other words, it uses your local machine as a networkgateway to get to those resources.
For instance, if you are using aVPN 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.
This extension requiresGitHub CLI version
v2.8.0and up. Please make sureto upgrade it.If using GitHub CLI <2.13.0 only. The extension relies on
gh codespace sshcommand to establish SSH tunnel to a Codespace. If you useGitHub CLI >=2.13.0 theSSHconfig is created automatically for all your Codespaces, otherwise followSSH setup instructions.If your Codespace uses a non-default image, ensure that both theGitHub CLI,
openssh-server, andsudoare installed inside the codespace. Some distros need ansshgroup too. Please seelinux dependencies doc for per-distro instructions.
gh extension install github/gh-net
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#9 andSSH setup doc for some of the known solutions.
The command will first open a Codespace selection dialog:
Select a codespace and press enter. The extension will connect to selected codespace and start forwarding network traffic:
There are two panels in the connected view of the extension:
- Panel on the left (
NAT) shows the network address translation table for currently opened connections. For stateful protocols(e.g.TCP) the records are cleaned up automatically after a connection is closed, so the records will come and go as connections are established and teardown. For stateless protocols (e.g.UDPorICMP) or unsuccessfulTCPconnections, the records are cleaned up after a delay; hence those may show up in the list for some time. - Panel on the right (
DNS) shows the resolvedDNSrecords, ashostname,record, andtime-to-live(TTL) values.
Pressq orctrl + c to stop the extension.
--gui(-g): Enable/disable GUI mode. [true|false] [default:true]--trace(-t): Specify tracing verbosity. [none|trace|debug|info|warn|error] [default:info]--trace-dest: Specify tracing destination file. [file name] [default:none]--dns(-d): Enable/disable DNS resolution. [true|false] [default:true]--codespace(-c): Codespace name to connect to. [codespace name] [default:none]--telemetry: Enable/disable sending diagnostics telemetry (noPIIdata is sent). [true|false] [default:true]
Rungh net -h for details.
| OS | Intel chip | Apple chip |
|---|---|---|
| Big Sur (v11) | ✅ | ✅ * |
| Monterey (v12) | ✅ | ✅ * |
| Architecture | AMD64 |
|---|---|
| Windows 10 | ✅ |
| Windows 11 | ✅ |
| Distro | Local | Inside Codespace |
|---|---|---|
| Ubuntu | ✅ | ✅ |
| Debian | ✅ | ✅ |
| Fedora | ✅ | ✅ |
| Red Hat | ✅ | ✅ |
| Mint | ✅ | ✅ |
| OpenSUSE | ✅ | ✅ |
| Centos | ✅ | ✅ |
| Kali | ✅ | ✅ |
| Arch | ✅ | ✅ |
| Alpine | ✅ | ✅ * |
| Architecture | Status |
|---|---|
| AMD64 | ✅ |
| ARM64 | ✅ |
| ARMv6 | ✅ |
| ARMv7 | ✅ |
| Name | Status |
|---|---|
| Viscocity | ✅ |
| GlobalProtect | ✅ |
| NordVPN | ✅ |
| Tailscale | ✅ |
Legend: ✅ - supported 🏃 - in progress? - unknown / not tested
For list of supported network protocols refer tothis doc.
- Something is missing? Please create a✨ feature request.
- Something is incorrect? Please create a🐛 bug report.
- For known issues, refer to👉 this list.
About
A network bridge between a Codespace and a local machine.
Topics
Resources
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.

