FRP内网穿透教程

本文详细介绍了FRP(Fast Reverse Proxy)的使用,它是一款用于内网穿透的高性能反向代理应用。通过在拥有公网IP的CentOS7服务器上部署FRP服务端,并配置Windows 10客户端,实现内网服务到公网的访问。配置包括服务端和客户端的ini文件设置,以及启动命令。成功配置后,内网服务可以通过公网IP进行访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FRP内网穿透

介绍

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

为什么使用frp

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

FRP官网

Github仓库

安装包下载地址

image-20220208152645155

  • 我的服务器是centos7系统(腾讯云主机),拥有公网ip
  • 需要穿透网络的是win10系统电脑

根据所使用的系统来选择安装包,我这里服务器端选择了Linux_amd64安装包、客户端选择了windows_amd64安装包

安装

  • 服务端的相关配置为frps**
  • 客户端的相关配置为frpc**

服务端

  1. 解压frp压缩包

image-20220208164441844

  1. 进入目录修改服务端配置

image-20220208164611263

配置文件内容
vim frps.ini
[common]
bind_addr = 0.0.0.0 #服务端连接客户端的ip地址
bind_port = 7100 #服务端连接客户端的端口
bind_udp_port = 7101 #UDP绑定端口
kcp_bind_port = 7102 #KCP绑定端口
dashboard_addr = 0.0.0.0 #服务端仪表盘面板的ip地址
dashboard_port = 7500 #服务端仪表盘面板的端口
dashboard_user = admin #仪表盘页面登录的用户名
dashboard_pwd = 123456 #仪表盘页面登录的密码
enable_prometheus = true #开启普罗米修斯
log_file = ./frps.log #设置日志文件地址
log_level = info  #设置日志记录级别
token = 1327398885 #服务端连接客户端的口令
启动命令
# 前台启动命令
./frps -c frps.ini
# 后台启动命令
nohup ./frps -c frps.ini >/dev/null 2>&1 &

其中,>为输出重定向符号,>/dev/null 2>&1。这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。

  1. /dev/null

这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

  1. 2>&1

这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

客户端

我这里使用win10系统电脑,将安装包解压

image-20220208165636059

配置文件内容
[common]
server_addr = 192.168.1.1 # 修改为服务器地址
server_port = 7100 # 服务器绑定端口
token = 1327398885 # 访问token
admin_addr = 192.168.1.1 # 客户端Web地址
admin_port = 7500 # Web访问端口
admin_user = admin # Web访问账户
admin_pwd = 123456 # Web访问密码

[company_res]
type = tcp
local_ip = 192.168.1.243
local_port = 8088
remote_port = 7200
启动命令
frpc -c frpc.ini

Ctrl+C停止服务

启动成功日志:

image-20220208170249102

运行效果

我这里代理了我本地的一个nginx文件服务

image-20220208170345886

访问公网ip,正常显示

参考

安装参考

配置参考

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙霸天

你的打赏是我不断创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值