首页 > 其他分享 >69.9K Star,最强开源内网穿透工具:frp

69.9K Star,最强开源内网穿透工具:frp

时间:2023-08-04 12:34:37浏览次数:42  
标签:69.9 Star server 访问 frp ssh https port

作为一名开发者,有很多场景需要用到内网穿透,比如:我们在接入一些大平台做第三方应用时,在本地开发微信公众号工具的时候需要让微信平台能否访问到本地提供的接口。除此之外,还有很多其他场景,也会用到,比如:把放在家里的NAS或服务器暴露到公网上,这样在外面的时候也可以随时随地的访问。

说到内网传统,TJ君第一个想到的是国内最早的一款知名软件:花生壳。但是今天不是要推荐它,而是要推荐一个更牛的开源项目:frp!该项目目前已经收获了69.9 K Star,在GitHub上获得了极大的认可!

下载安装

frp目前已经提供了大部分操作系统的支持版本,通过这个链接:https://github.com/fatedier/frp/releases, 就可以下载到适合你使用的安装。

以Windows的包为例,解压后可以获得这些内容:

frps是服务端程序,frpc是客户端程序。ini文件就是对应的配置文件。

首发 https://blog.didispace.com/tj-opensource-frp/ ,转载请注明出处

暴露内网服务

内网穿透的玩法有很多,这里列举一个比较常见的例子。

比如:我要暴露一个只有自己能访问到服务器。那么可以这样配置:

配置 frps.ini,并启动服务端 frps

[common]
bind_port = 7000

在需要暴露到外网的机器上部署 frpc,配置如下:

[common]
server_addr = x.x.x.x 
server_port = 7000

[secret_ssh]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22

在想要访问内网服务的机器上也部署 frpc,配置如下:

[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = secret_ssh
sk = abcdefg
# 绑定本地端口用于访问 SSH 服务
bind_addr = 127.0.0.1
bind_port = 6000

把frpc也都启动起来之后,通过 SSH 就可以访问内网机器了

ssh -oPort=6000 [email protected]

其他支持

除了上面的玩法之外,frp还有很多玩法,比如:

  • 自定义域名访问内网的 Web 服务
  • 转发 DNS 查询请求
  • 转发 Unix 域套接字
  • 对外提供简单的文件访问服务
  • 为本地 HTTP 服务启用 HTTPS
  • 点对点内网穿透

篇幅有限,具体如何配置这里就不多说了,有需要的读者可以直接查看官方文档,均有详细的服务端客户端配置案例。

最后,奉上相关链接:

开源地址:https://github.com/fatedier/frp/
文档地址:https://gofrp.org/docs/

欢迎关注我的公众号:程序猿DD。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源

标签:69.9,Star,server,访问,frp,ssh,https,port
From: https://www.cnblogs.com/didispace/p/17605571.html

相关文章

  • DFS 算法模板——二叉树的遍历非递归写法要会,排列组合的一定要自己画一颗树,变量i和当
    dfs算法模板:1、下一层仅2个节点的dfs,也就是二叉树的dfs先序遍历,迭代和递归写法都要熟悉:defpreoder_traversal(root):ifnotroot:returnstack=[root]whilestack:node=stack.pop()dosomethingwithnodeifnode.ri......
  • Activity之间数据交流一(startActivityForResult , onActivityResult , setResult 的用
    主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这样的数据交流就要用到主Activity回调函数onActivityResult()。一些方法: 主Activity中:<1>主Activity......
  • Failed to start: app/proxyman/inbound: failed to listen TCP on 10808
    问题现象启动v2xxx-With-Core失败,报错信息如下:2023/08/0311:38:56[Info]infra/conf/serial:Readingconfig:F:\工具\小工具\v2xxx-With-Core\guiConfigs\config.jsonFailedtostart:app/proxyman/inbound:failedtolistenTCPon10808>transport/internet:faile......
  • frp 树莓派通过systemd设置开机启动
    树莓派操作系统为xxx@raspberrypi:$cat/etc/os-releasePRETTY_NAME="DebianGNU/Linux11(bullseye)"NAME="DebianGNU/Linux"VERSION_ID="11"VERSION="11(bullseye)"VERSION_CODENAME=bullseyeID=debianHOME_URL="https:......
  • 定制ISO时在kickstart脚本的%post后处理阶段拷贝文件
    自己定制ISO使用ks.cfg实现自动安装时,可以在%post阶段执行添加文件、创建帐号、安全加固等操作,一般都会涉及从安装介质拷贝文件到目标系统,网上很多文章都是直接mount固定设备比如/dev/sr0,但实际安装过程中,ISO文件可能被刻录成光盘或U盘,另外UEFI和BIOS模式也有影响,因此无法提前知道......
  • Nginx报错Can't open PID file /var/run/nginx.pid (yet?) after start: No such file
    1.关于报错启动nginx服务发现Systemd中存在报错:Can'topenPIDfile/var/run/nginx.pid(yet?)afterstart:Nosuchfileordirectory2.解决办法2.1查看版本和配置选项信息nginx-V参数看到报错中提到的信息2.2定位问题文件增加启动参数配置发现该文件存......
  • bootstart
    今日内容详细文档处理#js中创建一个节点vara=document.createElement('a');<script>letp=$('<p>')//在jQuery中创建一个标签p.text("hello")//在标签对象中添加文本p.attr("id","d1")//对标签对象设置id$("body......
  • Spring Boot Starter 剖析与实践
    引言对于Java开发人员来说,Spring框架几乎是必不可少的。它是一个广泛用于开发企业应用程序的开源轻量级框架。近几年,SpringBoot在传统Spring框架的基础上应运而生,不仅提供了Spring的全部功能,还使开发人员更加便捷地使用。在使用SpringBoot时,我们经常会接触到各种Spr......
  • android中使用startActivityForRes…
    网上找的一个通俗易懂,放在这以后好查阅假设:我这里有两个Activity:A和B,从A中向B中传递数据的时候采用的是Bundle封装数据,然后从A中跳转到B中,当B有需求将数据封装起来回传给A并跳转回A。那么A中接收数据时还要先判断Bundle是否为空,因为第一次访问A的时候(即B还没有回传的时候),Bundle......
  • OSPF邻接关系停滞在exstart或者exchange
    前提简介:ospf邻接状态若已进入exstart或exchange,就说明问题是出在了邻居间的DD报文交互过程中,常见原因如下:(1)接口的MTU设置不匹配(缺省不比较,如果接口配置了ospfmtu-enable比较)ospf在DD报文中携带了接口的MTU的信息,如果双方的MTU信息不匹配,那么邻居关系将会停滞在ex start专题;(2)邻......