WindowsのJupyterに外部からアクセスする
目的
Windows10にインストールしたAnacondaのJupyterサーバに別端末からアクセスするための設定方法について記載する。Anaconda自体のインストール手順については以下で説明しています。
環境
Windows10
Anaconda3 :4.8.2
Step1 : パスワードのハッシュ化
Jupyterを外部向けに公開する場合、パスワードを設定するのが安全です。パスワードはJupyterのconfigファイル内に記載しますが、平文ではなく、ハッシュ化されたパスワードを記載します。そのため、まずはパスワードをハッシュ化します。
まず初めに、ウィンドウズのスタートメニューのAnaconda3の中からAnaconda Promptを起動します。
すると、コマンドプロンプトのような画面が立ち上がります。このAnaconda PromptはAnaconda系の各種コマンドが使用できるようにパスが通ってるコマンドプロンプトのようなものと思っておけばいいです。この画面で以下のようにipythonを起動します。
> ipython
以下のような画面が起動されればOKです。
続いて、ここでパスワードハッシュ化のためのモジュールを呼び出し、パスワードを設定します。
In[1] : from notebook.auth import passwd
In[2] : passwd()
In[3] : Enter password: #ここに設定するパスワードを入力
パスワードを入力後、Verify passwordと再度入力を求められるので、入力すると、ハッシュ化されたパスワードが表示されます。この文字列を忘れずにメモ帳などにコピペしておきます。
以上で、ハッシュ化されたパスワードの生成は完了です。
Step 2 : configファイルの設定
外部アクセスを許可するためのconfigファイルですが、最初は存在しないため、コマンドで生成します。先ほど同様Anaconda Promptを立ち上げ、今度は以下のコマンドを打ちます。
> jupyter notebook --generate-config
すると、ホームディレクトリ(C:\Users\<あなたのアカウント名>)の.jupyterというフォルダの中にjupyter_notebook_config.pyというファイルが生成されます。
このファイルをノートパッドなどで開き、以下のように編集します。
## The IP address the notebook server will listen on.
c.NotebookApp.ip = '*' #許可するIPを設定、*はすべてのIPを許可する場合
# The string should be of the form type:salt:hashed-password.
c.NotebookApp.password = 'sha1:<ハッシュ化されたパスワード>'
## Whether to open in a browser after starting. The specific browser used is
# platform dependent and determined by the python standard library `webbrowser`
# module, unless it is overridden using the --browser (NotebookApp.browser)
# configuration option.
# サーバ側でJupyter起動時にブラウザを立ち上げない
c.NotebookApp.open_browser = False
上記を保存すれば、configファイルの設定は完了です。
Step3 : Jupyter Notebookの起動
configファイルの設定まで完了したら、いよいよサーバを起動します。Anaconda Promptを立ち上げ、以下のコマンドを入力します。
> jupyter notebook
すると、サーバーが動き出し、途中で以下のようなファイアウォール開放のウィンドウが表示されます。ここで、アクセスする環境に合わせて適切なネットワークを選択し、アクセスを許可するを選択します。なお、ここでキャンセルを押した場合でも、後から手動でファイアウォールの設定を行えば通信できます。
以上でJupyterの設定は完了です。
Step4 : アクセスして確認
ネットワーク上の別端末からブラウザを開き、アドレスバーへhttp:<ホスト名>:8888を入力しEnterを押します。ここでJupyterのログイン画面が表示されますので、Step1で設定したパスワードを入力し、ホームディレクトリが見れれば成功です。
もしアクセスすらできない場合はファイアウォールが悪さをしている可能性があるので、開放しているネットワークなどを今一度確認してみると良いかもしれません。
Howdy just wanted to give you a brief heads up and let you know a few
of the images aren’t loading properly. I’m not sure why but I think its a linking issue.
I’ve tried it in two different web browsers and both show the same
results.