连接服务器的jupyter notebook
连接服务器可视化编程
方案1:服务器的jupter notebook 配置
1. 在命令行生产配置文件:
$ jupyter notebook --generate-config
2.设置密码:
方法 A(5.0vision)推荐
$ jupyter notebook password
Enter password: ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json
方法 B
在ipython或者python 运行环境中调用设置密码>>from notebook.auth import passwd
In [2]: passwd()
Enter password: xxxxxx
Verify password: xxxxxx
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed' # 这一**要复制到下面的配置文件中
3.修改配置文件
用任意编辑器打开刚刚生产的文件,一般linux在user文件夹下/.jupyter, win 默认安装在c:\user\user.jupyter 下:
找到下面几个部分进行修改 :
c.NotebookApp.password = u'sha:***' #引号前记得写u,复制刚刚得到的密文于此
c.NotebookApp.open_browser = False # 默认不在本地浏览器中打开
c.NotebookApp.ip = '*' # *代表监听所有端口,外网可以访问
c.NotebookApp.allow_remote_access=True #允许外部访问
c.NotebookApp.port =9900 # 设置一个本机端口来访问,建议不要设为8888
c.NotebookApp.notebook_dir ='jupyter' #保存jupyter notebook的路径,可以自己设置,建议绝对路径。若是服务器的用户登录,会自动在前面加上用户目录。若路径报错,可注释掉
4.保存,在服务器上运行jupyter notebook
复制输出的 http://服务器ip:9900/ 在本地浏览器上打开,输入设置的密码即可。
(可选)使用https
3 生成SSL证书
因为Jupyter必须要用https进行登录,所以需要生成ssl证书。
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem
上面的命令需要填写一些个人信息,可以自动生成证书,但是这个证书是不安全的,只能在测试过程中使用。
在jupyter_notebook_config.py文件中加入:(路径改为文件的绝对路径)
c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key’
就可以使用https了。这个证书是不安全的,只能在测试过程中使用
5 端口转发
为了使得外网能够访问位于内网的Jupyter,还需要进行端口转发:
进入路由器找到虚拟服务器
设置一个外部端口号码例如39887—对应内部Juypter端口如8888,在填入安装Jupyter计算机在局域网的对应IP如192.168.2.123。
例如路由器的公网IP为: 10.10.10.10
则使用10.10.10.10:39887即可访问对应的Jupyter页面
问题:
File "/usr/lib/python3.5/socket.py", line 732, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known
解决:
这个问题主要是由于远程打开的时候,并没有allow_remote_access=True
输入命令
在 ~/.jupyter/jupyter_notebook_config.py 中加入:
c.NotebookApp.allow_remote_access=True
方案2:pycharm 专业版 通过配置ssh连接服务器上的项目目录,可用服务器上的python解释器
ref:https://blog.csdn.net/dongfangxiaozi_/article/details/88816644
https://blog.csdn.net/u014636245/article/details/70922960
https://blog.csdn.net/computerme/article/details/78751670
https://blog.csdn.net/computerme/article/details/78751670
推荐阅读
-
Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令
-
Python使用paramiko连接远程服务器执行Shell命令的实现
-
WEB服务器无法连接上Oracle 数据库的故障处理
-
ECMall支持SSL连接邮件服务器的配置方法详解_PHP
-
ECMall支持SSL连接邮件服务器的配置方法详解_PHP教程
-
ECMall支持SSL连接邮件服务器的配置方法详解_php实例
-
一台服务器php连接数据库,数据库地址却用了对外的ip,促成偶尔获取数据库连接句柄需要2s
-
连接Linux的服务器时使用SSH密钥认证及解决自动断连问题
-
Jupyter notebook远程登陆服务器
-
SQL Server 复制需要有实际的服务器名称才能连接到服务器