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

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

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

下载安装

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

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

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

首发 blog.didispace.com/tj-opensour...,转载请注明出处

暴露内网服务

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

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

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

ini 复制代码
[common]
bind_port = 7000

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

ini 复制代码
[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,配置如下:

ini 复制代码
[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 就可以访问内网机器了

ini 复制代码
ssh -oPort=6000 test@127.0.0.1

其他支持

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

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

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

最后,奉上相关链接:

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

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

相关推荐
朦胧之9 小时前
AI 编程-老项目改造篇
java·前端·后端
程序猿大帅13 小时前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
程序员晓琪14 小时前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly14 小时前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
众少成多积小致巨15 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
东坡白菜15 小时前
破局全栈:前端开发的Java入门实战记录—JPA(2)
java·后端
SimonKing21 小时前
艹,维护AI写的代码,我心态崩了......
java·后端·程序员
用户2986985301421 小时前
Java Word 文档样式进阶:段落与文本背景色设置完全指南
java·后端
小bo波2 天前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
nanxun8863 天前
记一次诡异的 Docker 容器"串包"故障排查
java