“java常见小错误”系列文章推荐:
上一篇:java小技巧(二):JAVA 交集,差集,并集
前文推荐:java常见小错误(一):变量类型自动转换与强制转换
java小技巧(一):进制转换
java小技巧(三):List和Array之间的转换
linux常用技巧(一):后台下载
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:linux常用技巧(二):远程访问jupyter-notebook;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;
SSH隧道是连接到服务器上运行的Jupyter Notebook应用程序的一种简单而快速的方法。安全shell(通常称为SSH)是一种网络协议,使您可以通过不安全的网络安全地连接到远程服务器。
SSH协议包括端口转发机制,允许您将在服务器上的特定端口号上运行的某些应用程序隧道传输到本地计算机上的特定端口号。我们将学习如何安全地“转发”在服务器上运行的Jupyter Notebook应用程序(8888默认情况下在端口上)到本地计算机上的端口。
如果您的本地计算机运行Linux或macOS,则只需运行单个命令即可建立SSH隧道。
ssh是打开SSH连接的标准命令,但是当与-L指令一起使用时,您可以指定本地主机(即本地计算机)上的给定端口将转发到远程主机上的给定主机和端口(在这种情况下,您的服务器)。这意味着在远程服务器上指定端口上运行的任何内容(Jupyter Notebook的默认端口8888)都将出现在本地计算机上的指定端口上(在示例命令中为8000)。
要建立自己的SSH隧道,请运行以下命令。例如,如果另一个进程正在使用8000,请随意将端口8000更改为您选择的端口。建议您使用大于或等于8000的端口,因为这些端口号不太可能被其他进程使用。确保包含您自己的服务器的IP地址和服务器的非root用户的名称:
ssh -L 8000:localhost:8888 sammy@your_server_ip
如果此命令没有错误,它将使您登录到远程服务器。从那里,激活虚拟环境:
默认jupyter notebook 是不需要配置文件的。因此,需要用以下命令生成该文件。
主要配置一下内容:
首先生成配置文件,输入如下命令
jupyter notebook --generate-config
生成文件后,文件在该目录下
Writing default config to: /home/your Name/.jupyter/jupyter_notebook_config.py
打开jupyter_notebook_config.py文件
vim /home/your Name/.jupyter/jupyter_notebook_config.py
设置可以访问服务器的ip
c.NotebookApp.ip = '*'
notes:很多教程把该ip设置为127.0.0.1,这样你只能在本地访问,远程是无法访问的。这是大坑中很大的一个。同时这里还有个需要注意的,上面 ‘*’ 表示的是可以接收所有ip的客户端访问。
打开ipython,调用passwd()函数生成密匙,把密匙复制下来,后面会有用
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'
这个密匙会是不一样的,密钥用于配置notebook,密码需要记住,用于登录验证身份。
在配置文件中加入上面生成的密匙
c.NotebookApp.ip = '*'
c.NotebookApp.password = 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'
设置不在服务器端自动打开浏览器
c.NotebookApp.ip = '*'
c.NotebookApp.password = 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'
c.NotebookApp.open_browser = False
到目前位置所有远程的配置的所有工作已经全部完成。
如果是云服务器,还需要开放对应的端口号,默认只开启80,22,8080这些端口号。
如果没有公网ip的话,需要打洞做本地映射了。隧道工具推荐ngrok