1,機器情況:服務器 centos python環境已經配置好了,在虛擬環境下安裝了anaconda 並且在里面安裝了jupyter notebook
2,主機是 windows
ipython notebook是一個基於瀏覽器的python數據分析工具,使用起來非常方便,具有極強的交互方式和富文本的展示效果。jupyter是它的升級版,它的安裝也非常方便,一般Anaconda安裝包中會自帶。安裝好以后直接輸入jupyter notebook便可以在瀏覽器中使用。但是它默認只能在本地訪問,如果想把它安裝在服務器上,然后在本地遠程訪問,則需要進行如下配置:
1. 登陸遠程服務器
2. 生成配置文件
$jupyter notebook --generate-config
3. 生成密碼
打開ipython,(在ipython環境下)創建一個密文的密碼:
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274'
把生成的密文‘sha:ce…’復制下來
4. 修改默認配置文件
$vim ~/.jupyter/jupyter_notebook_config.py
進行如下修改:
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...剛才復制的那個密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #隨便指定一個端口
5. 啟動jupyter notebook:
$jupyter notebook
6. 遠程訪問
此時應該可以直接從本地瀏覽器直接訪問
http://address_of_remote:8888就可以看到jupyter的登陸界面。
7、前面的都做完了,在瀏覽器里訪問,顯示相應超時,,一直連接不上,原因:服務器的防火牆攔截了,在服務器上關掉防火牆就行了。
Linux中的防火牆有多種,一般指的iptables。
1. Linux防火牆(Iptables)重啟系統生效
開啟: chkconfig iptables on
關閉: chkconfig iptables off
2.Linux防火牆(Iptables) 即時生效,重啟后失效
開啟: service iptables start
關閉: service iptables stop
3.其它linux防火牆,請自行參考說明文檔。一般對於Linux下的服務都可以用以上命令執行開啟和關閉操作,而防火牆通常都以服務形式運行,因此也算是一個通用的方法。
8、這個方法不安全,可以在瀏覽器訪問之前先建立一個ssh安全協議通道,做一個ip地址映射,這樣就可以直接訪問了
建立ssh通道
如果登陸失敗,則有可能是服務器防火牆設置的問題,此時最簡單的方法是在本地建立一個ssh通道:
在本地終端中輸入ssh username@address_of_remote -L127.0.0.1:1234:127.0.0.1:8888
便可以在localhost:1234直接訪問遠程的jupyter了。
9、建立ssh通道的時候,如果出現
The authenticity of host 192.168.0.xxx can't be established. 的問題
用ssh登錄一個機器(換過ip地址),提示輸入yes后,屏幕不斷出現y,只有按ctrl + c結束
錯誤是:The authenticity of host 192.168.0.xxx can't be established.
以前和同事碰到過這個問題,解決了,沒有記錄,這次又碰到了不知道怎么處理,還好有QQ聊天記錄,查找到一下,找到解決方案:
執行ssh -o StrictHostKeyChecking=no 192.168.0.xxx 就OK這里換成自己需要做映射的服務器的ip地址就行了。