Skip to content
有趣的开源项目
Go back

frp

你正窝在咖啡馆的舒适角落,连上Wi-Fi,准备给朋友演示你本地电脑上那个酷炫的新项目。你熟练地敲下localhost:3000,一切完美。可当你把链接发给坐在另一家店的朋友时,才猛然想起——他访问不了你电脑的localhost。这一刻,你多想拥有一扇“任意门”,能直接把人从公共网络拉进你的本地世界里。

别急,开源的 frp 项目,就是这扇你梦寐以求的“传送门”。

干掉“内网孤岛”,世界触手可及

frp(Fast Reverse Proxy)是一个高性能的反向代理工具,专治各种“访问不了”。它能轻松地将你藏在 NAT(网络地址转换)或防火墙后面的本地服务器,安全地暴露到公网上。

它的典型应用场景数不胜数:

简而言之,只要你有“让内部服务对外可见”的需求,frp就是你的瑞士军刀。

它究竟有多“香”?

frp之所以能成为开发者的“心头好”,靠的是这几个绝活:

一分钟上手,真的那么简单?

没错,它的入门姿势优雅到超乎你想象。假设你有一台有公网IP的服务器A,和一台家里的电脑B,你想从外面SSH连回电脑B。

  1. 在服务器A(公网)上:下载frp,配置 frps.toml 文件,只需指定一个客户端连接端口,然后一行命令启动服务端:
# frps.toml
bindPort = 7000
./frps -c ./frps.toml
  1. 在电脑B(内网)上:同样下载frp,配置 frpc.toml,填入服务器A的IP和要暴露的本机SSH服务,再一行命令启动客户端:
# frpc.toml
serverAddr = "服务器A的公网IP"
serverPort = 7000

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
bash
./frpc -c ./frpc.toml
  1. 见证奇迹:现在,你在任何地方只要通过服务器A的6000端口SSH连接,就能直接访问到电脑B。
ssh -o Port=6000 电脑B的用户名@服务器A的公网IP

看,就这么简单!内网穿透的魔法,你已经学会了。

你的下一扇“任意门”

frp的妙用远不止于此,仪表盘监控、负载均衡、为本地HTTP服务一键启用HTTPS……还有更多高级功能等你探索。整个项目由Go语言编写,设计优雅、性能强劲,配置文件也从早期的INI升级到了更结构化的TOML/YAML/JSON,对开发者非常友好。

如果你也受够了内网访问的种种限制,不妨去它的GitHub仓库 https://github.com/fatedier/frp 逛逛。翻翻文档,点个Star,甚至参与到这个充满活力的开源项目中来。或许,你的下一行代码,就能为更多人打开通向自由连接的大门。



Previous Post
Nextcloud
Next Post
Calibre Web