介绍
有时候需要远程使用服务器,尤其是在内网下的服务器,很多人采用 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
即可访问该内网中部署的网络服务。