Light Yagmi
Light Yagmi

Reputation: 5235

Remote access Jupyter notebook from Windows

I usually access Jupyter notebook running on Linux from Mac OS X via port forwarding like following:

https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh

Is it possible to do similar thing from Windows 10 instead of Mac OS? I guess putty or WSL offer one.

https://www.akadia.com/services/ssh_putty.html https://superuser.com/questions/1119946/windows-subsystem-for-linux-ssh-port-forwarding

Upvotes: 24

Views: 57457

Answers (5)

Kraten
Kraten

Reputation: 534

You can create an SSH tunnel to connect to the Jupyter Notebook or Jupyter Lab web interface using PUTTY on windows.

  1. Download the latest version of PUTTY
  2. Open PUTTY and enter the server URL or IP address as the hostname
  3. Now, go to SSH on the bottom of the left pane to expand the menu and then click on Tunnels
  4. Enter the port number which you want to use to access Jupyter on your local machine. Choose 8000 or greater (i.e. 8001, 8002, etc.) to avoid ports used by other services, and set the destination as localhost:8888 where :8888 is the number of the port that Jupyter Notebook is running on. Now click the Add button, and the ports should appear in the Forwarded ports list.
  5. Click the Open button to connect to the server via SSH and tunnel to the desired ports.
  6. In the PUTTY terminal, run Jupyter, where the default port is 8888
    • jupyter lab --no-browser or jupyter-notebook --no-browser
  7. Copy the server path into the browser on your local system and navigate to the notebook
    • http://localhost:8888/lab?token=... or http://127.0.0.1:8888/lab?token=...

Note:

  • If running remotely to your employer, a VPN connection will probably be required.

Upvotes: 52

muuh
muuh

Reputation: 1063

As an addendum to this answer, this screenshot shows how putty config looks like:

putty for remote Jupyter notebook configuration

On the Linux machine, I then start Jupyter with:

jupyter notebook --no-browser --port=8889

Finally, on the windows (or any remote machine) I enter localhost:8888 in the browser.

It asks for the token, that is provided at the shell of the Linux machine.

--

Note which port refers to which machine, I have the notebook on port 8889, the browser calls it at localhost:8888

Upvotes: 27

BSalita
BSalita

Reputation: 8961

I wanted to use the VPN Server feature of my cable box to enable remoting into my network, especially to run jupyter notebook. For my situation, probably not quite the same as anyone elses, this works fine.

  1. On the cable box, be sure to enable the VPN Server and enable external access.

  2. On the remote Windows 10 computer, add a PPTP VPN specifying cable box's external IP. Connect to the VPN. Verify you can access the network. e.g. You should be able to see the cable box's webpage.

  3. On the Jupyter serving computer, in Windows Defender Firewall, you need to create a new Inbound Rule for a Port.

    3.1. General-> Enabled, Allow the connection

    3.2. Protocols and Ports-> TCP, 8888

    3.3. Scope-> Private

  4. On the Jupyter serving computer, invoke Jupyter (e.g 192.168.0.1, port 8888):

    jupyter-notebook --ip 192.168.0.1 --port 8888 --no-browser

  5. On the remote computer, you should now be able to access your Jupyter server by browsing to http://192.168.0.8:8888/tree

Upvotes: 0

Abhishek
Abhishek

Reputation: 131

Follow the steps below.

step1- Download putty.
step2- Insert ip address or hostname.
step3- Go to SSH and expand.
step4- Add address of jupyter-notebook to destination column ex: localhost:6666. Add local port such as 8000 to source and press add button. Then connect, it should work.

Upvotes: 1

Light Yagmi
Light Yagmi

Reputation: 5235

I solved this problem by myself. My solution is using Windows Subsystem for Linux (WSL). This offers (virtual?) Linux console like Ubuntu. I just use ssh with -L option on it.

Upvotes: 2

Related Questions