FRP 内网穿透、反向代理

FRP 内网穿透、反向代理,第1张

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

FRP工具采用C/S模型,将FRP服务端部署在具有固定公网IP的机器上,FRP客户端部署在内网机器上,通过访问暴露在服务端上的端口,反向代理到位于内网的服务。在此基础上,FRP支持 TCP、UDP、HTTP、HTTPS 等多种协议,提供了加密、压缩、身份认证、代理限速和负载均衡等众多能力。

FRP开源项目地址:

https://github.com/fatedier/frp

FRP使用场景:

让互联网(外部网络)的设备能访问局域网(内部网络)的设备所提供的服务,尤其是在内部网络出口没有固定公网IP的场景中。

测试目标: 将内网Windows 7的远程桌面端口(3389)暴露到服务端,实现在外部网络可以通过远程桌面连接到内网的Windows 7。

关闭CentOS 7.6防火墙:

关闭CentOS 7.6 SELinux:

安装配置FRP服务端:

运行FRP服务端:

腾讯云安全组放行端口:

FRP客户端支持Windows、Linux、MacOS、ARM、OpenWRT等平台,本例以Windows 7为例,将Windows 7的远程桌面端口(3389)暴露到服务端,实现从公网访问Windows 7的远程桌面。

注:与暴露TCP协议不同,使用FRP暴露HTTP/HTTPS协议时,可采用端口多路复用的方式。即一个外部端口可对应多个内部不同HTTP/HTTPS服务的端口,并通过在客户端配置文件中配置不同的域名来进行区分访问。

关闭Windows 7的休眠:

打开计划任务程序:

访问FRP服务端的Web界面进行验证:

访问FRP客户端的Web界面进行验证:

在外网使用远程桌面工具进行连接:

远程桌面可成功登录:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7377092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存