frp服务端配置,frp服务端配置好启动不了

首页 > 农林牧渔 > 作者:YD1662024-01-02 03:03:10

下面我们就来看几个常用的例子,通过这些例子来了解下 FRP 是如何实现内网服务穿透的。

身份验证

服务端和客户端的 common 配置中的 token 参数一致则身份验证通过。

公网服务端 frps.ini 配置文件、内网客户端 frpc.ini 配置文件

[common] token = www.nasge.com通过 TCP 访问内网机器

这里以访问 SSH 服务为例,Linux系统环境下设置

公网服务端配置

首先修改 FRP 公网服务端 frps.ini 配置文件,默认文件无需修改,直接下一步使用命令启动 frps 服务端

root@U-NAS:~/frp# vi frps.ini # frps.ini 内容 [common] bind_port = 7000

在frp目录下输入【./frps -c ./frps.ini】命令启动 frps

root@U-NAS:~/frp# ./frps -c ./frps.ini 2019/12/18 13:29:34 [I] [service.go:141] frps tcp listen on 0.0.0.0:7000 2019/12/18 13:29:34 [I] [root.go:205] start frps success

出现【Start frps success】代表运行成功

内网客户端配置

这里以访问 SSH 服务为例, 修改 FRP 内网客户端配置文件 frpc.ini 文件内容:

root@U-NAS:~/frp# vi frpc.ini [common] # server_addr 为 FRP 服务端的公网 IP server_addr = 192.168.44.130 # server_port 为 FRP 服务端监听的端口 server_port = 7000 [ssh] type = tcp # local_ip 为 内外客户端IP local_ip = 127.0.0.1 # local_port 为 内外客户端端口 local_port = 22 # remote_port 为 公网服务端映射端口 remote_port = 6000 [web] type = tcp local_ip = 127.0.0.1 local_port = 80 remote_port = 6001

在frp目录下输入【./frpc -c ./frpc.ini】命令启动 frpc

root@U-NAS:~/frp# ./frpc -c ./frpc.ini 2019/12/17 17:33:31 [I] [service.go:249] [35481b55cd500a76] login to server success, get run id [35481b55cd500a76], server udp port [0] 2019/12/17 18:33:31 [I] [proxy_manager.go:144] [35481b55cd500a76] proxy added: [ssh web] 2019/12/17 18:33:31 [I] [control.go:164] [35481b55cd500a76] [ssh] start proxy success 2019/12/17 18:33:31 [I] [control.go:164] [35481b55cd500a76] [web] start proxy success

这样就可以成功在 FRP 公网服务端上成功建立一个内网客户端连接,在 FRP 服务端上成功注册了一个端口为 60006001 的服务,接下来我们就可以通过这两个端口访问内网客户端上 SSH 22端口、WEB:80端口服务。

通过自定义域名访问部署于内网的 Web 服务

有时需要在公有网络通过域名访问我们在本地内网环境搭建的 Web 服务,但是由于本地环境机器并没有公网 IP,无法将域名直接解析到本地的机器。

现在通过 FRP 就可以很容易实现这一功能,这里以 HTTP 服务为例

公网服务端配置

首先修改 FRP 公网服务端 frps.ini 配置文件,通过 vhost_http_port 参数来设置 HTTP 访问端口,这里将 HTTP 访问端口设为 8090

root@U-NAS:~/frp# vi frps.ini [common] bind_port = 7000 # vhost_http_port 参数来设置 HTTP 访问端口,此处示例:8090 vhost_http_port = 8090

在frp目录下输入【./frps -c ./frps.ini】命令启动 frps

root@U-NAS:~/frp# ./frps -c ./frps.ini 2019/12/18 13:59:34 [I] [service.go:141] frps tcp listen on 0.0.0.0:7000 2019/12/18 13:59:34 [I] [service.go:183] http service listen on 0.0.0.0:8090 2019/12/18 13:59:34 [I] [root.go:205] start frps success

出现【Start frps success】代表运行成功

内网客户端配置

其次我们在修改 FRP 内网客户端 frpc.ini 配置文件并增加如下内容:

这里通过 local_portcustom_domains 参数来设置本地机器上 Web 服务对应的端口自定义的域名,这里我们分别设置端口为 80,对应自定义域名 例如:www.666.com

