如果想同過一個Web瀏覽器的方式遠程訪問服務器上的ipython notebook sever,可通過下面的步驟實現。
服務器:ubuntu14.04 server
客戶端:windows/unix/linux均可+瀏覽器
- 創建certificate 文件 和 hash密碼
In [1]: from IPython.lib import passwd In [2]: passwd() Enter password: Verify password: Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
- 使用openssl創建一個自簽名證書,由於是自簽名所以瀏覽器會提示警告,選擇信任exception即可。如果不想引起警告,需具備合格證compliant certificate,可參照tutorial。
$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
此處需要注意到的是記住你生成的證書mycert.pem的路徑,另外,由於你啟用了ssl支持,所以在訪問notebook server時需要用https://而非http://
- 通過ssl使得你通過瀏覽器發送的密碼是加密的,你可以在安全協議模式下使用自簽名的認證來啟用notebook
$ ipython notebook --certfile=mycert.pem
- 為notebook定制一個配置文件,此配置是基於用戶而非全局的。命令執行后會提示生成的文件和位置。
$ ipython profile create nbserver
- 修改剛才create nbserver時生成的ipython_notebook_config.py文件
#,默認情況下ipython_notebook_config.py位於~/.ipython/profile_nbserver/目錄下 c = get_config() # Kernel config c.IPKernelApp.pylab = 'inline' # 使用pyplot繪制功能 # Notebook config c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem' c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.password = u'sha1:bcd259ccf...[之前生成的hash密碼]' # It is a good idea to put it on a known, fixed port c.NotebookApp.port = 8035 #選擇一個端口
- 最后在遠程服務器鍵入命令
ipython notebook --profile=nbserver
之后便可在本地機器上使用Web瀏覽器訪問notebook了
https://[IP or your.host.com]:8035
(此處比較詭異的是需要加一位才對(https://[IP or your.host.com]:8036),后來才發現,8035已經被一個程序占用了,ipython會另選一個端口號使用)
安裝特定版本的Package請使用
pip install ipython==2.3.0
小記:ipython版本若是為4.0會出錯,因為4.0版本為開發版,使用上面命令ipython profile create nbserver時不會創建ipython_notebook_config.py(坑。。。),最后終於在http://r97846001.blog.ntu.edu.tw/2015/07/09/ipython-importerror-no-module-named-jupyter_notebook-notebookapp/發現是版本的問題,所以需要安裝適用的版本,但是!!!不需要按照他說的下載源文件或release安裝的。。。,之前使用了pip install ipython=2.3.0發現不行,故狂搜亂找以為是其他問題,最后發現原來要用雙等號啊~淚。。。http://nu-no.nl/ipython-server-cant-launch-no-module-named-notebook-notebookapp/,正所謂,“山重水復疑無路,柳暗花明又一村”,寫次小記,特此紀念。