やりたいこと

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

本文における想定環境

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 というファイルが生成される。このファイルを以下のように編集する。

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)

スクリーンショット 2020-07-08 11.24.06.png

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

2. Proxy SwitchyOmegaを利用 (Google Chrome)

スクリーンショット 2020-07-08 11.45.07.png
スクリーンショット 2020-07-08 11.43.17.png

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

广告
将在 10 秒后关闭
bannerAds