搭建jupyter服务器2

Jupyter非常好用。之前使用都是单机使用,有时回家了就先远程上学校的电脑(主要是因为要用的数据只有学校的电脑里有)来使用Jupyter,但是网络时好时不好,有时远程的效果并不好。因为Jupyter本身就都可以支持跨网络访问,所以学习了下让Jupyter支持跨网络访问的方法。学习时发现网上的资料说得并不是非常清楚,因此重新归纳总结写下此文。

此文的目标是简洁地说明在Windows上己能用Jupyter的情况下,配置Jupyter以支持外网远程访问。

Jupyter开启服务器有3种安全性级别,如下,括号中给出了配置估计需要的时间:

  1. 完全开放,任何人都可以访问;(2分钟)
  2. 需要输入密码访问,传输不加密;(3分钟)
  3. 需要输入密码访问,传输基于ssh;(5~120分钟)

 

以下依次说明如何进行设置。

 

 

  • 完全开放,任何人都可以访问

 

先创建一个profile:

$ ipython profile create nbserver

修改创建的profile目录中的ipython_notebook_config.py文件:

c.NotebookApp.ip = '*'      #支持其它IP访问,关键
c.NotebookApp.open_browser = True
c.NotebookApp.port = 8035

后两项都可以保存不改,配置完成。启动测试:

$ ipython notebook --profile=nbserver

 

 

  • 需要输入密码访问,传输不加密

 

在以上配置上继续。

创建hash密码:

In [1]: from IPython.lib import passwd

In [2]: passwd()

    Enter password:

    Verify password:

    Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aea'

再次更改profile目录中的ipython_notebook_config.py文件:

c.NotebookApp.password = u'sha1:bcd259ccf...your hashed password here'

配置完成,以同上方式启动后可见要先输入密码才可进入。

 

 

  • 需要输入密码访问,传输基于ssh


此步的关键在于ssh验证文件的生成,我自己先下了openssl的windows版本,生成时却报错了。尝试使用所附在线服务生成,好像也没成功。最终让朋友在linux机器上帮我生成出来。我把生成的过程和结果包括在下面,读者既可以直接使用,也可以自己尝试。

$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout key_cert.pem -out key_cert.pem

此命令把key和cert都输出到key_cert.pem文件里,内容如下:

-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALXspYXESrhNWKRC
c74v2P8Dzxelctfuk8xRZEquxmxpjLEox6fuCz2H3v58atXqObsLbVdeMhMnA6a+
zfU+s8WekEYbM9N3AHcBd0jG0EkYDXdYcy+I4JdMWF52bwZtqrx8vzNTA8jsQAU8
InaCDcLbIgOL+ofU9lo+XjDkvsxRAgMBAAECgYALTxyzBhLHBjfebisXxY2tvKTh
CW3sMm6Jov2jDt5S2vTeBnTy4X9dYdbg5wcVKSxRjlJLvhVKz4AQm4feGPm/0la8
JqxE4RlsWOJPNnkGXuvQdVVaulE4B2pZhxTUlOdGxHullr247MUCwlQVAYjyc6wo
iVzNqN5xvnJLADkfiQJBAN02qeho0FFmZJUHYyeXf+2YgFYCXXebgOVPVTVGwJZ7
pPdcA5RpX+h7B3VZuqvaTERag2TIPM6QHs9adAc1AkMCQQDSiFSZ0fParjb5x7za
prLMkOdajPfKZHwIoStZI4Sx3g1bQqHVRJhdALdwpNUfGHGmEsRMkDvWwxFGy9jb
xV/bAkEAloeADvpj50A56X9hZaueDdvcWKq7V4ylpWTaoqpGmyAAHaKrfO5HqTcu
2Bf7Ar5Fb634AziOyDEiBg+TLORRaQJACjmi2kGvNUzG0MTZsEjuYC8dfXFhS4wr
1gN15oNqG3VscqU+1Ova9pFlV2w6CaOXSXiZ3hoXPewFd8nIw4vHhwJBAM0VFBdc
akx9GaROvZw9+4B1n4JR7MBBawb5WuED4QG3hfNZSd9gJMLWDVi09xyVhfRG8cXP
40daS6gsVCWgnS0=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIB8jCCAVugAwIBAgIJAOTdGC2PBgDBMA0GCSqGSIb3DQEBCwUAMBIxEDAOBgNV
BAMMB0ppYXdlaTEwHhcNMTYxMDIxMDY0MjA3WhcNMTcxMDIxMDY0MjA3WjASMRAw
DgYDVQQDDAdKaWF3ZWkxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC17KWF
xEq4TVikQnO+L9j/A88XpXLX7pPMUWRKrsZsaYyxKMen7gs9h97+fGrV6jm7C21X
XjITJwOmvs31PrPFnpBGGzPTdwB3AXdIxtBJGA13WHMviOCXTFhedm8Gbaq8fL8z
UwPI7EAFPCJ2gg3C2yIDi/qH1PZaPl4w5L7MUQIDAQABo1AwTjAdBgNVHQ4EFgQU
GRz9q9lsbpINOs/lNbidCBT8dTYwHwYDVR0jBBgwFoAUGRz9q9lsbpINOs/lNbid
CBT8dTYwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQCiDN9jr1ZeRLhd
7UxPkJ6rKK522+pEx6od1fioGRku2aD2BDqYgZw0w8LRFLOnOUllp5E84dVPihAt
Z+qGeTzSeFtS9PvpURpVxm7TIsjIJjqtNXBn+T1liLdphYtiU22YS0KNmrt8L9iI
bYAzfCdmmX7yhHrojldA8e9x7LScqw==
-----END CERTIFICATE-----