# frpc.ini 内容 [common] server_addr = 192.168.44.130 # 对应公网服务端的IP server_port = 7000 # 对应公网服务端的端口 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 [web] type = http # local_port 为本地机器上 Web 服务对应的端口 local_port = 80 # custom_domains 为本地机器上 Web 服务对应的自定义的域名 custom_domains = www.666.com

在frp目录下输入【./frpc -c ./frpc.ini】命令启动 frpc

最后将自定义域名 例如:www.666.com

现在便可以通过【 http://www.666.com:8090 】这个 URL 访问到处于内网机器上对应的 Web 服务。

HTTPS 服务配置方法类似

公网服务端 frps.ini 配置文件 将 vhost_http_port 替换为 vhost_https_port

内网客户端 frpc.ini 配置文件 将 type = http 替换为 type = https

通过密码保护你的 Web 服务

由于所有客户端共用一个 FRP 公网服务端的 HTTP 服务端口,任何知道你的域名和 URL 的人都能访问到你部署在内网的 Web 服务,但是在某些场景下需要确保只有限定的用户才能访问。

FRP 支持通过 HTTP Basic Auth 来保护你的 Web 服务,使用户需要通过用户名和密码才能访问到你的网页服务。需要实现此功能主要需要在 FRP 内网客户端 frpc.ini 配置文件中添加用户名和密码的设置。

该功能目前仅限于 HTTP 类型的代理。

# frpc.ini 内容 [common] server_addr = 192.168.44.130 # 对应公网服务端的IP server_port = 7000 # 对应公网服务端的端口 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 [web] type = http # local_port 为本地机器上 Web 服务对应的端口 local_port = 80 # custom_domains 为本地机器上 Web 服务对应的自定义的域名 custom_domains = www.666.com # 设置认证的用户名 http_user = 666 # 设置认证的密码 http_pwd = 123456

在frp目录下输入【./frpc -c ./frpc.ini】命令启动 frpc

这时访问 http://www.666.com:8090 这个 URL 时就需要输入配置的用户名和密码才能访问。

效果演示

frp服务端配置,frp服务端配置好启动不了(1)

给 Web 服务增加自定义子域名托管

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

公网服务端配置

首先修改在 FRP 公网服务端 frps.ini 配置文件,通过 subdomain_host 参数来设置自定义域名,这里将参数设置为 例如:777.com

# frps.ini 内容 [common] bind_port = 7000 # vhost_http_port 参数来设置 HTTP 访问端口,此处示例:8090 vhost_http_port = 8090 # subdomain_host 参数来设置 Web 服务增加自定义二级域名 # 将泛域名 *.777.com 解析到 frps 所在公网服务器的 IP 地址 subdomain_host = 777.com

Bash

Copy

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

只需要将 *.{subdomain_host} 解析到 frps 所在公网服务器。
例如:

在frp目录下输入【./frps -c ./frps.ini】命令启动 frps

root@U-NAS:~/frp# ./frps -c ./frps.ini 2019/12/18 17:42:17 [I] [service.go:141] frps tcp listen on 0.0.0.0:7000 2019/12/18 17:42:17 [I] [service.go:183] http service listen on 0.0.0.0:8090 2019/12/18 17:42:17 [I] [service.go:240] Dashboard listen on 0.0.0.0:7500 2019/12/18 17:42:17 [I] [root.go:205] start frps success

出现【Start frps success】代表运行成功

内网客户端配置

其次我们在修改 FRP 内网客户端 frpc.ini 配置文件并增加如下内容:

[web_test] type = http local_port = 80 # subdomain 为 frps.ini 配置文件内 subdomain_host = 777.com 对应自定义子域名前缀 subdomain = test

在frp目录下输入【./frpc -c ./frpc.ini】命令启动 frpc

FRP 服务端 和 FRP 客户端都启动成功后,通过 test.777.com 就可以访问到内网的 Web 服务。

同一个 HTTP 或 HTTPS 类型的代理中 custom_domainssubdomain 可以同时配置。

需要注意的是如果 FPR 服务端配置了 subdomain_host,则 custom_domains 中不能是属于 subdomain_host 的子域名或者泛域名(subdomain_hostcustom_domains 两个参数内域名不能相同)。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.