什么是frp
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。今天跟大家分享一下frp实现内网穿透
为什么使用 frp ?
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
安装frp
解压下载的文件:
添加frp服务器的配置。以下是一个示例:
使用以下命令启动服务器:./frps -c ./frps.toml
如果启用了防火墙,请打开必要的端口(默认是7000):
HTTP 请求的监听端口为 80
创建一个frp的systemd服务文件:
添加以下内容:
启用并启动frp服务:
验证服务是否启动
用ssh连接登录群晖,
下载适用于群晖架构的frp客户端
前往 frp GitHub发布页面,找到适用于群晖的版本。确保下载与群晖架构相匹配的frp客户端。
下载frp客户端。
将 serverAddr 替换为frp服务器的IP地址
确保 token 与frp服务器上配置的token匹配。
根据需要配置其他端口转发规则,上述示例是将本地的SSH服务(本地端口22)映射到远程端口6000。
测试:
至此可以远程登录ssh
内网穿透成功。
如果你 vhostHTTPPort = 8080 则这里访问的域名需要加端口:
下载解压到桌面位置
用记事本编辑,再用管理员身份运行。
测试远程登录。
配置校验
通过执行 frpc verify -c ./frpc.toml 或 frps verify -c ./frps.toml 可以对配置文件中的参数进行预先校验。
如果出现此结果,则说明新的配置文件没有错误,否则会输出具体的错误信息。
配置拆分
通过 includes
参数可以在主配置中包含其他配置文件,从而实现将代理配置拆分到多个文件中管理。
上述配置在 frpc.toml 中通过 includes 额外包含了 ./confd
目录下所有的 toml 文件的代理配置内容,效果等价于将这两个文件合并成一个文件。
需要注意的是 includes 指定的文件中只能包含代理配置,通用参数的配置只能放在主配置文件中。
安全认证Token
Token 身份认证是一种简单的身份认证方式,只需要在 frp 的客户端 frpc 和服务端 frps 配置文件中配置相同的 token 即可。
ngrok和frp的各有优缺点
简单易用:ngrok拥有非常简洁的用户界面和易于使用的命令行工具,使得内网穿透变得非常容易。
快速搭建:你不需要拥有自己的服务器,只需下载ngrok客户端即可开始使用。
跨平台支持:ngrok支持多种操作系统,包括Windows、Linux和macOS等。
具备安全特性:ngrok提供了基本的身份验证和TLS加密传输等安全特性。
限制版和付费版:ngrok提供了免费版,但其功能有限,如并发连接数和隧道数量的限制。付费版则提供更多高级功能。
不开源:ngrok的源代码并未公开,因此在安全性方面用户难以进行审查。
开源免费:frp是开源软件,可以免费使用,且有活跃的社区支持。 配置灵活:frp提供了灵活的配置选项,允许用户进行端口映射、TCP/UDP转发等。 自托管:你可以轻松地在自己的服务器上自行搭建和管理frp服务。 支持多种代理类型:包括TCP、HTTP和UDP等多种类型的代理。
配置相对复杂:对于新手来说,frp的配置可能相对复杂,需要一定的学习和理解。 需要自行搭建服务器:使用frp需要自己拥有服务器,并进行相应的部署和维护。
原文链接:https://cloud.tencent.com/developer/article/2364963