现在人越来越懒了,躺在床上也能科研岂不是美滋滋,但是这样的话需要你的手机或者Mac能给远程的控制实验室的电脑。这里采用的是基于frp的内网映射的办法,大致上就是利用拥有公网的云服务器来映射自己的深度学习服务器的端口。大致上的操作流程是这样!

  1. 先去网站上下载适合你电脑和服务器的版本,这里以Linux为栗子,下载linux——amd64的,这里在你的云服务器(A)和深度学习服务器(B)分别下载。
  2. A这边的操作如下:
#下载
wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz 
#解压
tar -zxvf frp_0.34.3_linux_amd64.tar.gz 

#打开frps.ini(注意是s结尾,service的意思)

sudo vim frps.ini
[common]
 bind_port = 7000 # frp服务的端口号,可以自己定
 dashboard_port = 7500 # frp的web界面的端口号
 dashboard_user = user # web界面的登陆账户,自己修改
 dashboard_pwd = pass # web界面的登陆密码,自己修改
 authentication_method = token
 token = xxxxx # frp客户端连接时的密码,自己修改

然后启动

./frps -c ./frps.ini

这个时候打开游览器,直接输入 公网ip:7500,输入你上面的登录账户和密码就好了,不出问题是可以看到界面的。

  1. B这边的操作一样,下载和解压,然后这边是打开frpc.ini
sudo gedit frpc.ini
[common]
 server_addr = xx.xx.xx.xx # 你的云服务器的公网ip
 authentication_method = token
 token = xxxxx # 刚刚配置的frp连接密码 
 server_port = 7000 # 刚刚配置的frp服务端口
 
 [Fusion-ssh]
 type = tcp
 local_ip = 127.0.0.1 #本级的ip,直接这样写就好
 local_port = 22 #ssh默认22端口
 remote_port = 20022 #这个自己定,不冲突就行
 
 [Fusion-ssh]
 type = tcp
 local_ip = 127.0.0.1
 local_port = 5900  #linux的5900是vnc端口
 remote_port = 2338 #自己定义

然后就ok了,直接在terminal中输入

./frps -c ./frps.ini

这样整个配置过程就好了。


接下来就是使用了

如果是用电脑,那么就是

#这里的name是你的B的名字,ip是公网的ip,然后number是你映射B的22端口到了A的哪里,比如上面是2338
ssh name@xxx.xxx.xxx.xxx -p number

然后大概率就可以ssh你的B了

VNC的话跟ssh差不多,这里就不详细介绍了。


别急,这里还给出一个开机自动启动frpc和vnc的方案。

sudo gedit /etc/systemd/system/frpc.service

然后

[Fusion]
 Description=Frp Server Daemon
 After=syslog.target network.target
 Wants=network.target
 
 [Service]
 Type=simple
 ExecStart=/usr/local/bin/frp/frpc -c /usr/local/bin/frp/frpc.ini # 修改为你的frp实际安装目录
 ExecStop=/usr/bin/killall frpc
 #启动失败1分钟后再次启动
 RestartSec=1min
 KillMode=control-group
 #重启控制:总是重启
 Restart=always
 
 [Install]
 WantedBy=multi-user.target
sudo systemctl enable frpc.service
sudo systemctl start frpc.service
sudo systemctl status frpc.service

如果是running就好了,这样开机之后frpc就可以自动启动。这里VNC启动就不介绍了,因为启动了frpc之后可以ssh了,其余的都好办了。

对于ssh有问题的朋友,例如之前使用过,但是密钥换了导致ssh失败,这里可以

ssh-keygen -R xxx.xxx.xx.xx

后面是要ssh的ip,差不多就是这样