想在 Ubuntu 上放飞梦想的小黑菜(2)
作者:互联网
1. Jupyter Notebook
远程连接
先说一些 P 话:通常情况下,我们需要通过 windows 笔记本(mac 笔记本大佬请不屑路过)连接远程服务器调试实验。Notebook
是 debug 和 demo 的最好工具之一,特别是在可视化的时候。使用 ssh
连接的服务器,当系统是无界面版本时,就服务法使用 firefox
了,因此,远程连接 notebook
总会显得令人愉悦。
网上有不少教程,但是都说得不够清楚,故作此文。
1.1 远程服务器(ubuntu
)上的准备
- 进入工作的 python 环境:
source activate env_name
- 安装
jupyter
与notebook
:conda install jupyter notebook
- 生成默认配置文件:
jupyter notebook --generate-config
- 生成秘钥:进入
ipython
,
In [1]: from notebook.auth import passwd
In [2]: passwd()
设置登录密码,如 123@abc
,
Enter password:
Verify password:
Out[2]: 'argon2:$argon2id$v=19$m=10240,t=10,p=8$Gac/+++M6WRhZLRHTuqb8A$y4HG51uIGZf+lZZOnzD4bQ'
- 修改配置文件:
~/.jupyter/jupyter_notebook_config.py
如下:
c.NotebookApp.password = '刚刚获得的密钥密文'
c.NotebookApp.ip = '*'# ×允许任何ip访问
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888 # 可自行指定一个端口, 访问时使用该端口
c.NotebookApp.allow_remote_access = True
- 执行
jupyter notebook
,看是否可以顺利启动;如果出现
PermissionError: [Errno 13] Permission denied: '/home/ubuntu/.local/share/jupyter
easy!
按如下顺序执行:
sudo mkdir /home/ubuntu/.local/share/jupyter
sudo chmod 777 ~/.local/share/jupyter/
cd ~/.local/share/jupyter/
1.2 本地(windows10
)上的配置
- 以管理员身份打开命令行;
- 确保您的服务器可以通过
ssh
远程连接;若否,具体操作见 5. 将本地服务器上升为局域网内服务器; - 在命令行中执行以下命令:
ssh -L [local_port]:127.0.0.1:[remote_port] -p 22 [user_name]@[host_ip_addr]
# local_port --自定义一个本地违背占用的端口,如 10086
# remote_port --前面讲到 jupyter notebook 的端口号默认是 8888,也可以是自己定义
# user_name --您刚刚登录远程服务器配置环境时的账户名字
# host_ip_addr --远程服务器的 ip
# 这个命令的意思大概是:
在本机的端口 (local_port), 通过端口 22 建立远程主机 host_ip_addr 的本地接口 127.0.0.1:[remote_port].
# 首次连接需要输入密码,如:
The authenticity of host '[host_ip_addr]:22 ([host_ip_addr]:22)' can't be established.
ECDSA key fingerprint is SHA256:sBnyVN1117NjjuyryTqjd6uJzxqnpYNp+JkGsCv9+Ew.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[host_ip_addr]:22' (ECDSA) to the list of known hosts.
[user_name]@[host_ip_addr]'s password:
Welcome to Ubuntu 18.04.6 LTS ...
- 举个例子,我的服务器账户名是 chopin,ip 是 222.201.144.139,则可以是
ssh -L 10086:127.0.0.1:8888 -p 22 chopin@222.201.144.139