当前位置:首页 » 云服务器 » frp服务器域名IP

frp服务器域名IP

发布时间: 2023-06-19 15:04:43

㈠ FRP 内网穿透、反向代理

frp[1] 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

本文将以暴露内网 Web 服务为例,实践 frp 的安装部署。更多应用场景,可见 frp 示例[2]

frp 主要由 客户端(frpc) 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。

可以在 Github 的 Release[3] 页面中下载到最新版本的客户端和服务端二进制文件。

本文公网、内网机器都是 linux x86_64 ,所以选择了 frp_0.39.0_linux_amd64.tar.gz 。解压

拷贝 frps 文件进公网机器,假设其 IP 为 x.x.x.x :

修改 frps.ini 文件,设置监听 HTTP 请求端口为 8080:

安装 supervisor 进行部署,后台长期运行:

拷贝 frpc 文件进内网机器,假设其 IP 为 192.168.1.100 :

修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x , local_port 为本地机器上 Web 服务监听的端口, 绑定自定义域名为 custom_domains 。

将 www.yourdomain.com 的域名 A 记录解析到 IP x.x.x.x 。

简单运行服务,进行测试:

以 systemd 进行部署,后台长期运行:

[1] frp: https://github.com/fatedier/frp

[2] frp 示例: https://gofrp.org/docs/examples/

[3] Release: https://github.com/fatedier/frp/releases

㈡ 如何让内网的CENTOS服务器能用域名访问

利用frp穿透技术,来实现你要的功能,不需要公网IP。毕竟现在公网IP运营商有很多限制:

以下文章转载自吴昊博客

frp内网穿透是通过一个带有公网IP的服务器进行中转,对被控主机实现反向代理,用户通过访问frps(中转服务器)来实现对frpc(被控主机)的远程访问。

frp流程图如下:

frp项目地址:https://github.com/fatedier/frp

本实验环境以阿里云服务器作为中转机,中转服务器使用Centos7.6,被控主机使用Centos7.6,用户使用Windows10由于网络原因,文中链接已经替换成了本地链接,如不放心,请自行去GitHub下载

frps中转服务器配置

1、下载frp

在一台有公网IP的主机上配置frps,我这里以阿里云Centos7.x主机为例

1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz

2 tar xf frp_0.27.0_linux_amd64.tar.gz

3 mv frp_0.27.0_linux_amd64 /usr/local

4 cd /usr/local/frp_0.27.0_linux_amd64

5 rm -f frpc*

2、配置frps

这里使用最基础的配置,bind_port 表示frp面板的监控端口,dashboard_user表示面板的登陆帐号,dashboard_pwd表示面板的登陆密码,其它不动。

1 vi

frps.ini

配置文件说明:

1 [common]

2 bind_port = 7000

3

4 dashboard_user = whsir

5 dashboard_pwd = blog.whsir.com

6 dashboard_port = 8000

3、启动frps

配置启动服务

1 vi /etc/systemd/system/frps.service

1 [Unit]

2 Description=frps daemon

3 After=syslog.target network.target

4 Wants=network.target

5

6 [Service]

7 Type=simple

8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frps -c /usr/local/frp_0.27.0_linux_amd64/frps.ini

9

10 [Install]

11 WantedBy=multi-user.target

技行以下两个命令

1 systemctl enable frps

2 systemctl start frps

4、访问监控平台

http://公网IP:8000

账号whsir

密码blog.whsir.com

如果访问不了,请使用ss -lnt命令检查端口是否启动,是否因为防火墙原因拦截。

至此frps中转服务器配置完成

frpc内网主机配置

1、内网主机下载frp

1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz

2 tar xf frp_0.27.0_linux_amd64.tar.gz

3 mv frp_0.27.0_linux_amd64 /usr/local

4 cd /usr/local/frp_0.27.0_linux_amd64

5 rm -f frps*

2、配置frpc

