frp搭建,实现内网穿透(端口映射)

内网穿透基本知识

参照ngrok搭建

搭建

环境准备

外网服务器系统为centos7, 内网客户端系统为win7;一个指向外网服务器的公网域名

工具下载

git开源项目,release包地址, 下载最新的,这里使用的版本为v0.17.0
外网服务下执行:

1
2
3
4
5
wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gz
tar -zxvf
cd frp_0.17.0_linux_amd64/

客户端直接下载,被墙的话,就开代理全局模式下载。

配置,连接

外网服务器

编辑frps.ini文件

1
2
3
4
5
[common]
# 与客户端绑定,进行通信的端口号
bind_port = 7000
# 访问客户端web服务器的自定义端口号
vhost_http_port = 7001

执行命令开启服务,格式为程序 -c 配置文件,&符号指定服务后台运行。

1
./frps -c ./frps.ini &

内网客户端

编辑frpc.ini文件

1
2
3
4
5
6
7
8
9
10
11
12
13
[common]
# 外网服务器ip
server_addr = **.**.**.**
#与服务端bind_port一致
server_port = 7000
[web]
# 声明协议类型
type = http
#内网机器web服务端口
local_port = 8060
# 指向外网服务的公网域名
custom_domains = yourdomain

执行./frpc.exe,连接服务

访问

浏览器输入外网地址,访问内网服务,格式为yourdomain:7001/youpath
如下图:
外网服务器日志
frps_public_log
内网服务器日志
frpc_private_log
浏览器显示
frp_browser
至此,使用frp完成基本的内网穿透,通过外网可访问内网的web项目,实际可用于解决本地调试第三方回调。

扩展

监听多端口,frpc.ini如下

1
2
3
4
5
6
7
8
9
10
11
12
13
[common]
server_addr = **.**.**.**
server_port = 7000
[web1]
type = http
local_port = 8070
custom_domains = yourdomain1
[web2]
type = http
local_port = 8080
custom_domains = yourdomain2

frp功能强大,通过配置frpc.ini和frpc.ini,可实现通过外网ssh登录内网机器、远程桌面、查看frp dashboard、https访问等,配置都很简单,需要则查阅相关资料。