有时候想摸鱼不去实验室,在宿舍就直接连接到实验室的GPU服务器。奈何服务器在校园网内部,外网无法直接直接访问。此时需要手动搭一个跳板机,来连接到内网的GPU服务器,这一过程怎么做到呢?我们可以使用frp内网穿透工具,frp是一个开源、简洁易用、高性能的内网穿透和反向代理软件。
准备工作:首先你要有一台自己的电脑,实验室的服务器,以及一台具有公网IP的设备。
公网IP的设备可以去租用各个厂商的云服务器,用最低配置即可(这里以阿里云为例,我当时在TB买的轻量应用服务器,比较便宜省心)。在你买的节点按照步骤自动虚拟化、安装完操作系统以后,就可以在控制台看到你的公网IP了。
对于有公网IP的云服务器
此设备将作为frp内网穿透中的服务端,因此需要进入该系统的控制台进行frp服务端的下载以及配置,具体的流程如下:
(1)下载frp服务端(由于从github下的,速度很慢,可能需要多下几次;有时候下完也会出问题,如果出现core dump删掉重新下载即可):
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
(2)解压:
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
(3)进入该目录:
cd frp_0.33.0_linux_amd64/
(4)查看配置文件:
cat frps.ini
发现里面只有一个默认的绑定端口7000,记住这个端口号。
(5)配置完成后启动服务:
./frps -c frps.ini
出现一堆蓝色的代码,现实success即为成功。
为了防止节点重启或关机,可以设置一个开机启动的程序;如果不想跑在前台,可以用nohup等操作后台运行。
对于内网的实验室服务器
实验室的内网服务器作为frp内网穿透中的客户端,向具有公网IP的云服务器发送请求。具体的操作流程如下:
(1)在物理机上下载frp客户端:下载、解压、切换目录均与上面一样的操作。
(2)配置frpc.ini
文件:
[common] server_addr = xxx.xxx.xxx.xxx server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
(3)启动客户端程序:
./frpc -c frpc.ini
出现一堆蓝色的代码,显示success以及start即为成功。
同样地,客户端也可以设置一个开机自动运行的脚本,防止内网服务器的重启或关机。
自己的电脑
在上面两个设备配置好之后,在自己的电脑上(外网)通过xshell等工具建立ssh连接,ip为公网IP,端口号为6000(客户端配置文件中的remote_port)。然后通过账号密码就可以在非内网的情况下登录到内网的服务器了。
原文链接:https://blog.csdn.net/jackzhang11/article/details/130199856