远程连接实验室服务器

学无止境

Posted by techkang on February 28, 2020

介绍

有时候需要远程使用服务器,尤其是在内网下的服务器,很多人采用 TeamViewer 的解决方案,然而 TeamViewer 网速一般比较慢,操作比较僵硬,因此向大家推荐使用远程 ssh 连接。远程 ssh 有多种实现方式,在此处使用 frp+vps 的方式。

准备阶段

购买一个国内的 vps。

Server端准备

此处的 Server 是指具有公网 IP 的 vps,而非实验室的服务器。

打开 frp GitHub 页面:fatedier/frp,找到对应的下载页面,在服务器上下载 frp。例如写这篇博客时最新版本为 0.31.2,我的机器是 arm64,可以通过 dpkg --print-architecture 命令查看自己的电脑是否属于 arm64。登录有公网 IP的服务器,下载、解压并编辑配置文件

wget https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_amd64.tar.gz
tar -zxvf frp_0.31.2_linux_amd64.tar.gz
cd frp_0.31.2_linux_amd64
tmux new -s frps
vim frps.ini

将配置文件修改为

[common]
bind_port = 8000
vhost_http_port = 8005

退出 vim,并挂起 tmux(ctrl+b, d)。

Client 端准备

此处 Client 指处于内网的机器,包括实验室的服务器。

下载并解压 frp。

wget https://github.com/fatedier/frp/releases/download/v0.31.2/frp_0.31.2_linux_amd64.tar.gz
tar -zxvf frp_0.31.2_linux_amd64.tar.gz
cd frp_0.31.2_linux_amd64
tmux new -s frpc
vim frpc.ini

将配置文件修改为

[common]
server_addr = x.x.x.x  # 你的 vps 的 IP
server_port = 8000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8001

[web]
type = http
local_port = 6006
custom_domains = x.x.x.x  # 与 common 中的 IP 相同

保存并退出即可。

远程登录

Windows下,推荐使用 MobaXterm 登录,配置中 IP 填写 vps 的 IP,端口填写 8001,账号密码是内网机器的账号密码。

如果习惯用 ssh 登录,可以直接输入 ssh user@x.x.x.x -p 8001 即可登录。

内网服务转发

在配置文件中,我们指定了 web 参数,这是为了转发服务器中的网络服务,例如 tensorboard、visdom 等服务器需要网络服务器。将内网机器的网络服务器指定为 6006 端口,访问 x.x.x.x:8005 即可访问该内网中部署的网络服务。