应用场景:
由于疫情期间只能在家呆着,想连接实验室里服务器,这样在家里的电脑直接输入网址就可以连到服务器上敲代码,跑模型。可是网上大多教程都是连接ssh,而我是想连接配置服务器上的neo4j和jupyter notebook,于是捣鼓了半天,记录一下流程。
准备工作
- 有公网ip的云服务器,我用的是阿里云。
- 有内网服务器,也就是我实验室的服务器。
- 在两个服务器上分别下载frp,地址link,注意对应自己服务器的版本。
安装frp
1.我选的版本是 frp_0.31.2_linux_amd64.tar.gz
2.解压压缩文件 tar xf frp_0.31.2_linux_amd64.tar.gz
阿里云服务器上配置
1.进入文件夹 cd frp_0.31.2_linux_amd64
2.删除 frpc结尾的文件 rm -f frpc
3.配置frps
vi frps.ini
[common]
#穿透的端口
bind_port = 7000
#http端口设置(如果不需要http,则可以不写下面这句话)
vhost_http_port = 7474
运行
建议先不要nohup,观察结果后,确定一切都顺利,最后加入nohup
$ ./frps -c frps.ini
实验室服务器上配置
1.进入文件夹 cd frp_0.31.2_linux_amd64
2.删除 frps结尾的文件 rm -f frps
3.配置frpc
vi frpc.ini
[common]
#阿里云服务器地址
server_addr = x.x.x.x
#跟阿里云端口对应
server_port = 7000
[ssh]
#tcp协议
type = tcp
#实验室服务器的端口
local_port = 22
# 实验室服务器的ip
local_ip=127.0.0.1
#阿里云服务器地址
custom_domains = x.x.x.x
#阿里云服务器端口
remote_port = 6002
[web]
#http协议
type = http
#实验室服务器地址
local_ip = 127.0.0.1
#实验室服务器的端口号,若选择http协议,需写在云服务器中的[common]:vhost_http_port = 7474
local_port =7474
#阿里云服务器端口
remote_port=6000
#阿里云服务器地址
custom_domains = x.x.x.x
[web1]
#该协议为tcp,不需配置vhost_http_port
type = tcp
local_ip = 127.0.0.1
local_port = 7687
remote_port = 6001
[web2]
tyoe = tcp
local_ip = 127.0.0.1
local_port = 8888
remote_port = 8890
运行
建议先不要nohup,观察结果后,确定一切都顺利,最后加入nohup
$ ./frpc -c frpc.ini
注意:
使用阿里云的时候,需要添加安全组规则,是对应的端口可以访问,以上程序中和local_port对应的端口号全部得添加进安全规则入方向。
结果
至此所有流程已经结束,来看看是否成功。
- 本来在实验室的电脑上输入服务器地址+端口号可以访问neo4j(localhost:7474),现在家里或者任意一台电脑上输入阿里云服务器地址+端口号(x.x.x.x:7474)即可访问
- 本来在实验室的电脑上输入服务器地址+端口号可以访问jupyter notebook (localhost:8888),现在家里或者任意一台电脑上输入阿里云服务器地址+端口号(x.x.x.x:888)即可访问