Google Colab是什么
colab是通过jupyter项目启动一个全新的虚拟机硬件环境用于软件的运行。
colab可以理解为一个docker虚拟机环境,和阿里云、腾讯云、天池实验室、华为NAIE平台、腾讯智能钛平台,都是类似性质的东西,就是一个虚拟机,关键作用就是供软件运行,软件就好比思维,虚拟机就好比身体,这二者一般是可以分离的。目前主流的虚拟机操作系统都是Ubuntu18.04,这个系统很好,很通用
frp是什么
frp是一个内网穿透工具,就是把一个没有公网IP的机器上的端口映射到公网,前提就是有一个公网服务器充当它的接口,所以能量其实是守恒的,要公网访问,你肯定要有公网服务器。
理解colab通过ngrok实现内网穿透的过程
ngrok可以理解为是国外一个付费的frp,所以显然用ngrok是不划算的,优点就是方便吧。
参考ngrok-tricks.ipynb和WassimBenzarti/colab-ssh: Connect to Google Colab using SSH来理解colab实现ssh和其他端口映射的原理。
部署frps
使用腾讯云服务器作为公网代理服务器
配置腾讯云服务器
- 配置安全组
- 配置域名
使用vscode的Remote SSH连接腾讯云服务器
更新SSH配置文件,添加腾讯云服务器的连接信息
# /Users/xxx/.ssh/config
Host tencent-xxx
HostName IP address
Port 22
User username
ForwardAgent yes
IdentityFile <下载的与云服务器关联的私钥的绝对路径>
# ssh -i <下载的与云服务器关联的私钥的绝对路径> <username>@<hostname or IP address>
ServerAliveInterval 60
ServerAliveCountMax 30
在腾讯云服务器上运行frps
这样腾讯云服务器就充当frps服务器了,下载frp到服务器解压,然后启动frps服务即可。
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz # 下载源码
tar -zxvf frp_0.37.0_linux_amd64.tar.gz && cd frp_0.37.0_linux_amd64
killall -9 frps # kill
nohup ./frps -c ./frps.ini & # 启动frps服务
下面是frps.ini配置的内容
[common]
bind_port = 7000
authentication_method = token
token = token
在本地电脑上运行frpc
下载并解压frp,然后运行frpc
curl https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_darwin_amd64.tar.gz # 下载源码
tar -zxvf frp_0.37.0_darwin_amd64.tar.gz && cd frp_0.37.0_darwin_amd64
killall -9 frpc # kill
nohup ./frpc -c ./frpc.ini & # 启动frpc
下面是fprc的配置文件的内容
# (base) ➜ frp_0.37.0_darwin_amd64 cat frpc.ini
[common]
server_addr = 127.0.0.1
server_port = 7000
token = token
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
此时就可以通过远程IP或者域名访问到本地电脑的端口服务了,说明frps部署是成功的,接下来就是类似地把虚拟机的端口也映射到云服务器的公网端口即可。
colab通过frp实现内网穿透
最好订阅一个colab pro,因为可以直接访问terminal,这个要方便很多,其实GPU平台都提供了terminal访问。
# 挂载Google Drive
from google.colab import drive
drive.mount('/content/drive', force_remount=True)
# 配置frp
%%bash
# 安装sshd
if ! which ssh > /dev/null; then
apt-get install ssh vim # 提前安装
cp /content/drive/MyDrive/git/dotfiles/sshd_config /etc/ssh/sshd_config
service ssh restart # 重启ssh服务
mkdir -p ~/.ssh
fi
# 安装frp
frp_dir=/content/drive/MyDrive/git/frp_0.37.0_linux_amd64/
if [ ! -d "$frp_dir" ]; then
mkdir -p /content/drive/MyDrive/git/ && cd /content/drive/MyDrive/git/
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz # 下载源码
tar -zxvf frp_0.37.0_linux_amd64.tar.gz && cd frp_0.37.0_linux_amd64
fi
# 启动frpc
killall -9 frpc # 可能要kill之前的frpc进程
/content/drive/MyDrive/git/frp_0.37.0_linux_amd64/frpc -c /content/drive/MyDrive/git/dotfiles/frpc-colab-sparrowrecsys.ini >/dev/null 2>&1 & # 启动frps服务
frpc.ini配置文件:
# /content/drive/MyDrive/git/dotfiles/frpc-colab-sparrowrecsys.ini
[common]
server_addr = IP
server_port = 7000
token = token
[frpc-colab-sparrowrecsys:ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = port
[frpc-colab-sparrowrecsys:tensorboard]
type = tcp
local_ip = 127.0.0.1
local_port = 6006
remote_port = port
[frpc-colab-sparrowrecsys:8080]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = port
参考资料
- 云服务器 使用 SSH 登录 Linux 实例 – 操作指南 – 文档中心 – 腾讯云
- 如何让 vscode 使用 ssh密钥 (key) 来连接到远程Linux上_surfirst的博客-CSDN博客
- fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
- 使用 Frp 为你的 Web 服务添加 https 支持 – walterlv
- Colab Pro 值得花 9.9$/mon 订阅吗?来看这篇完整评测 – 知乎
- Google Colab 的正确使用姿势 – 知乎
changelog
- 2021年06月25日 可以通过frp ssh本地登录colab了,最好订阅colab pro
今天的文章colab_通过frp映射ssh端口和其他业务端口分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/20751.html