内网穿透神器frp推荐!教你如何一劳永逸的对外暴露内网服务-

内网穿透神器frp推荐!教你如何一劳永逸的对外暴露内网服务- 背景创业公司为节约运维成本,往往把应

内网穿透神器frp推荐!教你如何一劳永逸的对外暴露内网服务-

背景

创业公司为节约运维成本,往往把应用服务放在阿里云等平台上。除了对外服务,公司还存在一些对内的测试环境、监控等服务,如果这些内部服务同时也有外网访问的需求。直接用云平台构建也蛮省事,但对于初创公司而言,会是一笔不小的成本。本文章将介绍一种更好的方式:基于frp开源工具,构建一个外网可访问的内网穿透环境。

前提条件

外网可访问,必须要有一个外网的固定ip。这个ip可以是运营商安装网络时给的(一般运营商网络多是浮动ip,要固定网络ip需额外掏钱购买),也可以是一台阿里云服务器(云服务器上有绑定对外的固定ip)。本文以一台阿里云主机作为内网穿透的跳板接入入口。即构建环境必须满足以下两个条件:

  • 一台阿里云主机
  • 内网环境至少一台机器能访问外网(运营商网络可以是浮动ip)
  • 方案原理

    以阿里云主机作为外网访问的跳板入口,通过内网穿透工具frp,转发请求到内网环境,以达到内网环境服务对外开放的目的。其中云主机上需安装frp内网穿透server端,公司内网环境安装frp client端,依靠frp server 到 client的连接作为内外网数据交换的通道。

    frp地址

    frp官方地址:

    GitHub – fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

    frp下载地址:

    Releases · fatedier/frp · GitHub

    安装

    Frp使用Go语言开发,支持linux、window、mac等操作系统。安装非常方便,选择平台下载相应安装包,解压即可使用。本文以Linux centos系统为例介绍。

    安装目录执行以下命令:

    wget https://github.com/fatedier/frp/releases/download/v0.31.0/frp_0.31.0_linux_amd64.tar.gz
    tar xzvf frp_0.31.0_linux_amd64.tar.gz
    mv frp_0.31.0_linux_amd64 frp

    cd frp目录

    其中frps前缀是服务端相关文件,frpc前缀为客户端相关文件。

    服务端配置

    编辑服务端frps.ini配置文件

    vi frps.ini

    bind_port:frps服务端监听端口,用于frpc客户端建立连接时使用。

    vhost_http_port:http访问监听端口,可根据需要自行调整其他端口。

    vhost_https_port:https访问监听端口,可根据需要自行调整其他端口。

    subdomain_host:子域名地址定义。用于服务端请求域名地址转发,如***.com

    dashboard:一个简单的frp服务监控面板设置。

    注意:以上配置端口,在云主机上需开放对应端口访问权限,否则服务将无法正常访问。

    完成配置后,启动frps服务

    nohup ./frps -c frps.ini &

    客户端配置

    编辑frpc.ini客户端配置

    server_addr:frps服务端ip地址,对应云主机外网访问ip地址。

    server_port:对应frps服务端监听端口,这里7000与上一步配置端口对应。

    [web]:转发规则配置分组。

    type:协议类型。http或https等。

    local_port:请求转发端口。

    subdomain:请求转发子域名域名地址。frps.ini文件subdomain_host定义了***.com子域名,这里实际对应test.***.com格式的域名请求地址。

    注意:以上配置端口,需开放防火墙对应端口限制,否则访问可能失败。

    完成配置后,启动frpc服务

    nohup ./frpc -c frpc.ini &

    小结

    完成以上步骤,内网服务器上启动相关服务。浏览器访问test.***.com域名服务,即可在外网访问内部服务。

    本文介绍了内网穿透工具frp的使用背景,构建方式。通过简单的frp服务端和客户端配置,实现了内网服务的外网域名访问。实际frp的实现远远不止http/https域名的穿透访问,它也支持ssh、tcp、udp等路由功能,有兴趣的小伙伴可以自行参考官网介绍。这里仅做抛砖引玉,欢迎一起深入讨论。

    作者: 大白菜装机

    为您推荐

    返回顶部