返回顶部
首页 > 资讯 > 服务器 >使用FRP(快速反向代理)实现内网穿透——以腾讯云服务器为例
  • 771
分享到

使用FRP(快速反向代理)实现内网穿透——以腾讯云服务器为例

FRP反向代理内网穿透windows云服务器 2023-10-24 16:10:15 771人浏览 八月长安
摘要

一、FRP简介 FRP,即快速反向代理技术(fast reverse proxy)。本文的FRP程序是基于GitHub开源项目GitHub - fatedier/frp。当前,该程序可实现:“将位于 NAT 或防火墙后面的本地服务器暴露给互

一、FRP简介

FRP,即快速反向代理技术(fast reverse proxy)。本文的FRP程序是基于GitHub开源项目GitHub - fatedier/frp。当前,该程序可实现:“将位于 NAT 或防火墙后面的本地服务器暴露给互联网”。它目前支持 tcp 和 UDP,以及 Http 和 https 协议,允许通过域名 / IP将请求转发到内部服务器

我个人理解的frp原理如图:

db8622bb49f14cc0b893b67945216d3a.png

 

        主机3想要通过端口X访问主机2的端口D,通过端口Y访问主机2的端口E,但是主机2位于局域网内,外部无法访问

        FRP借助于具有公网IP的主机1。在主机1上运行frps.exe,在主机2上运行frpc.exe,主机1和主机2上的这两个frp进程通过端口C时刻保持连接

        现在,可以通过访问主机1的端口A和端口B,通过两台主机上的FRP程序,转发给主机2的端口C和端口D,实现了内网穿透功能。

        例如,主机3通过端口X 主机1所绑定公网IP  的 端口B 发送请求,该请求由主机1的frps.exe通过端口B接收,然后从端口C转发。因为主机1和主机2的这两个进程通过端口C始终保持连接,因此,在主机2上,侦听端口C的frpc.exe可以接受到该请求并转发给端口D。由此,实现了从端口X端口D的访问。

注:

        以上提到的端口C对应于frps.ini文件中的bind_port 和frpc.ini文件中的 server_port。端口A、B对应于frpc.ini文件中的remote_port。端口D、E对应于frpc.ini文件中的local_port

 

二、前提条件

具备一台拥有公网IP的主机(本文使用腾讯云服务器)。

局域网内的主机可以正常访问互联网。

 

三、问题描述

        我有一台位于某局域网下的主机,在该主机上部署了DockerMysql等服务,我希望能够在任意地方都能够访问到该主机。但是我的主机位于局域网内,在局域网外无法访问主机资源。考虑到当前有一台可用的腾讯云服务器(拥有一个公网IP),因此,希望通过frp技术实现内网穿透,能够通过腾讯云服务器的某些端口,访问位于局域网下主机的某些端口,进而实现在任意地方通过互联网访问局域网内主机的目的。

        主机和服务器的操作系统均为windows,因此本文采用FRP的windows发行版。

 

四、软件资源

1. 资源下载

方式一、我在github上下载了linux及windows版本的发布程序,可以直接在下面链接下载。

frp-windows-linux-程序-download-from-github-网络基础文档类资源-CSDN文库

2258833cd3924d0eb93fc4242b160e6d.png

 方式二、在github项目中下载(包含更多的操作系统/处理器版本)GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

be5e51c874d8436286b2058a4d369f7e.png

 2. 资源内容

本例的计算机使用的操作系统为Windows,处理器为X86架构,因此选择frp_0.48.0_windows_386.zip 文件。该文件包含以下内容:

974a243771a3431995b13a0d51a9bdf9.png

 其中:

frpc.exe  运行在客户端(内网中的主机,不具备公网IP)的程序。

frpc.ini  客户端程序的配置文件。

frpc_full.ini  客户端程序的配置文件的所有配置语句都可以参考该文件。

frps.exe  运行在服务器端(具备公网IP的主机)的程序。

frps.ini  服务器端程序的配置文件。

frps_full.ini  客户端程序的配置文件的所有配置语句都可以参考该文件

 

五、服务器端的部署

服务器端是指具备公网IP的主机。

此过程中使用到的文件为:frps.exe 和 frps.ini(两个文件建议放到同一个目录下)

1. 配置文件修改

