2022年4月26日星期二

Frp内网穿透使用

Frp 一个简单、高效的内网穿透工具

Frps/frpc客户端管理命令
# 更新配置
systemctl daemon-reload
# 开机启动
systemctl enable frpc.service
systemctl enable frpc-2.service
# 停止服务
systemctl stop frpc.service
systemctl stop frpc-2.service
# 启动服务
systemctl start frpc.service
systemctl start frpc-2.service
# 查看状态
systemctl status frpc.service
systemctl status frpc-2.service
# 重启服务
systemctl restart frpc.service
systemctl restart frpc-2.service
#删除启动项
systemctl disable frpc.service
systemctl disable frpc-2.service

#安装Frps服务端
程序路径/usr/local/app/frps
# 开机启动
systemctl enable frps.service
# 启动服务
systemctl start frps.service
# 查看状态
systemctl status frps.service
# 重启服务
systemctl restart frps.service
#删除启动项
systemctl disable frps.service


官方网站:https://gofrp.org
官方发布地址:https://github.com/fatedier/frp/releases

开始使用!

编写配置文件,先在服务器端文件目录通过 ./frps -c ./frps.ini 启动服务端,再通过客户端文件目录 ./frpc -c ./frpc.ini 启动客户端。如果需要在后台长期运行,建议结合其他工具使用,例如 systemd 和 supervisor。

配置校验
通过执行 frpc verify -c ./frpc.ini 或 frps verify -c ./frps.ini 可以对配置文件中的参数进行预先校验。
frpc: the configuration file ./frpc.ini syntax is ok
如果出现此结果,则说明新的配置文件没有错误,否则会输出具体的错误信息。

自定义二级域名

在多人同时使用一个 frps 时,通过自定义二级域名的方式来使用会更加方便。

通过在 frps 的配置文件中配置 subdomain_host,就可以启用该特性。之后在 frpc 的 http、https 类型的代理中可以不配置 custom_domains,而是配置一个 subdomain 参数。

只需要将 *.{subdomain_host} 解析到 frps 所在服务器。之后用户可以通过 subdomain 自行指定自己的 web 服务所需要使用的二级域名,通过 {subdomain}.{subdomain_host} 来访问自己的 web 服务。

# frps.ini
[common]
subdomain_host = frps.com
将泛域名 *.frps.com 解析到 frps 所在服务器的 IP 地址。

# frpc.ini
[web]
type = http
local_port = 80
subdomain = test
frps 和 frpc 都启动成功后,通过 test.frps.com 就可以访问到内网的 web 服务。

注:如果 frps 配置了 subdomain_host,则 custom_domains 中不能是属于 subdomain_host 的子域名或者泛域名。
同一个 HTTP 或 HTTPS 类型的代理中 custom_domains 和 subdomain 可以同时配置。

frpc配置实现转发多个http站点

frps.ini正常配置(包括加vhost_http_port或者没有加vhost_http_port),
frpc.ini多加几个[web]项,
将新加的[web]项type改为tcp,后面不用加域名或者ip。
frpc会直接将其当作tcp数据包处理,只处理到了传输层(tcp),而没有到应用层(http)。