其中x.x.x.x表示frps中转服务器ip地址

ssh字段:local_port = 22示被控(内网)主机的ssh端口,remote_port = 6000表示ssh中转端口

web字段:local_port = 80表示被控(内网)主机的web端口,remote_port = 8081表示web中转端口

1 vi frpc.ini

1 [common]

2 server_addr = x.x.x.x

3 server_port = 7000

4

5 [ssh]

6 type = tcp

7 local_ip = 127.0.0.1

8 local_port = 22

9 remote_port = 6000

10

11 [web]

12 type = tcp

13 local_ip = 127.0.0.1

14 local_port = 80

15 remote_port = 8081

3、启动frpc

配置启动服务

1 vi /etc/systemd/system/frpc.service

1 [Unit]

2 Description=frpc daemon

3 After=syslog.target network.target

4 Wants=network.target

5

6 [Service]

7 Type=simple

8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frpc -c /usr/local/frp_0.27.0_linux_amd64/frpc.ini

9

10 [Install]

11 WantedBy=multi-user.target

执行如下命令

1 systemctl enable frpc

2 systemctl start frpc

至此frpc被控主机配置完成

此时可通过x.x.x.x:6000连接内网ssh,通过http://x.x.x.x:8081访问内网主机web,访问速度取决于带宽

这时候,内网主机就映射到外网去了,然后,用域名指定你的frp主机ip就可以了。这样就可以实现你的功能了。

㈢ frp内网穿透客户端frpc.ini各配置参数详解

中文文档 https://www.cnblogs.com/sanzxcvbnm/p/8508741.html
[必须]标识头

[common]
是不可或缺的部分
[必须]frps服务端IP
server_addr = 0.0.0.0
0.0.0.0为FRP服务端IP,客户端要填写为服务端已配置的对应的IP,或者是服务端的服务器(VPS)IP。
[必须]frps服务端通讯端口
server_port = 7000
客户端连接到服务端内网穿透传输数据的端口,请改为服务端已配置的对应端口。
[必须]连接认证密钥-特权模式
privilege_token = www.nat.ee
客户端连接到FRP服务端的登录验证密钥,请改为服务端已配置的对应密钥。
记录运行日志
日志存放路径
log_file = /etc/frp/log/frps.log
请改为需要存放在那里的正确路径。
日志记录类别
log_level = info
可选:trace, debug, info, warn, error
最多保存多少天日志
log_max_days = 7
可自定义保存多少天。
你的内网穿透名称,将显示为 {名称}.{对应服务名称}
user = your_name
请填大小写字母和数字,不要用中文填写。
决定第一次登录失败时是否退出程序,否则连续登录到frps服务端
login_fail_exit = true
可选:false,true
默认是true,否则可以不填此参数或者改为false,则持续连接登录到frps而不退出。
用于连接frps服务端的通讯协议
protocol = tcp
支持tcp和kcp,默认是tcp
注意:kcp需要服务端配置参数已开启,才支持。
使用tcp流复用,默认为true
tcp_mux = true
可选:false,true
必须与frps服务端已经配置参数相同,否则服务端没有,可以不填此参数。
内网穿透服务限制最大连接池上限
pool_count = 5
限制本客户端内网穿透可以创建的总连接池上限,避免大量资源占用。可自定义。默认为0不限制,或者不填此参数。
注意:假如服务端已配置了限制,而你设置的高于服务端的,则按服务端的为准采取限制。
通过http api设置管理frpc动作的管理地址,例如reload

【上面用于总体对接frps服务端各参数,下面的用于客户端穿透各应用的配置参数。】

