jupyter notebook를 원격 (비 LAN 환경)에서 사용

하고 싶은 일



자택의 PC로부터 고성능 GPU 탑재 서버상(비LAN 환경)으로 Jupyter Notebook을 기동해, 프로그램의 실장, 실행하고 싶다.

본문의 가정 환경



아래 그림과 같은 환경을 상정한다. GPU 서버는 발판 서버에서만 액세스할 수 있다.


환경



수중 PC 환경


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

  • GPU 서버 환경


  • 우분투 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
    

    나중에 웹 브라우저를 프록시를 통해 액세스 할 수있게하려면 다음 두 가지 방법이 있습니다.
    1. 시스템 환경 설정 사용 (Safari)
    2. Proxy SwitchyOmega 사용 (Google Chrome)

    1. 시스템 환경 설정 사용 (Safari)



    Mac에서 システム環境設定 -> ネットワーク -> 詳細 -> Socksプロキシ를 설정합니다. Socks 프록시를 체크하고 다음과 같이 설정한다.


    설정 후 Safari의 주소 표시줄(URL을 입력하는 곳)에 http://10.1.2.3:8888를 입력하면 jupyter notebook을 열 수 있다.

    2. Proxy SwitchyOmega 사용 (Google Chrome)



    Chrome 확장 프로그램에서 Proxy SwitchyOmega를 설치합니다.


    위의 이미지에서 Options를 클릭하면 다음 설정 화면을 얻을 수 있으므로 다음과 같이 설정합니다.


    설정 후 첫 번째 이미지에서 프록시를 선택하여 프록시 설정을 완료합니다.
    그런 다음 Google 크롬 주소 표시줄에 http://10.1.2.3:8888를 입력하면 jupyter notebook을 열 수 있습니다.

    좋은 웹페이지 즐겨찾기