帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
使用FRP实现内网穿透
发布时间:2024-02-29 01:08:47   分类:帮助文档
使用FRP实现内网穿透





转自我的个人公众号:Kcloud(使用FRP实现内网穿透) 欢迎关注!



文章目录
1.1 FRP基本原理及特点1.2 案例目标1.3 案例分析1.3.1 规划节点1.3.2 基础准备
1.4 案例实施1.4.1 FRP服务端配置1.4.2 FRP-linux客户端配置1.4.3 FRP-Windows客户端配置1.4.4 远程访问方式




1.1 FRP基本原理及特点
FRP(Fast Reverse Proxy)是一种轻量级、高性能的反向代理工具,可用于内网穿透、安全访问和数据传输等场景。FRP由fatedier团队开发,采用Golang语言编写,支持跨平台部署和使用。FRP的原理是利用反向代理技术将公网请求转发至内网服务器上,并将内网服务器的响应再次转发至公网请求者。在实现内网穿透时,FRP能够将公网与内网之间的隔离突破,使得公网用户可以直接访问内网服务器上的资源,从而实现远程访问和管理。FRP的主要特点如下:
​内网穿透FRP支持内网穿透功能,能够实现公网服务访问内网服务器。通用性FRP支持多种协议和服务类型,如HTTP、TCP、UDP等,可用于各种不同场景。安全性FRP支持数据加密、身份验证和IP白名单等安全机制,保障数据和用户信息安全。高性能FRP采用Go语言编写,具有高性能和高并发性能,能够满足大规模并发请求需求。易用性FRP使用简单,配置文件清晰明了,支持多平台部署和使用。
FRP适用于各种不同场景,如远程访问、内网穿透、云计算、安全访问等。FRP采用开源的方式,代码托管在Github上(https://github.com/fatedier/frp),社区活跃,生态丰富,能够满足开发者和企业的不同需求。需要注意的是,在使用FRP实现内网穿透时,应避免将敏感或不安全的端口开放至公网,以保证数据和信息安全。
1.2 案例目标
本文介绍了如何使用FRP实现内网穿透,实现外部用户访问内网服务器的目的。通过这种方法,可以方便地进行远程访问和管理,提高了工作效率和灵活性。需要注意的是,FRP内网穿透可以有效解决网络访问限制和难题,但需要保证安全,应避免在公网上开放敏感或不安全的端口。
1.3 案例分析
1.3.1 规划节点
IP主机名节点49.232.149.81frp-server服务端节点192.168.100.10frp-client客户端节点
1.3.2 基础准备
服务端:云服务器一台(也可以是具有公网IP的实体机) 客户端:需要远程访问的内网服务器 下载frp软件包(版本自己挑选,此处只做示范)通过远程下载:
wget https://github.91chi.fun//https://github.com//fatedier/frp/rleases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz

通过GitHub的releases本地下载(https://github.com/fatedier/frp/releases):
1.4 案例实施
1.4.1 FRP服务端配置
服务器可以购买服务商的云服务主机,最便宜的就行,但是必须有公网IP。首先,在FRP服务端上传frp软件包:
[root@frp-server ~]# wget https://github.91chi.fun//https://github.com//fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz
解压frp软件包后可以:
[root@frp-server ~]# tar -xzvf frp_0.47.0_linux_amd64.tar.gz
frp_0.47.0_linux_amd64/
frp_0.47.0_linux_amd64/frpc_full.ini
frp_0.47.0_linux_amd64/frps
frp_0.47.0_linux_amd64/frpc.ini
frp_0.47.0_linux_amd64/frpc
frp_0.47.0_linux_amd64/LICENSE
frp_0.47.0_linux_amd64/frps_full.ini
frp_0.47.0_linux_amd64/frps.ini

得到这样的文件结构:
[root@frp-server frp_0.47.0_linux_amd64]# ll
total 27892
-rwxr-xr-x 1 1001 123 12668928 Feb 10 01:18 frpc
-rw-r--r-- 1 1001 123 11345 Feb 10 01:23 frpc_full.ini
-rw-r--r-- 1 1001 123 126 Feb 10 01:23 frpc.ini
-rwxr-xr-x 1 1001 123 15851520 Feb 10 01:18 frps
-rw-r--r-- 1 1001 123 5907 Feb 10 01:23 frps_full.ini
-rw-r--r-- 1 1001 123 26 Feb 10 01:23 frps.ini
-rw-r--r-- 1 1001 123 11358 Feb 10 01:23 LICENSE

其中frpc 开头的是客户端(client) 的核心文件;其中frps 开头的是服务器端(server) 的核心文件
修改 frps.ini 文件 (核心步骤):
[root@frp-server frp_0.47.0_linux_amd64]# vim frps.ini
[common]bind_port = 7000 #服务端绑定的端口
bind_udp_port = 5999
dashboard_port = 6001 #仪表盘访问的端口

dashboard_user = admin #dashboard 用户名密码,默认都为
admindashboard_pwd = admin

其中:
参数含义bind_port表示内网计算机和服务器计算机的通信端口,需要打开外网计算机的端口防火墙限制vhost_http_porthttp 服务映射端口,需要打开外网计算机的端口防火墙限制vhost_https_porthttps 服务映射端口,需要打开外网计算机的端口防火墙限制token协商令牌,客户端和服务器需要一致才可以生效dashboard_portfrp 管理端口,需要打开外网计算机的端口防火墙限制dashboard_user管理端口用户名dashboard_pwd管理端口密码log_file日志文件位置log_level日志级别,分为debug, info, warn, error四级log_max_days日志保存的天数heartbeat_timeout心跳配置max_pool_count连接池的数量,如果frp内网穿透客户端设置的连接池的数量大于下面的数值,就会修改frp客户端的连接池为下面的数值max_ports_per_client每个客户端最大可以使用的端口,0表示无限制authentication_timeoutfrp内网穿透服务端frps和frp内网穿透的客户端frpc两台电脑的时间差,如果设置为0的话,不校验时间差异,默认校验时间差为900秒。tcp_mux是否使用tcp复用,默认为true, frp只对同意客户端的连接进行复用
更多参数可参考frp官网(https://gofrp.org/docs/reference/server-configures)
开启服务并后台自启动:
[root@frp-server frp_0.47.0_linux_amd64]# nohup ./frps -c frps.ini &

访问页面进行测试:
完成上述配置后,打开浏览器,输入IP:6001,查看 frp 的工作状态,也说明我们成功开启了服务器端 frp 服务。
1.4.2 FRP-linux客户端配置
客户端也需要下载 frp 安装包并解压:
[root@frp-client ~]# tar -xzvf frp_0.47.0_linux_amd64.tar.gz
frp_0.47.0_linux_amd64/
frp_0.47.0_linux_amd64/frpc_full.ini
frp_0.47.0_linux_amd64/frps
frp_0.47.0_linux_amd64/frpc.ini
frp_0.47.0_linux_amd64/frpc
frp_0.47.0_linux_amd64/LICENSE
frp_0.47.0_linux_amd64/frps_full.ini
frp_0.47.0_linux_amd64/frps.ini

修改 frpc.ini 文件 (核心步骤):
[root@frp-client frp_0.47.0_linux_amd64]# vim frpc.ini
[common]
server_addr = 49.232.149.81 #这里是你公网ip地址
server_port = 7000 #这里是你之前设置的绑定端口

[ssh] #名称自定义
type = tcp
local_ip = 127.0.0.1
local_port = 22 #映射到本地的哪个端口
remote_port = 6002 #这个是你远程的时候链接的端

该配置文件主要绑定了两个业务ssh 和网站服务,其中http为http模式的网页,需要域名,如果没有域名可以直接使用80端口tcp映射完成无域名网页穿透
参数含义server_addr公网服务器的公网IPserver_port和服务器端配置一致token和服务器端配置一致[ssh] / [http]服务名称,根据个人情况设置type服务类型,包含 tcp, udp, http, https 等,ssh 使用 tcp即可local_ip本机IP,建议设置127.0.0.1 ,就不用来回改了remote_port服务器端端口custom_domainshttp 类型必填,需要域名解析到该公网IP上
更多参数可参考frp官网(https://gofrp.org/docs/reference/client-configures)
开启服务并后台自启动:
[root@frp-client frp_0.47.0_linux_amd64]# nohup ./frps -c frps.ini &

访问frp查看是否配置成功:
1.4.3 FRP-Windows客户端配置
下载 frp 安装包并解压: 修改 frpc.ini 文件 (核心步骤): 使用记事本方式打开frpc.ini 文件
[common]server_addr = 49.232.149.81 #这里是你公网ip地址
server_port = 7000 #这里是你之前设置的绑定端口

[ssh] #名称自定义
type = tcp
local_ip = 127.0.0.1
local_port = 22 #映射到本地的哪个端口
remote_port = 6003 #这个是你远程的时候链接的端

打开终端进入文件所在目录开启服务
./frps -c frps.ini

1.4.4 远程访问方式
Linux远程连接:(ssh user_name@公网IP -p 6002)
[root@frp-server ~]# ssh root@49.232.149.81 -p 6002
root@49.232.149.81's password:
Last login: Tue Feb 28 09:49:28 2023 from 127.0.0.1
[root@frp-client ~]#

Windows远程连接:进入远程连接桌面界面并连接(公网IP:端口)

使用FRP实现内网穿透 - Kcloud的文章 - 知乎 https://zhuanlan.zhihu.com/p/626471788





香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价