gh-net icon indicating copy to clipboard operation
gh-net copied to clipboard

No Connectivity to Local Resources

Open jacobwoffenden opened this issue 3 years ago • 5 comments

Describe the bug I am unable to connect to resources local to my device

Reproduce steps Steps to reproduce the behavior:

  1. Install gh and gh-net on macOS
  2. Launch a GitHub Codespace with following definition
    {
      "name": "devcontainer",
      "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
      "features": {
        "ghcr.io/devcontainers/features/common-utils:1": {
          "installZsh": "true",
          "installOhMyZsh": "true",
          "upgradePackages": "true",
          "nonFreePackages": "false"
        },
        "ghcr.io/devcontainers/features/sshd:1": {},
        "ghcr.io/devcontainers/features/github-cli:1": {}
      }
    }
    
  3. Start gh-net on macOS
    gh net start --codespace ${CODESPACE_NAME} --trace trace --trace-dest ~/codespace-trace.log
    

Expected behavior Connections from GitHub Codespace to local resources work, e.g. SSH to A.B.C.D

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: macOS
  • Version: 13.0
  • Platform architecture: Apple M1

Additional context I have disabled the macOS firewall

Logs I've dumped my local gh-net log to https://gist.github.com/jacobwoffenden/638a8502792bb88e993c92978ed87f4f, please let me know what specific log you would like from the GitHub Codespace

jacobwoffenden avatar Nov 09 '22 21:11 jacobwoffenden

@jacobwoffenden, the scenario you describe is different from the main flow we've intended to support with this tool, but I'm getting more and more requests to support this, so I will prioritize it.

Could you share more info on how you would expect to reach the local resources? e.g. would you like a reserved DNS name for that, or would you want to request a specific IP address of your machine's network interface IP address?

Related issue: https://github.com/github/gh-net/issues/44

legomushroom avatar Dec 05 '22 21:12 legomushroom

Hey @legomushroom,

Apologies if I've misunderstood or worded my issue incorrectly!

Based on:

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

I assumed I could:

  1. Start a GitHub Codespace
  2. Fire up gh net on my MacBook
  3. Connect from GitHub Codespace to something local to my MacBook

Redoing my test, I've:

  1. Created a GitHub Codespace with the default definition
  2. Installed and setup gh and gh net
  3. Initiated gh net to my GitHub Codespace
  4. Tried to SSH from GitHub Codespace to a machine on the network local to MacBook

In the screenshot, you can see the resolved DNS entries for the machine I'm trying to SSH into

Screenshot 2022-12-05 at 22 37 35

Output of the log:

2022-12-05T22:30:51.564298Z  INFO network: connected ""
2022-12-05T22:30:51.564736Z  INFO network: connected ""
2022-12-05T22:31:02.360230Z  INFO resovle-job: DNS hostname solicitation: [Question { qname: Name("vortex.data.microsoft.com"), prefer_unicast: false, qtype: A, qclass: IN }]
2022-12-05T22:31:02.360230Z  INFO resovle-job: DNS hostname solicitation: [Question { qname: Name("vortex.data.microsoft.com"), prefer_unicast: false, qtype: AAAA, qclass: IN }]
2022-12-05T22:31:49.995939Z  INFO resovle-job: DNS hostname solicitation: [Question { qname: Name("az764295.vo.msecnd.net"), prefer_unicast: false, qtype: A, qclass: IN }]
2022-12-05T22:31:49.995939Z  INFO resovle-job: DNS hostname solicitation: [Question { qname: Name("az764295.vo.msecnd.net"), prefer_unicast: false, qtype: AAAA, qclass: IN }]
2022-12-05T22:31:52.202945Z  INFO resovle-job: DNS hostname solicitation: [Question { qname: Name("mobile.events.data.microsoft.com"), prefer_unicast: false, qtype: A, qclass: IN }]
2022-12-05T22:31:52.202945Z  INFO resovle-job: DNS hostname solicitation: [Question { qname: Name("mobile.events.data.microsoft.com"), prefer_unicast: false, qtype: AAAA, qclass: IN }]
2022-12-05T22:36:08.840137Z  INFO resovle-job: DNS hostname solicitation: [Question { qname: Name("nuc01.int.bny.woffenden.net"), prefer_unicast: false, qtype: AAAA, qclass: IN }]
2022-12-05T22:36:08.840137Z  INFO resovle-job: DNS hostname solicitation: [Question { qname: Name("nuc01.int.bny.woffenden.net"), prefer_unicast: false, qtype: A, qclass: IN }]

jacobwoffenden avatar Dec 05 '22 22:12 jacobwoffenden

I join the question, to me it seems the exact use for gh-net? Having the same issue though

Yarden-zamir avatar Dec 07 '22 08:12 Yarden-zamir

@legomushroom just checking in to see if there are any others logs or diagnostics I can collect for you?

jacobwoffenden avatar Dec 14 '22 10:12 jacobwoffenden

I'm getting the same issue, there is no routable traffic on the NAT side of the TUI

I've tried a bunch of workaround and downgrading gh-net but nothing is working...

FWIW I (and I think the original author of this issue) are just using GH net to access any resources private to our macbook, not just "local" ports.

zackerydev avatar Apr 26 '23 20:04 zackerydev