¶一、frp的作用
frp的作用就是实现内网穿透,内网穿透就是允许内网的主机能够被外网的其他主机访问,内网穿透是反向代理技术中的一个中间环节技术。对于反向代理的更多理解可见另外一文《关于代理技术的理解》。
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。说罢,也就是给外网提供内网主机的http 或 https 服务。
此外,还能利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
此处的讲解包括:
- 外网访问内网http 或 https 服务
- 外网访问内网ssh服务
¶二、准备说明
¶实现功能
(1)自定义绑定域名访问内网web服务
¶配置前准备
(1)公网服务器1台
(2)内网服务器1台
(3)公网服务器绑定域名1个
(4)内网服务器部署一个web服务
(5)内网服务器部署安装了ssh服务(如只做web服务,可以省略此步)
¶三、服务端
¶安装配置
1 | #下载frp |
frps、frps.ini这个两个是服务端文件,frpc、frpc.ini这两个是客户端文件
配置服务端
1 | vi ./frps.ini |
按”i”键进行编辑,按esc退出编辑状态,输入:wq退出
¶防火墙配置
1 | #查看当前firewall防火墙服务是否开启 |
如果防护墙处于关闭状态的话无需进行以下端口号的开放步骤,否则继续。
如果7000端口和8080端口已经开放并且没有进程占用端口的话,则无需进行以下端口号的开放步骤,否则继续。
1 | firewall-cmd --permanent --add-port=7000/tcp #开放frp服务端的监听端口 |
¶启动服务端
1 | #临时启动 |
¶四、客户端
¶安装配置
根据客户端操作系统的情况下载frp客户端
需要注意的是:客户端和服务端的版本号要一致。
frp服务端和客户端都是在一个包里,如果都是linux则下载相同版本的
frp_版本号_linux_amd64.tar.gz即可,如果客户端是windows,那么下载frp_版本号_windows_amd64.zip
不同操作系统操作大同小异。下面以linux为例,假设已经下载并解析好。
1 | vi ./frpc.ini #编辑frpc.ini配置文件 |
1 | [common] |
¶启动客户端
1 | #临时启动 |
¶五、测试http和ssh
(1)http测试:
浏览器打开访问http://域名:8080/资源路径(如:http://example.com:8080/myproject/index.html)
(2)ssh测试:
1 | ssh [-p port] user@remote #ssh远程连接服务器 |
¶六、配置详解
¶服务端
1 | # 通用配置段 |
¶客户端
1 | # 通用配置段 |
¶七、参考
https://www.bookstack.cn/read/frp-0.36-zh/70fe76b44fdacf77.md