为了尽可能降低配置复杂度,本次配置以最简方式进行。如果需要一些更复杂的配置或者是想要提高安全性,可以参考Releases · fatedier/frp (github.com)或其他相关资料。

frps.ini 文件的内容为:

[common]
bind_port = 7000

此处仅包含了一个端口号(此端口号可以修改为自己想要使用的任意未使用端口),没有做任何身份验证,因此该连接的安全性不能得到保证。可以增加验证环节,将上述文件修改为:

[common]# bind_port可以根据自己的需求设置,此处以9000为例子bind_port = 9000# 此处token(令牌)的值也可以自己根据需要设置token = ABC123456789xyz

2. 放通云服务器端口(如果非云服务器可跳过这一步)

在服务器中放通所有要使用到的端口。

f200e33c81004b6488bd701a44406e72.png

3. 防火墙设置

在设置 - Windows防火墙 - 允许应用通过防火墙 - 允许其他应用。

然后根据程序的路径找到frps.exe程序,并添加。

d17e1fbac7da4e94be8a83aa1db303c5.png

 0760339ccad947bbbc2c2e74e71b6ec4.png

4. 在服务器端的命令行运行frps.exe程序

 在cmd中切换到对应目录下,运行:

frps.exe -c frps.ini

51848036dd4f4d11b8728a49d308a8d1.png

 需要保持命令行窗口打开。

 

六、客户端的部署

客户端是指内网中的主机,不具备公网IP

此过程中使用到的文件为:frpc.exe 和 frpc.ini(两个文件建议放到同一个目录下)

1. 配置文件修改

可以将客户端的配置文件frpc.ini内容修改为(请在server_addr处填写IP):

[common]server_addr = 服务器端公网IP# server_port要和frps.ini中的server_port保持一致server_port = 9000# token也要和frps.ini中的token保持一致token = ABC123456789xyz# 自己任意起一个名字,比如这里写mysql_port[mysql_port]# tcp、udp、http、https、stcp、xtcp默认是tcptype = tcp# 一般情况下是本机,即127.0.0.1local_ip = 127.0.0.1# 本地主机使用的端口local_port = 3306# 远程主机(服务器端,具有公网IP的主机)端口,设置完成后需要通过远程主机的此端口访问local_port,可以与local_port不一致。remote_port = 10000

2. 运行程序

在cmd中切换到对应目录下,运行:

frpc.exe -c frpc.ini

cd0b9734f9b4427da4b062a099c5c948.png

连接成功 !

七、测试

在内网主机的3306上运行MySQL服务,通过其他主机进行测试:

3b224f4a467444409560b24a5a7bd0b1.png测试成功! 

 

八、更细致的配置文件以供参考

frps.ini

[common]# bind_port可以根据自己的需求设置,此处以9000为例子bind_port = 9000# 此处token(令牌)的值也可以自己根据需要设置token = ABC123456789xyz# only allow frpc to bind ports you list, if you set nothing, there won't be any limit'# 只允许frpc绑定您列出的端口,如果不设置,则不会有任何限制allow_ports = 9998,10000-20010# max ports can be used for each client, default value is 0 means no limit# 每个客户端可以使用的最大端口数,默认值为0表示没有限制max_ports_per_client = 5# pool_count in each proxy will change to max_pool_count if they exceed the maximum value # 如果每个代理中的pool_count超过最大值,则它们将更改为max_pool_countmax_pool_count = 5# Check frp's status and proxies' statistics infORMation by Dashboard.# 通过仪表板检查FRP的状态和代理的统计信息。dashboard可以在frps端查看状态。# dashboard's username and passWord are both optional 仪表板的用户名和密码都是随意的'# 使用http://[server_addr]:9999 通过admin访问dashboard_port = 9999dashboard_user = admindashboard_pwd = admin123# console or real logFile path like ./frps.log # 控制台或实际日志文件路径,设置日志文件路径后,原本的控制台输出log_file = ./frps.log# trace, debug, info, warn, errorlog_level = trace# 日志最大记录天数log_max_days = 365

修改完成后还可以在 服务器的http://127.0.0.1:9999(端口号视配置而定) ,使用用户名和密码查看状态。

b7ca6bc108ec4b7e8a3c1e9d7a588c3e.png

