内网透传,简单的一句话就是让外部的互联网主机,可以访问你局域网内的机器上的HTTP,HTTPS,TCP或UDP服务。
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
代理组间的负载均衡。
端口复用,多个服务通过同一个服务端端口暴露。
多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。服务端和客户端 UI 页面。
功能示意图:
0 安装
frp为go语言开发,可以支持Windows,Linux,MacOS,ARM等多平台部署。不用安装,下载不同平台的压缩包,直接解压就行。下载地址:
[Releases?·?fatedier/frp?·?GitHub](https://github.com/fatedier/frp/releases)
一 服务端
1.1 服务端配置
[common]
?#与客户端绑定的进行通信的端口
bind_port?=?8000
#?绑定的IP
bind_addr?=?0.0.0.0
#访问客户端web服务自定义的端口号,如果是https?就改成vhost_https_port
vhost_http_port?=?8080
#frp一个访问页面,只是显示配置没多大用
dashboard_addr?=?0.0.0.0
dashboard_port?=?7500
#访问frbs的前台账号和密码
dashboard_user?=?admin
dashboard_pwd?=?12341111
#本身日志信息
log_file?=?./frps.log
log_level?=?info
log_max_days?=?3
disable_log_color?=?false
#连接标识
authentication_method?=?token
#?校验token
token?=?1234567
1.2 服务器端启动
nohup???./frps?-c?./frps.ini?&
二 客户端配置
2.1 客户端配置
[common]
server_addr?=?服务器的ip
#通信端口
server_port?=?8000
#鉴权方法
authentication_method?=?token
token?=?1234567
#?一定要加不加连不上
tls_enable=true
log_file?=?./frpc.log
log_level?=?info
log_max_days?=?3
disable_log_color?=?false
#ssh的中转
[ssh]
type?=?tcp
local_ip?=?127.0.0.1
local_port?=?22
#远端的访问端口
remote_port?=?1234
[web]
type=http
local_ip=?内网地址可以写127.0.0.1
#本机的http端口
local_port=80
custom_domains=服务器的ip或域名
如上的服务器端配置图示如下:
最终连接示意图
三 实际访问
ssh访问:
ssh?-p?1234?root@x.x.x.x
x.x.x.x 服务器的IP test 为服务器用户
web访问:
http://x.x.x.x:8080
注意,如果多个web服务器,必须通过域名来控制访问,配置p名字不能相同。比如:
[web01]
type?=?http
local_port?=?8080
custom_domains?=?www.chendahai.cn
[web02]
type?=?http
local_port?=?80
custom_domains?=?cd.chendahai.cn?
访问用的URL: http:// www.chendahai.cn:8080和 http://cd.chendahai.cn
四 开机启动
echo "nohup /root/soft/frp_run/frpc -c /root/soft/frp_run/frps.ini &" >> ?/etc/rc.d/rc.local 或者做成服务:
?
??mkdir?-p?/etc/frp
??cp?frps.ini?/etc/frp
??cp?frps?/usr/bin
??cp?systemd/frps.service?/usr/lib/systemd/system/
??#?设置开机启动
??systemctl?enable?frps
??#?启动
??systemctl?start?frps
五 更多信息
官方文档
[官方文档?|?frp?(gofrp.org)](https://gofrp.org/docs/)