对应穿透服务名称
[name]
建立每个穿透服务,都需要命名一个此服务的名称,不能和其他已建立的相同。
穿透协议类型
type = tcp
可选:tcp,udp,http,https,stcp,xtcp
你要穿透什么应用要搞清楚,此应用是用什么协议的。
本地监听IP
local_ip = 127.0.0.1
可以是本地的局域网IP,也可以是本机的127.0.0.1 IP,
例如你的局域网是互通的,你可以在本设备建立穿透局域网其他IP的应用。
本地监听端口
local_port = 22
用于监听本地设备需要穿透的端口,比如我要穿透到本机的SSH端口,而SSH端口为22,则这样理解。
远程监听端口
remote_port = 6001
用于frps服务端的,分配建立穿透到内网对应应用的公网端口。
需要frps服务端已开放此端口给frpc客户端允许对接使用。
例如我可以连接到此(frps服务端IP:端口),则可以穿透到我的内网对应应用服务。
穿透通讯加密
use_encryption = false
可选:false,true
默认为false则不开启,或者不填此参数,为true则开启frps服务端和frpc客户端之间通讯加密。
穿透通讯压缩
use_compression = false
可选:false,true
默认为false则不开启,或者不填此参数,为true则开启frps服务端和frpc客户端之间通讯压缩。
分配自定义域名访问穿透服务
custom_domains = demo.com
用于你的穿透服务的唯一访问域名,假如没有域名,则此处请填为frps服务端的服务器(IP)
自己有多个域名,可以配置不同穿透应用服务,用不同域名,只需要将对应域名解析到frps服务端的服务器(IP)既可。
也支持泛解析识别,例如将(demo.com)域名已经泛解析到frps服务端的服务器(IP)
而想通过(abc123.demo.com)访问到对应穿透服务
则在对应穿透服务,custom_domains参数中填abc123.demo.com
分配对应穿透应用服务唯一的子域名,用于访问
subdomain = abc123
假如frps服务端已经配置了subdomain_host参数域名,并且已经泛(*)解析到frps服务端的服务器(VPS)IP,则可以使用此参数,否则不能用。
例如已经泛解析(demo.com)域名并且frps服务端配置好的,使用此subdomain参数,只需要填子域名,而不需要填(demo.com)
subdomain = 填abc123,则可以通过(abc123.demo.com)访问
为HTTP协议,添加HTTP用户名和密码安全认证
http_user = admin
自定义用户名
http_pwd = admin
自定义密码
仅支持http,https类型协议。
例如我的WEB页面,访问前,需要进行验证,才可以访问。可以添加此参数。
安全地暴露内网服务
对于某些服务来说如果直接暴露于公网上将会存在安全隐患。
sk = abcdefg
可自定义
此参数用于进一步验证,本地访问穿透服务的安全连接,需要双方frpc客户端都需要配置,仅适用于stcp和xtcp协议类型。

修改 Host Header
通常情况下 frp 不会修改转发的任何数据。但有一些后端服务会根据 http 请求 header 中的 host 字段来展现不同的网站,例如 nginx 的虚拟主机服务,启用 host-header 的修改功能可以动态修改 http 请求中的 host 字段。该功能仅限于 http 类型的代理。

原来 http 请求中的 host 字段 test.yourdomain.com 转发到后端服务时会被替换为 dev.yourdomain.com。
URL 路由
frp 支持根据请求的 URL 路径路由转发到不同的后端服务。
通过配置文件中的 locations 字段指定一个或多个 proxy 能够匹配的 URL 前缀(目前仅支持最大前缀匹配,之后会考虑正则匹配)。例如指定 locations = /news,则所有 URL 以 /news 开头的请求都会被转发到这个服务。

按照上述的示例配置后,web.yourdomain.com 这个域名下所有以 /news 以及 /about 作为前缀的 URL 请求都会被转发到 web02,其余的请求会被转发到 web01。
通过代理连接 frps
在只能通过代理访问外网的环境内,frpc 支持通过 HTTP PROXY 和 frps 进行通信。
可以通过设置 HTTP_PROXY 系统环境变量或者通过在 frpc 的配置文件中设置 http_proxy 参数来使用此功能。
仅在 protocol = tcp 时生效

