1. 情景描述
我自己笔记本配置太垃圾,想要用学校的深度学习服务器在Colab上跑程序。
2. 环境描述
远程服务器 (Ubuntu):
- 用pip安装 jupyter notebook 以及 jupyter_http_over_ws 拓展包 (前提有python环境和pip)
pip install notebook
pip install jupyter_http_over_ws
jupyter serverextension enable --py jupyter_http_over_ws
- 安装并开启 ssh 服务
sudo apt-get install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
查看ssh服务是否正常运行:
sudo systemctl status ssh
- 需要一个账号,和IP地址
假设账号名称是username。
IP 地址可以通过ifconfig
查到,这里假设为 192.168.0.1。
本地机器(笔记本):
- SSH 连接工具
Mac OS 自带 SSH 连接, 只需要在terminal输入ssh username@192.168.0.1
这里的账号和IP换成你自己的信息。
Windows SSH 的连接工具有很多,Putty, Xshell, Bitvise,这里就不赘述了。能够用SSH连上远程服务器就行。
- Google Colab
能运行就行
3. 对接!
1. 在远程服务器上打开jupyter notebook, 并允许Colab 进行访问。
jupyter notebook --NotebookApp.allow_origin='https://colab.research.google.com' --port=8888 --NotebookApp.port_retries=0
运行成功后,命令行会生成两个链接,格式类似于:
http://localhost:8888/?token=abc123
复制这个连接,之后要用。
2. 在本地机器上SSH连接服务器
# 将 <PORT> 替换为在上述步骤中选择的端口号 8888
# 将 <REMOTE_USER> 替换为远程服务器用户名 username
# 将 <REMOTE_HOST> 替换为您的远程服务器地址 192.168.0.1
ssh -L 8888:localhost:<PORT> <REMOTE_USER>@<REMOTE_HOST>
在我们的例子中即为
ssh -L 8888:localhost:8888 username@192.168.0.1
3. 打开Colab
选择local runtime.
输入第一步在远程服务器上生成的链接 http://localhost:8888/?token=abc123。(这里讨了个巧,将两台机器的端口设成一致的,就不用更换url了)
这时应该可以在本地colab使用远程服务器运行程序了。
REFERENCE
[1] https://www.cyberciti.biz/faq/ubuntu-linux-install-openssh-server/
[2] https://docs.anaconda.com/anaconda/user-guide/tasks/remote-jupyter-notebook/
[3] https://research.google.com/colaboratory/local-runtimes.html
以上。