gitlab+frp实现在外访问gitlab、外网访问内网工具包frp配置超详细步骤

git三部曲之frp安装

git三部曲之gitlab安装链接请戳这里CSDN

目录

git三部曲之frp安装

一 写在最前,这篇文章可以做什么?为什么是frp?

二  需要的条件

三 下载和安装

第一步:获取frp文件

第二步:解压安装

(一)windows环境下的server端的安装

(二)windows环境下的server端的安装


一 写在最前,这篇文章可以做什么?为什么是frp?

在内网部署了gitlab之后,如何在家也能够访问内网服务器?

用一种内网穿透工具即可实现在家条件下对内网的访问。但是诸如 XXX、XXX等(因为审核严格为了能够通过只能做修改)内网穿透工具要么不太稳定,要么需要花钱。这篇文章详细记录了frp应用在gitlab上详细的过程,文章很详细也很长。

what‘s frp,why frp?

frp是一个快速反向代理,可帮助您将本地服务器暴露给Internet。 截至目前,它支持tcp&udp以及http和https协议,其中请求可以通过域名或者公网IP转发到内部服务器。

在Web应用上线前都会在内网进行测试,而有些功能是只有在公网上才能做测试的,比如为APP提供的接口等等。所以经常需要在正式上线之前将内网的服务器映射到公网上去。也就是赋予内网上服务器一个域名(公网地址),开放几个端口。

在公网上购置一台服务器,不需要配置很高,只要流量够用就行。然后在公网服务器上配置穿透工具的服务端,在能接通公网的内网服务器上配置客户端,这样就把内网中的一个端口映射至了公网。极大方便了Web应用调试一些远程API (比如微信公众号,企业号的开发)。

frp的同类产品是huashengke,后者现在必须付费,可以作为后者的平替。

本篇文章记录的是gitlab的外边访问,web应用具体化为gitlab

二  需要的条件

(1)公网服务器1台(公网服务器可以用腾讯云或者阿里云上的服务器,预装的windows系统)

(2)内网服务器1台(本次安装是linux环境,ubuntu16.04)

(3)公网服务器公网IP地址个(购买云服务器一般都有公网ip)

(4)内网服务器部署gitlab。gitlab的部署方法详见文章头部链接(此处的web服务是gitlab,其他web服务也是亲测可用,也可以按照本文章来进行配置,和gitlab配置基本相同)

本次实现主要是写的是在windows环境下的部署服务端(server),在linux下环境下部署客户端(client)。

本次安装环境是公网是一个安装了windows系统的服务器,gitlab搭建在了linux系统的内网服务器下

三 下载和安装

第一步:获取frp文件

获取文件的官网地址链接:https://github.com/fatedier/frp/releases

分别把下载的两个版本的frp包放到对应的服务器上。

在0.13.0 以前的版本和0.13.0以后的版本在配置上会有差别,本篇文章的配置命令适用于0.13.0以后的版本。

frp支持linux平台和windows平台。根据需求选择相应的版本。

一般linux平台下载的版本为:frp_版本号_linux_amd64.tar.gz,

windows平台下载的版本为:frp_版本号_windows_amd64.zip。

__amd64__用于64位的服务器,_386__用于32位的服务器,如果你的服务器配置很低,可能还是会用到32位版本的。

第二步:解压安装

(一)windows环境下的server端的安装

1.选中、右键解压。

文件解压后,一般都含有
frps(frp服务端运行文件)、
frpc(frp客户端运行文件)、
frps.ini(frp服务端配置文件)、
frpc.ini(frp客户端配置文件)、
frp_full.ini(frp全部配置文件解释说明和参考)
这5个文件

2.把文件中的frps.exe和frps.ini拷贝至服务器C盘的frp文件夹下(s就是server服务端的意思),在此处windows环境配置服务端,所以只留这两个文件即可。

3.我们修改frps.ini文件,根据你的实际情况修改下面的信息。在新版中客户端不需要配置太多的信息。只需要按照如下信息简单配置即可。

[common]

bind_port = 5443             #与客户端绑定的进行通信的端口

dashboard_port = 6440        #和外部通信的端口、客户端web服务自定义的端口号

vhost_http_port = 8080       #设置穿透 http 的端口默认为80,因为80端口已经被我们占用了,所以这里改为8080

dashboard_user = admin      #第一次登陆需要填写的用户名

dashboard_pwd = admin123    #第一次登陆所需要的密码

privilege_mode = true       # 设置特权模式是否开启,开通后web,ssh等使用都可以直接在客户端设置