插件
默认情况下,frpc 只会转发请求到本地 tcp 或 udp 端口。
插件模式是为了在客户端提供更加丰富的功能,目前内置的插件有 unix_domain_socket、http_proxy、socks5。
通过 plugin 指定需要使用的插件,插件的配置参数都以 plugin_ 开头。使用插件后 local_ip 和 local_port 不再需要配置。
使用 http_proxy 插件的示例:

范围端口映射
在 frpc 的配置文件中可以指定映射多个端口,目前只支持 tcp 和 udp 的类型。
这一功能通过 range: 段落标记来实现,客户端会解析这个标记中的配置,将其拆分成多个 proxy,每一个 proxy 以数字为后缀命名。
例如要映射本地 6000-6005, 6007 这6个端口,主要配置如下:

实际连接成功后会创建 6 个 proxy,命名为 test_tcp_0, test_tcp_1 ... test_tcp_5。

㈣ 基于Frp的Web管理面板:FrpMgr

说明: FrpMgr是一个基于Frp的快速配置Web面板,可以一键配置生成客户端的Frp配置文件,远程安装Frp服务到任意一台服务器,让我们在使用配置Frp上方便很多。对于类似这种带Web面板的穿透工具,之前也发过不少,比如nps、lanproxy等,都挺不错的,有兴趣可以去了解下,这里就介绍下FrpMgr安装及使用。

截图

安装

Github地址: https://github.com/Zo3i/frpMgr

说明: 由于该面板使用的JAVA、Mysql 5.7,所以512M的内存大部分是跑不起来的,如果内存太小,先加一点虚拟内存,可以使用Swap一键脚本→传送门。

1、安装Docker

2、安装Docker Compose

3、安装git

4、安装FrpMgr

面板访问地址:ip:8999/frp,账号admin,密码12345678,登录成功后在面板修改密码即可。

使用

1、首先去域名服务商解析一个泛域名(如*.moerats.com)到服务器ip。

2、点击左侧FRP服务器配置,域名只需要填主域名,这里默认的服务器端口为22。

填好后,点击远程安装,输入服务器密码即可,服务器端系统目前支持CentOS 7、Debian 8+、Ubuntu 16+,且注意防火墙需要打开Web端口。

3、点击左侧FRP客户端配置,填上二级域名(比如rats、后面就不要了),本地端口就可以了。

最后点击右侧,下载Win或者Mac配置压缩包即可,Win的话解压出来打开open.bat即可,连接地址为二级域名:Web端口。

由于没有Win客户端开机自启,这里博主就额外说下Windows开机自启步骤。

总结

该面板功能什么的目前还是挺简单的,不过对于要求不高的来说,基本可以满足了,如果你要求更高的话,可以试试文章开头介绍的nps、lanproxy等,最后作者表示会一直维护下去的,并逐渐增加功能,有想法的可以在下面评论,作者也会经常来查看的,然后有心的可以去Github给个Star鼓励下作者就可以了,毕竟Frps管理面板很少见。

更多精彩内容,请关注辉哥自媒体!

转载文章,原作:Rat's Blog

热点内容
androidlistview点击事件 发布:2025-02-09 07:25:52 浏览:171
targz解压缩 发布:2025-02-09 06:59:19 浏览:311
wpsphp 发布:2025-02-09 06:58:41 浏览:961
视易锋云系统如何架设辅助服务器 发布:2025-02-09 06:47:08 浏览:770
mysql备份脚本shell 发布:2025-02-09 06:46:33 浏览:15
腾讯云服务器怎样调整分辨率 发布:2025-02-09 06:46:30 浏览:369
php上一个页面 发布:2025-02-09 06:41:25 浏览:489
改装配置后不想重启怎么办 发布:2025-02-09 06:36:40 浏览:446
算法复杂度定义 发布:2025-02-09 06:30:46 浏览:587
昵图源码接口 发布:2025-02-09 06:30:37 浏览:725