前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FRP内网穿透教程「建议收藏」

FRP内网穿透教程「建议收藏」

作者头像
全栈程序员站长
发布2022-09-30 11:05:06
1.1K0
发布2022-09-30 11:05:06
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈

FRP内网穿透

介绍

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

为什么使用frp

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

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

FRP官网

Github仓库

安装包下载地址

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

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

安装

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

服务端

  1. 解压frp压缩包
image-20220208164441844
image-20220208164441844
  1. 进入目录修改服务端配置
image-20220208164611263
image-20220208164611263
配置文件内容
代码语言:javascript
复制
vim frps.ini
代码语言:javascript
复制
[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 #服务端连接客户端的口令
启动命令
代码语言:javascript
复制
# 前台启动命令
./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
image-20220208165636059
配置文件内容
代码语言:javascript
复制
[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
启动命令
代码语言:javascript
复制
frpc -c frpc.ini

Ctrl+C停止服务

启动成功日志:

image-20220208170249102
image-20220208170249102

运行效果

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

image-20220208170345886
image-20220208170345886

访问公网ip,正常显示

参考

安装参考

配置参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194273.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月13日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FRP内网穿透
    • 介绍
      • 为什么使用frp
    • 安装
      • 服务端
      • 客户端
    • 运行效果
      • 参考
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档