1
0

More than 3 years have passed since last update.

jupyter notebookをリモート(非LAN環境)で利用

Last updated at Posted at 2020-07-08

やりたいこと

自宅のPCから高性能GPU搭載サーバ上(非LAN環境)でJupyter Notebookを起動し、プログラムの実装、実行したい。

本文における想定環境

下図のような環境を想定する。GPUサーバは踏み台サーバからしかアクセスできない。
jupyter-server.png

環境

手元のPCの環境

  • Mac OS Catalina 10.15.4
  • Google Chrome 83.0.4103.116
  • Proxy Switchy Omega 2.5.21
  • Safari 13.1

GPUサーバの環境

  • Ubuntu 18.04 LTS
  • Python 3.6.8
  • pip 20.0.2

GPUサーバでの設定

まず、GPUサーバにjupyter notebookをインストールする。

$ pip3 install jupyter

その後、ipythonを起動すると対話型モードが開く

$ ipython
Python 3.6.8 (default, Mar 11 2020, 10:09:18)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

ipythonの対話型モードで以下のようにコマンドを実行する。

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: [パスワードの入力]
Verify password: [パスワードの再入力]
Out[2]: [ハッシュ化済パスワード]

続いて設定ファイルを作成する。

$ jupyter notebook --generate-config

デフォルトでは ~/.jupyter/jupyter_notebook_config.py というファイルが生成される。このファイルを以下のように編集する。

~/.jupyter/jupyter_notebook_config.py
c = get_config()
# Notebook上でplotを表示できるようにする
c.IPKernelApp.pylab = 'inline'
# 受け付けるIPアドレス
c.NotebookApp.ip = '0.0.0.0'
# IPython notebookのログインパスワード
c.NotebookApp.password = [作成済みのハッシュ化済パスワード]
# 起動時にブラウザを起動させるかの設定
c.NotebookApp.open_browser = False
# ポート指定
c.NotebookApp.port = 8888

受け付けるIPアドレスはデフォルトでは'localhost'となっているが、これを0.0.0.0にしてあげればよい。これはすべてのIPアドレスからのアクセスを受け付けるという意味であり攻撃を受ける可能性があると考えるかも知れないが、もともと踏み台サーバからしかアクセス出来ないため問題ない。
これで設定が完了したので、以下のコマンドを叩くことでjupyter notebookサーバが立ち上がる。

$ jupyter notebook

手元のPCの設定

踏み台サーバをプロキシサーバとしてインターネットアクセスするように手元PCの設定を変更する必要がある。
まず、手元のPCから踏み台サーバにダイナミックポートフォワードでアクセスする。

$ ssh -D 10080 1.2.3.4

このあとWebブラウザをプロキシ経由でアクセスできるようにするには以下の2つの方法が挙げられる。
1. システム環境設定を利用 (Safari)
2. Proxy SwitchyOmegaを利用 (Google Chrome)

1. システム環境設定を利用 (Safari)

Mac上のシステム環境設定->ネットワーク->詳細->Socksプロキシを設定する。Socksプロキシにチェックを入れ、以下のように設定する。
スクリーンショット 2020-07-08 11.24.06.png

設定後、Safariのアドレスバー(URLを入力するところ)にhttp://10.1.2.3:8888と入力するとjupyter notebookを開くことが出来る。

2. Proxy SwitchyOmegaを利用 (Google Chrome)

Chrome拡張機能からProxy SwitchyOmegaをインストールする。
スクリーンショット 2020-07-08 11.45.07.png

上の画像からOptionsをクリックすると以下の設定画面が取得できるので、以下のように設定する。
スクリーンショット 2020-07-08 11.43.17.png

設定後、1枚目の画像からProxyを選択することでプロキシの設定が完了する。
その後、Google Chromeのアドレスバーにhttp://10.1.2.3:8888と入力するとjupyter notebookを開くことが出来る。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0