内网穿透工具 FRP

次浏览

摘要:FRP 全名:Fast Reverse Proxy。FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。...

对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器上的服务是一个问题。

今天给大家介绍一款好用内网穿透工具 FRP,FRP 全名:Fast Reverse Proxy。

FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。

FRP 项目地址:https://github.com/fatedier/frp

更多平台的软件包下载地址:https://github.com/fatedier/frp/releases

FRP 的作用

利用处于内网或防火墙后的机器,对外网环境提供 HTTP 或 HTTPS 服务。

对于 HTTP, HTTPS 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个 80 端口。

利用处于内网或防火墙后的机器,对外网环境提供 TCP 和 UDP 服务,例如在家里通过 SSH 访问处于公司内网环境内的主机。

开发状态

frp 仍然处于开发阶段,未经充分测试与验证,不推荐用于生产环境。

master 分支用于发布稳定版本,dev 分支用于开发,您可以尝试下载最新的 release 版本进行测试。

目前的交互协议可能随时改变,不保证向后兼容,升级新版本时需要注意公告说明同时升级服务端和客户端。

架构

FRP结构

FRP 安装

FRP 采用 Go 语言开发,支持 Windows、Linux、MacOS、ARM等多平台部署。FRP 安装非常容易,只需下载对应系统平台的软件包,并解压就可用。

这里以 Linux 为例,安装的是 frp_0.30.0 版 64 位软件,为了方便管理,解压后的目录重命名为 frp

# GitHub.com 下载
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz && tar xzvf frp_0.30.0_linux_amd64.tar.gz && mv frp_0.30.0_linux_amd64 frp


# Pan.NasGe.com 下载(推荐)
wget http://pan.nasge.com/frp/v0.30.0/frp_0.30.0_linux_amd64.tar.gz && tar xzvf frp_0.30.0_linux_amd64.tar.gz && mv frp_0.30.0_linux_amd64 frp

更多平台的软件包下载地址:https://github.com/fatedier/frp/releases

FRP 公网服务端配置

配置 FRP 服务端的前提条件是需要一台具有**公网 IP **的设备,得益于 FRP 是 Go 语言开发的,具有良好的跨平台特性。你可以在 Windows、Linux、MacOS、ARM等几乎任何可联网设备上部署。

这里以 Linux 为例,FRP 默认给出两个服务端配置文件,一个是简版的 frps.ini,另一个是完整版本 frps_full.ini

我们先来看看简版的 frps.ini,通过这个配置可以快速的搭建起一个 FRP 服务端,这里使用了最简化的配置。

# frps.ini 内容
[common]
bind_port = 7000

# frps.ini 内容结束



----------------------分割线----------------------

root@U-NAS:~/frp# cat frps.ini
[common]
bind_port = 7000

# 默认配置中监听的是 7000 端口,可根据自己实际情况修改。

在frp目录下输入【./frps -c ./frps.ini】命令启动 frps

root@U-NAS:~/frp# ./frps -c ./frps.ini
2019/12/17 18:06:54 [I] [service.go:141] frps tcp listen on 0.0.0.0:7000
2019/12/17 18:06:54 [I] [root.go:205] start frps success

出现【Start frps success】代表运行成功

通过上面简单的两步就可以成功启动一个监听在 7000 端口的 FRP 服务端。

FRP 内网客户端配置

和 FRP 服务端类似,FRP 默认也给出两个客户端配置文件,一个是简版的 frpc.ini,另一个是完整版本 frpc_full.ini

这里同样以简版的 frpc.ini 文件为例,假设 FRP 服务端所在服务器的公网 IP 为 192.168.44.130

root@U-NAS:~/frp# vi frpc.ini

[common]
# server_addr 为 FRP 服务端的公网 IP
server_addr = 192.168.44.130

# server_port 为 FRP 服务端监听的端口
server_port = 7000



[ssh]
type = tcp
# local_ip 为 内外客户端IP
local_ip = 127.0.0.1 

# local_port 为 内外客户端端口
local_port = 22 

# remote_port 为 内网服务端端口
remote_port = 6000 



[web]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 6001

在frp目录下输入【./frpc -c ./frpc.ini】命令启动 frpc

root@U-NAS:~/frp# ./frpc -c ./frpc.ini
2019/12/17 17:33:31 [I] [service.go:249] [35481b55cd500a76] login to server success, get run id [35481b55cd500a76], server udp port [0]
2019/12/17 18:33:31 [I] [proxy_manager.go:144] [35481b55cd500a76] proxy added: [ssh web]
2019/12/17 18:33:31 [I] [control.go:164] [35481b55cd500a76] [ssh] start proxy success
2019/12/17 18:33:31 [I] [control.go:164] [35481b55cd500a76] [web] start proxy success

这样就可以成功在 FRP 公网服务端上成功建立一个内网客户端连接,在 FRP 服务端上成功注册了一个端口为 60006001 的服务,接下来我们就可以通过这两个端口访问内网客户端上 SSH 22端口、WEB:80端口服务。

  • 公网服务端 192.168.44.130:6000 定向为 内网客户端 127.0.0.1:22【SSH端口】
  • 公网服务端 192.168.44.130:6001 定向为 内网客户端 127.0.0.1:80【WEB端口】

总结

根据对应的操作系统及架构,从 Release 页面下载最新版本的程序。

frpsfrps.ini 放到具有公网 IP 的机器上。

frpcfrpc.ini 放到处于内网环境的机器上。

拓展阅读

内网穿透工具 FRP 相关命令

内网穿透工具 FRP 客户端-Linux、群晖、U-NAS 一键安装命令

内网穿透工具 FRP Linux 环境搭建

内网穿透工具 FRP 服务端、客户端 frps.ini 、frpc.ini 快速配置文件说明

内网穿透工具 FRP 客户端 frpc.ini 配置文件说明

内网穿透工具 FRP 服务端 frps.ini 配置文件说明

内网穿透 FRP 使用实例

内网穿透工具 FRP 服务端增加仪表盘控制界面 Dashboard

 

 

---------------------------------- THE END ----------------------------------

随机新闻