token = XXXX                #客户端的token值应该和这个相同

#注意此处没有写本机的公网ip地址,如此配置和配置bind_addr = 0.0.0.0 的效果是一样的

#要确保这上述端口是是可用的,即必须在防火墙上、服务器上放开,还要保证端口没有被其他的应用占用

在服务器中放开:以常用的阿里云服务器为例,安全组规则里面添加规则就行了,如果不打开,会无法运行。其他平台上的虚拟机可以自行查找如何放行。

防火墙的放开:防火墙放开在window + r  然后在输入框下输入cmd 进入到windows的命令行配置界面

然后输入

C:\Users\Administrator>netsh advfirewall firewall add rule name="Open Port 6440" dir=in action=allow protocol=TCP localport=6443

得到确定则说名防火墙有成功放开,因为我们的无论ssh、http、https都是tcp协议端口所以protocol=TCP,ocalport=6443表示想开放的端口号是6643

4.在命令行配置界面输入一下内容启用frp的服务:

c:\frps\frps.exe -c c:\frps\frps.ini

如果我们在服务器的任务管理器里面看到frps.exe进程就说明frp启用成功了。

5.我们在浏览器中输入客户端主机的公网ip地址: dashboard_port  ,即公网的主机ip地址:6440可以看到如下界面也能说明frps安装成功了。

首次访问的时候会要求我们输入用户名密码,就是frps.ini配置文件中的dashboard_user和dashboard_pwd

(二)Linux环境下的client端的安装

1.解压压缩包,解压命令为 tar -zxvf 文件名 

我的安装包的名字为 frp_0.32.1_linux_amd64.tar.gz 所以具体命令为 tar -zxvf frp_0.32.1_linux_amd64.tar.gz

2.解压后将解压得到的文件frpc复制到/usr/bin目录    (在linux下如果想在这个目录下面增删文件文档必须得知道root账号密码)

3  填写frpc.ini 配置文件。因为gitlab有ssh和http两种方式,所以在这个client端两种方式都配置启用了。

[common]
server_addr = 152.136.186.137           #(服务端口的ip地址)
server_port = 5443                      #(服务端和客户端通信的端口)与服务端bind_port一致
token = xxxx                            #和服务端设置的token一致
admin_port = 7001                       #这个是frp进程控制端口,也必须要设置
tcp_mux = true
protocol = tcp
#login_fail_exit = false

[ssh]
type = tcp
local_ip = 172.16.50.20 #本地服务器的地址
local_port = 80         #本地服务所用的端口,因为gitlab用的默认的80服务端口,所以这里填写80 
remote_port = 6444      #本地clent端的ssh服务和作为server端的外网服务器的通信端口

[http]
type = tcp
local_ip = 127.0.0.1          #和写这个172.16.50.20内网地址效果是一样的
local_port = 80
remote_port = 6443            #本地clent端的http服务和作为server端的外网服务器的通信端口

以上所用到的各个端口都要保证不能被占用。

4 把这个两个clent端文件粘贴到它应该在的位置,这样才能起作用:

root@ubuntu:/usr# cp frp_0.32.1_linux_amd64/frpc*  /usr/bin/

root@ubuntu:/usr# cp frp_0.32.1_linux_amd64/frpc.ini    /etc/

把这两个文件分别放到这两个目录下面

如果执行权限不够就用如下命令更改执行权限,如果执行权限够,则下面命令不用执行

chmod 777 /usr/bin/frpc

chmod 777 /etc/frpc.ini

5 启动服务:

frpc -c /etc/frpc.ini

如果启用结果如上图所示,则说明ssh 和http两个服务都已经成功启用。

此时是前台运行的,可以通过&符号让其后台运行。这样在控制台关闭时不至于让进程中断

可以使用命令

frpc -c /etc/frpc.ini &

看到看到nohub.out字样,就代表真成功了,可以按ctrl+c 退出,或者直接退出控制台。

可以通过ps aux  | grep  frpc  或者  ps -aux|grep frp| grep -v grep 来查看当前frpc的进程号,会看到此时进程在后台运行。

如果想停止该服务,可以通过kill进程号 来终止进程

6 此时即可以在外网条件下,用公网的

主机ip地址:6443 # http

主机ip地址:6444 # ssh

或者来访问局域网内部部署的gitlab。

此后用gitlab在外网进行clone等操作的时候要用外网地址进行clone操作,不能用内网地址进行clone操作了

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值