frpc.ini

[common]server_addr = XXx.XXX.XXX.XXX# server_port要和frps.ini中的server_port保持一致server_port = 9000# token也要和frps.ini中的token保持一致token = ABC123456789xyz# 自己任意起一个名字,比如这里写mysql_port[mydocker]# tcp、udp、http、https、stcp、xtcp默认是tcptype = tcp# 一般情况下是本机,即127.0.0.1local_ip = 127.0.0.1# 本地主机使用的端口local_port = 10101# 远程主机(服务器端,具有公网IP的主机)端口,设置完成后需要通过远程主机的此端口访问local_port,可以与local_port不一致。remote_port = 10000# 每个代理的名称不能相同,此处可以设置为mydocker2[mydocker2]type = tcplocal_ip = 127.0.0.1local_port = 17002remote_port = 17002

 

 

 

如有不当或错误之处,恳请您的指正,谢谢!!!

 

来源地址:https://blog.csdn.net/qq_44667259/article/details/130133342

--结束END--

本文标题: 使用FRP(快速反向代理)实现内网穿透——以腾讯云服务器为例

本文链接: https://lsjlt.com/news/441594.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用FRP(快速反向代理)实现内网穿透——以腾讯云服务器为例
    一、FRP简介 FRP,即快速反向代理技术(fast reverse proxy)。本文的FRP程序是基于github开源项目GitHub - fatedier/frp。当前,该程序可实现:“将位于 NAT 或防火墙后面的本地服务器暴露给互...
    99+
    2023-10-24
    FRP反向代理 内网穿透 windows 云服务器
  • 怎么使用云服务器实现内网穿透
    使用云服务器实现内网穿透可能需要您提供内网IP地址和端口号,以便管理员可以在云主机上创建私有网络。内网穿透的过程可以大致如下: 确定需要穿透的内网地址和端口号:在云服务器上安装相应的客户端程序和脚本,例如:https://ycloud....
    99+
    2023-10-26
    内网 服务器
  • 怎么使用云服务器实现内网穿透服务
    使用云服务器实现内网穿透服务的具体步骤如下: 选择适当的云服务器 :选择一款适合您需要服务的云服务器。有多种云服务器供您选择,包括Amazon Web Services(AMS)、AWS、Google Cloud等。 注册并获取许可证:...
    99+
    2023-10-26
    内网 服务器
  • 怎么使用云服务器实现内网穿透功能
    1. 什么是内网穿透 内网穿透是指通过互联网将内网中的服务映射到公网上,使得外网用户可以访问内网中的服务。在实际应用中,内网穿透可以用于远程控制、文件共享、Web 服务器等场景。 2. 云服务器实现内网穿透的原理 云服务器可以作为内网穿透...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透连接
    使用云服务器实现内网穿透连接的方式有很多种,以下是其中一种常用的方法: 内网IP地址切换:可以使用系统虚拟IP或本地网络地址(LAN地址)来实现内网穿透连接。切换后,可以使用云服务器提供的远程管理功能或其他方式进行管理。 使用Ping功...
    99+
    2023-10-26
    内网 服务器
  • 怎么使用云服务器实现内网穿透连接服务
    使用云服务器实现内网穿透连接服务是一种常见的网络连接方式,可以帮助实现内网访问外网。以下是使用云服务器实现内网穿透连接服务的步骤和方法: 步骤: 配置服务器端的虚拟防火墙:在客户端和云服务器之间安装云服务器提供的虚拟防火墙,可以根据虚拟...
    99+
    2023-10-26
    内网 服务器
  • 怎么使用云服务器实现内网穿透服务功能
    使用云服务器实现内网穿透服务功能是一种常见的网络攻击手段,它可以通过对内网终端电脑进行远程操控,绕过防火墙、网络防护等安全保护措施,进入目标内网计算机系统并获取用户敏感信息或者执行恶意操作。以下是具体的步骤和建议: 步骤: 选择云服务器...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透功能呢
    使用云服务器实现内网穿透功能是一个非常流行的技术,它可以帮助企业用户轻松地访问他们的内部网络,并对其数据进行加密。 具体来说,使用云服务器实现内网穿透功能的方法如下: 安装云服务器:首先需要将云服务器的管理界面安装到您的计算机上。可以将...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透功能设置
    使用云服务器实现内网穿透功能,可以通过以下步骤来实现: 安装云服务器:如果您使用的是公有云提供商(如AWS、GCP或其他)的云服务器,可以通过在控制台中进行“添加”和“更改设置”来完成内网穿透功能的安装。例如,您可以在AWS中,将“内网...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透连接功能
    使用云服务器实现内网穿透连接功能是一种常见的网络攻击手段,它可以通过对内网计算机系统进行远程操控,绕过防火墙、入侵检测系统或其他安全措施,使内部网络变成不安全网络。下面我们来看一下具体的操作步骤。 打开云服务器管理界面。 在界面上,我...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透连接服务功能
    使用云服务器实现内网穿透连接服务功能需要具备以下条件: 确保服务器已正确安装并且处于运行状态; 网络环境已正确建设,且网络带宽足够; 客户端和服务器操作系统和软件已正确安装,并正确配置; 服务器操作系统和软件已正确设置,包括服务器账户、...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透功能呢手机
    使用云服务器实现内网穿透功能可以让你轻松地在内网中访问互联网上的资源。以下是使用云服务器实现内网穿透功能的步骤: 配置云服务器(Cloud Server):在 Web 界面下,可以通过以下方式配置云服务器: 云服务器名称 - 端口号 云...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透服务功能的方法
    使用云服务器实现内网穿透服务功能是一种常见的网络攻击手段,它可以通过网络攻击的方式获取受害者的机密信息和个人信息,并进行攻击行为。以下是使用云服务器实现内网穿透服务功能的方法: 准备工作:首先需要准备好云服务器,并配置好网络协议、端口等...
    99+
    2023-10-26
    内网 功能 服务器
  • 如何使用平板连接服务器实现cpolar开发?【内网穿透实例】
    前言 在入手iPad Pro后,为了防止“买前生产力,买后爱奇艺”,我们可以在Linux服务器上搭建code server,然后在iPad Pro上通过浏览器或者APP,来远程linux服务器,使用服...
    99+
    2023-09-13
    服务器 内网穿透 cpolar 运维
  • 怎么使用云服务器实现内网穿透功能设置密码
    使用云服务器实现内网穿透功能的步骤如下: 首先,需要下载并安装“终端服务”应用程序。该程序可以帮助您设置并使用云服务器访问Internet。下载和安装程序后,您将可以通过该程序访问内网服务器。 接下来,打开“终端服务”应用程序,并输入所...
    99+
    2023-10-26
    内网 密码 功能
  • 怎么使用云服务器实现内网穿透功能设置方法
    使用云服务器实现内网穿透功能是指在不使用路由器或防火墙的情况下,通过内网接入Internet,实现内部网络访问互联网。内网穿透功能通常需要满足以下条件: 需要具备路由器或防火墙的连接能力。路由器和防火墙都是需要连接互联网的设备,如果你的...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透连接功能的方法
    使用云服务器实现内网穿透连接功能是一种常见的网络攻击手段,下面是几种使用云服务器内网穿透连接功能的方法: 在网络中建立虚拟网络,在虚拟网络中创建一个虚拟IP地址,在虚拟网络中创建一个虚拟端口,然后通过这个虚拟网络连接到内网主机。 使用P...
    99+
    2023-10-26
    内网 功能 服务器
  • 怎么使用云服务器实现内网穿透功能设置密码访问
    1. 什么是内网穿透? 内网穿透是一种将内部网络中的服务暴露到公网上的技术。通常情况下,内部网络中的设备无法直接被公网访问,但是通过内网穿透技术,可以实现公网用户访问内部网络中的设备和服务。 2. 使用云服务器实现内网穿透 使用云服务器实...
    99+
    2023-10-26
    内网 密码 功能
  • 怎么使用云服务器实现内网穿透功能设置密码登录
    1. 什么是内网穿透 内网穿透是一种将内网中的服务暴露到公网上的技术,使得公网用户可以通过互联网访问内网中的服务。这种技术通常用于远程访问内网中的服务器、监控设备等。 2. 使用云服务器实现内网穿透 使用云服务器实现内网穿透需要以下步骤:...
    99+
    2023-10-26
    内网 密码 功能
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作