有了key_cert.pem文件后可以先测试下正确性,使用如下方式启动Jupyter:

$ ipython notebook --certfile=key_cert.pem

如果浏览器打开的地址为https开头,那就成功了。

最后再次更改profile目录中的ipython_notebook_config.py文件:

c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/key_cert.pem'

Okay,配置完成。启动服务:

$ ipython notebook --profile=nbserver


 

附:

在线生成ssl验证地址:

http://www.mobilefish.com/services/ssl_certificates/ssl_certificates.php#ssl_certificates_output

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jupyter服务器是一种用于搭建交互式编程环境的软件。通过搭建Jupyter服务器,您可以在浏览器中运行代码、编写文档、进行数据分析和可视化等。搭建Jupyter服务器的步骤如下: 1. 安装Jupyter:在命令行中使用conda activate命令激活您的虚拟环境,然后使用pip install jupyter命令安装Jupyter。 2. 生成配置文件:使用命令jupyter notebook --generate-config生成Jupyter的配置文件。 3. 修改配置文件:使用vim编辑器打开配置文件(通常位于~/.jupyter/jupyter_notebook_config.py),并进行以下修改: - 将c.NotebookApp.ip设置为'*',以允许任何IP地址访问。 - 设置c.NotebookApp.password为生成的密文,以设置访问密码。 - 设置c.NotebookApp.port为一个闲置的端口号。 - 将c.NotebookApp.open_browser设置为False,禁止自动打开浏览器。 - 将c.NotebookApp.allow_remote_access设置为True,允许远程访问。 - 将c.NotebookApp.allow_root设置为True,允许以root用户身份运行。 - 将c.NotebookApp.notebook_dir设置为您希望的工作目录。 4. 运行服务器:使用命令nohup jupyter notebook > jupyter.log 2>&1 &在后台运行Jupyter服务器。 5. 验证服务器是否启动:使用命令ps -aux|grep jupyter notebook检查Jupyter服务器是否已经启动。 6. 访问Jupyter服务器:在您的本机浏览器中输入IP地址和端口号,即可访问Jupyter服务器。 对于远程访问,您可以使用花生壳进行内网穿透。在内网服务器上安装花生壳客户端,并按照其提供的说明进行配置。这样,即使在不同网络环境下,您也可以通过互联网访问Jupyter服务器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值