Frp内网穿透

疫情在家太久了,经常需要用服务器资源做一些事情,部署项目啊,跑作业啊。今天就用有公网Ip的服务器实现frp内网穿透。

内网穿透说白了就是,我们实验室分配了一台服务器资源,但是是内网环境,外网访问不到。我们想在本地环境访问内网服务器,就要做内网穿透才可以。当然连vpn也可以访问,但是每次连vpn不仅麻烦,而且挂着vpn会影响看片的速度。那么内网穿透实现的原理是怎样的?看图:image-20200407214903850

就是借助具有公网IP的服务器当做跳板来访问内网服务器。所以了,前提是你要有一台具有公网IP的服务器,或者你的宽带有公网IP,这就得咨询运营商了(一般不可能主动提供的)。

Frp

官网点这

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。首先要下载frp到你的内网服务器和公网代理机上,进去选择相应的版本。我这里是amd架构。

image-20200407215349375

解压后进入文件夹,可以看到这些文件,这里注意一下,我们在内网服务器用的都是frpc,在公网代理机用的是frps。或者你直接记住,frps就是代理机,frpc就是内网服务器。

image-20200407215600600

Frps

image-20200407220002335

可以看到代理机的配置非常少,只要配置一个端口就行,我这里是8881端口,如果你的8881端口有服务,换成别的端口就行。

Frpc

现在打开内网服务器,进入frp的目录,看一下frpc的配置有哪些:

image-20200407220234019

  • server_addr:这个就是跳转机的公网IP
  • server_port:服务端口
  • ssh的配置不用管,但是这个6000端口是我们要用的。

启动frp,访问测试

启动跳转机frp(在frp目录下)

1
./frps -c ./frps.ini

image-20200407221646951

启动内网服务器frp

1
./frpc -c ./frpc.ini

image-20200407221752608

再回头看注册机也已经发生了变化,代理成功:

image-20200407221854764

测试访问

直接通过xshell新建一个连接,主机写公网IP,端口写6000,发现已经通过公网IP连接上来了。

image-20200407222359320

配置访问gitlab

再接下来的配置都是一个思路了,我们上边是配置了一个ssh。配置如下:

1
2
3
4
[ssh]
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

因为ssh的默认端口是22端口,这个配置就是把22端口代理到远程的6000端口。

现在查看gitlab的端口是8072,我们代理到1235端口,在froc,ini添加

1
2
3
4
[gitlab]
local_ip=127.0.0.1
local_port=8072
remote_port=1235

然后重启frp,访问公网IP:1235发现gitlab已经打开了。

别的端口代理也是一个道理,直接去frpc.ini添加相应配置就行了

Attention

  • connection time-out

    看看端口有没有放行,阿里云要去控制台放行才会生效。

    关闭防火墙。

  • 我们这种方式启动占据了命令窗口,可以后台驻留启动

    1
    2
    3
    服务端: nohup ./frps -c frps.ini >/dev/null 2>&1 &
    客户端: nohup ./frpc -c frpc.ini >/dev/null 2>&1 &
    说明:>/dev/null 2>&1 &,表示丢弃。
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信