您当前的位置:首页 > 电脑百科 > 安全防护 > 软件工具

生产力环境下的简单高效开源的内网穿透工具——FRP的搭建教程

时间:2022-09-30 20:05:36  来源:网易号  作者:互联网资讯看板

与zerotier、tAIlscale等基于点对点的内网穿透的商业软件不同,FRP是在Github上的一个开源项目,是服务器—客户端运行模式,可提供闭环的虚拟局域网环境。

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


 

搭建FRP服务器端需要一台具有固定IP地址的主机、linuxwindows或者macOX系统均可,openwrt路由器也可以,由于FRP是基于服务器—客户端运行模式,如果选用云计算主机搭建,尽量选择离自己最近的节点,这样可以尽可能地降低延迟;另外,FRP的运行模式决定了联网需要消耗服务器的流量,因此选择云计算主机时除了性能之外,还要注意流量是否能满足自己的需求。

我以甲骨文VPS为例,来搭建Linux系统下的服务器端,

新建一台1核CPU1G内存的服务器,系统ubuntu20.04LTS,


 

分配IP地址,


 


 


 

添加ipv6路由表,


 


 

添加网络安全列表,增加出入站规则,放行出入站流量,


 


 


 


 


 

测一下ping值,


 

用SSH客户端应用程序连接主机,


 

获取root权限

sudo -i


 

更新可安装软件包的列表

apt update


 

更新可升级软件包

apt upgrade


 


 

查看服务器防火墙状态,

ufw status


 

如果防火墙处于活动状态,需要执行以下步骤,

#添加服务器防火墙规则,放行你将要使用的端口,比如80、443、6001-6200、7000、7001、7500等等 ufw allow 80 #重启防火墙,让规则生效 ufw reload #查看端口是否放行, ufw status

VPS服务器设置完成,接下来开始搭建FRP服务器端,

输入命令

export FRP_VERSION=0.44.0 mkdir -p /usr/frp cd /usr/frp wget "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz" tar xzvf frp_${FRP_VERSION}_linux_amd64.tar.gz mv frp_${FRP_VERSION}_linux_amd64/* /usr/frp


 

修改应用程序自带的服务器端配置文件,进入FRP的安装目录,

/usr/frp


 

找到frps.ini文件,点击鼠标右键,打开文件,


 


 

将以下服务器端配置文件内容复制粘贴替换原来的内容,

[common] bind_addr = 0.0.0.0 bind_port = 7000 bind_udp_port = 7001 vhost_http_port = 80 vhost_https_port = 443 dashboard_addr = 0.0.0.0 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = password dashboard_TLS_mode = true dashboard_tls_cert_file = /etc/ssl/private/xueyizhan.tk.cer dashboard_tls_key_file = /etc/ssl/private/xueyizhan.tk.key #如果不用SSL证书,这三行代码可以用#注释掉 authentication_method = token token = 12345678 subdomain_host = xueyizhan.tk


 

点击“保存”,


 

保存成功,退出编辑文本,


 

使用systemd创建一个frps.service的系统服务,让frps可以开机自启,

在/etc/systemd/system目录下创建一个文件,命名为frps.service,

输入命令

vi /etc/systemd/system/frps.service


 

将配置文件的内容复制粘贴到新创建的frps.service文件中,

[Unit] Description=Frp Server Service After.NETwork.target [Service] Type=simple User=root Restart=on-failure RestartSec=5s ExecStart=/usr/frp/frps -c /usr/frp/frps.ini [Install] WantedBy=multi-user.target


 

按Esc键,推出编辑状态,


 

输入命令

:wq

保存文件,


 

进入/etc/system/system目录,并刷新,显示frps.service,说明创建成功。


 

登录阿里云将域名解析到服务器的IP地址,


 

上传SSL证书到服务器配置文件指定的目录中,

如何申请免费的SSL证书,请参考我的另一篇教程《申请免费支持多域名的通配符SSL证书并自动续期的保姆级教程》

由于不是root登录,虽然获得了root权限,也无权直接上传到/etc/ssl/private目录,先上传到/tmp目录,


 

再用命令移动到/etc/ssl/private目录,

mv /tmp/xueyizhan.* /etc/ssl/private/


 

没有报错,说明移动成功,


 

设为开启自启,

systemctl enable frps


 

启动frps,

systemctl start frps


 

查看frps运行状态,

systemctl status frps

运行正常,


 

systemd配置的frps系统服务命令如下:

#启用服务,实现开机自启 systemctl enable frps #启动服务 systemctl start frps #服务状态 systemctl status frps #停止服务 systemctl stop frps #禁用服务 systemctl disable frps #重启服务 systemctl restart frps

登录网页端,查看运行情况,

https://www.xueyizhan.tk:7500


 

输入在frps配置文件中设置的用户名“admin”和密码“password”,


 

生产力环境,建议还是使用TLS连接,以确保安全,


 

至此,Linux系统下FRP服务器端搭建配置完成。

接下来再介绍如何在Windows系统下搭建配置FRP服务器端,

首先下载相应版本,我的windows是intel芯片64位,要下载amd64版本,

下载链接:https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_windows_amd64.zip


 

解压到安装目录,


 

用记事本编辑配置文件,


 

将服务器端配置文件粘贴到文件中替换原来的内容,


 

[common] bind_addr = 0.0.0.0 bind_port = 17000 bind_udp_port = 17001 vhost_http_port = 80 vhost_https_port = 443 dashboard_addr = 0.0.0.0 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = password dashboard_tls_mode = true dashboard_tls_cert_file = C:Program Filesfrp_0.44.0_windows_amd64xueyizhan.tk.cer dashboard_tls_key_file = C:Program Filesfrp_0.44.0_windows_amd64xueyizhan.tk.key #如果不用SSL证书,这三行代码可以用#注释掉 authentication_method = token token = 12345678 subdomain_host = xueyizhan.tk

由于我的windows系统7000端口已经占用,监听端口改为17000/17001


 

注意一点,Program Files有权限问题,需要先保存到其他目录,再复制粘贴替代原来的文件,

上传SSL证书到配置文件指定的目录,


 

打开CMD终端,进入FRP安装目录,


 

输入启动命令,

frps -c frps.ini


 

允许程序通过防火墙,


 

启动成功,


 

但是黑窗口要开启状态,不能关闭,一旦关闭,进程就结束了。

接下来解决这种黑窗口模式运行,将程序注册为系统服务,让程序在后台运行,并且实现开机自启,

首先去下载一个软件SrvanyUI,这是一个Windows系统下可以自建用户服务的小程序,软件作者的博客地址:

https://wangye.org/blog/archives/644/


 

下载后解压到C盘,


 

双击srvanyui运行,


 

点击左上角“+”添加,


 

选择自建服务,并依次填写,完成后点击“确定”,

服务名称:Frp Server Service 内部标识:frps 服务描述:FRP是高性能反向代理应用,是一款内网穿透工具来让外网与内网建立起连接,实现无公网 IP 的远程访问。 程序路径:点击“浏览”,找到FRP安装目录,选择frps.exe执行文件,点击“打开” 启动参数:-c frps.ini 启动方式:自动(保持默认)


 

点击“确定”,启动服务,


 

打开windows服务,可以看到frps已经注册为系统服务,可以通过面板来实现程序的启动、停止和重启等。


 

启动后,登录面板,运行正常(将windows服务器端解析到frp.xueyizhan.tk来演示)。


 

接下来设置客户端,

最理想的选择是一个客户端主机将局域网内所有需要联网的设备全部接入,这需要主机7x24小时正常运转,装有openwrt系统的路由器是最佳选择,

用SSH客户端应用程序连接openwrt路由器,首先更新软件包列表,

输入命令

opkg update


 


 

安装frpc和luci-App-frpc,

输入命令

opkg install frpc luci-app-frpc


 

安装成功,


 

你也可以通过openwrt路由器的后台管理界面来安装FRP,

登录路由器管理后台,在左侧菜单选择“系统”>>“软件包”,在“筛选器”对话框中输入“frpc”搜索,


 

安装“frpc”和“luci-app-frpc”两个软件包,


 

安装安装后刷新路由器后台管理界面,在左侧菜单“服务”中会出现“Frp内网穿透”选项,这是FRP的luci管理界面,可以通过可视化界面来配置FRP客户端,


 

根据你的FRPS配置文件的设置,在配置界面依次输入,

勾选“启用” 服务器:www.xueyizhan.tk 或者 144.24.78.59 端口:7000 令牌:12345678 用户名:留空即可 HTTP穿透服务端口:80 HTTPS穿透服务端口:443 服务注册间隔:40(保持默认或者留空均可)


 

其他设置保持默认即可,


 

设置完成后,点击“保存并应用”,设置生效后,点击上方菜单“日志”查看运行状况,与服务器的连接正常,但是没有客户端在运行,


 

接下来根据你自己的需要添加客户端,回到“基本设置”界面,点击“新增”,


 

在新打开的设置界面中,选择“启用”,


 

根据自己的情况选择连接协议,如果主机上配置了SSL证书,HTTPS协议是首选,


 

我们在FRPS的配置文件里已经设置了域名,这是我们就可以选在“子域名”或者“同时使用2中域名”,如果在配置文件中没有设置域名,自能选择“自定义域名”,


 

在“子域名”输入要解析的主机名,


 

选择要穿透的主机内网地址,并输入端口号,如果是HTTP协议,对应的是80端口,


 

最后输入“服务备注名”,这个不可重复,完成后点击“保存并应用”,让配置生效。


 

返回frpc配置界面后,会发现“服务列表”出现了刚刚配置的主机,


 

到日志界面查看运行情况,运行正常,


 

这还没有完成全部配置,还需要登录阿里云增加相应的DNS解析记录,

这里有一个小技巧,添加解析记录时增加别名(CNAME)记录类型,来代替主机(A)记录类型,这样如果你将来更换服务器IP地址时只更新服务器的主机记录,而不用更新所有记录,


 

等一会儿,解析生效后就可以用域名来访问路由器管理后台了,


 

回到路由器管理后台界面,再添加其他的主机穿透,

SSH主机穿透,内网主机默认端口是22,


 

测试一下,新建一个SSH连接,


 

连接成功,


 

微软远程桌面连接这样配置,内网主机默认端口是3389,


 

测试一下,新建一个RDP连接,


 

连接成功,


 

同时使用2种域名这样配置,别忘了添加相应的解析记录,


 

你可以按照以上步骤和方法将局域网内所有需要做内网穿透的主机全部配置在openwrt路由器上,这样就不用每一台主机都分别安装FRP客户端程序,并且openwrt完全可以实现7x24小时开机,不用担心哪个客户端掉线。所以说,openwrt路由器是最理想的FRP客户端选择。

FRP的软件包同时包含了服务器和客户端应用程序,因此如果使用windows或者linux搭建FRP客户端,搭建配置过程与FRP服务器端完全相同,搭建过程可以参考FRP服务器端的搭建步骤,只是将配置文件和启动程序替换成FRP客户端的就可以,就不再一一演示搭建过程,只分享一下配置文件的模板,供大家搭建时使用,

FRP客户端,Linux、Windows系统下配置文件都是frpc.ini,没有区别,模板如下,

[common] server_addr = 144.24.78.59 server_port = 7000 token = 12345678 #需要加上log文件的路径 log_file = frpc.log # trace, debug, info, warn, error log_level = info log_max_days = 3 #如果只设置主机自身的穿透服务,local_ip = 127.0.0.1 [router] type = http local_ip = 192.168.10.2 local_port = 80 subdomain = router [ssh_router] type = tcp local_ip = 192.168.10.2 local_port = 22 remote_port = 6002 [rd_e93z] type = tcp local_ip = 192.168.10.30 local_port = 3389 remote_port = 6030 [opwt] type = https local_ip = 192.168.10.1 local_port = 443 subdomain = opwt custom_domains = opwt.sample.org

Linux系统使用systemd配置系统服务,让frpc可以开机自启的配置文件模板,

[Unit] Description=Frp Client Service After=network.target [Service] Type=simple User=root Restart=on-failure RestartSec=5s ExecStart=/usr/frp/frpc -c /usr/frp/frpc.ini [Install] WantedBy=multi-user.target

systemd配置的frpc系统服务的命令,

#启用服务,实现开机自启 systemctl enable frpc #启动服务 systemctl start frpc #服务状态 systemctl status frpc #停止服务 systemctl stop frpc #禁用服务 systemctl disable frpc #重启服务 systemctl restart frpc

Windows系统使用SrvanyUI将frpc注册为用户服务,让frpc实现开机自启的模板文件,

服务名称:Frp Client Service 内部标识:frpc 服务描述:FRP是高性能反向代理应用,是一款内网穿透工具来让外网与内网建立起连接,实现无公网 IP 的远程访问。 程序路径:点击“浏览”,找到FRP安装目录,选择frpc.exe执行文件,点击“打开” 启动参数:-c frpc.ini 启动方式:自动(保持默认)

这期有关FRP内网穿透应用搭建与配置的教程就分享到这里了,如果教程对你有用,欢迎关注学驿站,可以学习更多的电脑、网络和数码使用技巧。



Tags:FRP   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
生产力环境下的简单高效开源的内网穿透工具——FRP的搭建教程
与zerotier、tailscale等基于点对点的内网穿透的商业软件不同,FRP是在github上的一个开源项目,是服务器—客户端运行模式,可提供闭环的虚拟局域网环境。项目地址:HTTPS://g...【详细内容】
2022-09-30  Search: FRP  点击:(1603)  评论:(0)  加入收藏
Frp内网穿透之p2p实现远程桌面
大家好,今天继续我们的内网穿透系列教程,之前分享的是利用云服务器中转流量实现内网访问操作,考虑到有些人的服务器带宽可能是1M的,对远程桌面这种实时画面的支持实在不太好,今天...【详细内容】
2022-07-13  Search: FRP  点击:(1844)  评论:(0)  加入收藏
内网穿透工具我只选frp
1. 什么是frpfrp一款基于go语言开发的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS 等多种协议,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网...【详细内容】
2022-07-11  Search: FRP  点击:(652)  评论:(0)  加入收藏
基于frp实现将安卓手机变成代理服务器
公司有一个业务场景,需要利用分布在全国各地的一些手机作为代理服务器拿到这任务的我是一脸懵逼的,这tm都行。。。不过这让我让我想到之前用的内网穿透 frp内网穿透大致原理可...【详细内容】
2022-03-17  Search: FRP  点击:(1185)  评论:(0)  加入收藏
FRP 内网穿透、反向代理
frp[1] 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。本...【详细内容】
2022-02-14  Search: FRP  点击:(599)  评论:(0)  加入收藏
frp远程办公,访问内网服务器
centos 7下安装frp+openxxx实现内网服务器。 frp 内网穿透工具 openxxx 虚拟网络工具准备 云服务器、内网主机 云服务器,外网访问地址39.33.12.12,用来做frp服务端 内网服务器...【详细内容】
2021-03-16  Search: FRP  点击:(578)  评论:(0)  加入收藏
记一次使用 frp 完成实现服务器内网穿透全过程
写在前面因之前内网穿透一直使用的 ngrok,使用的 ngrok 1.x 版本的最新 1.7.1,而1.7.1有严重的内存泄露问题,再加上 1.x 早已不在维护,ngrok 2.x 后已经不再开源,所以考虑换一个...【详细内容】
2020-09-04  Search: FRP  点击:(340)  评论:(0)  加入收藏
内网穿透神器frp推荐!教你如何一劳永逸的对外暴露内网服务
背景创业公司为节约运维成本,往往把应用服务放在阿里云等平台上。除了对外服务,公司还存在一些对内的测试环境、监控等服务,如果这些内部服务同时也有外网访问的需求。直接用云...【详细内容】
2020-03-13  Search: FRP  点击:(490)  评论:(0)  加入收藏
内网穿透工具-frp
对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器上的服务是一个问题。通常解决方案就是用内网穿透工具将内网的服务穿透到公网中,便于远程管理和在外部访问。内...【详细内容】
2019-12-11  Search: FRP  点击:(470)  评论:(0)  加入收藏
▌简易百科推荐
如何使用免费网络安全工具Canary Tokens查明黑客何时访问了您的文件?
译者 | 布加迪审校 | 重楼担心您的个人文件被黑客窃取吗?Canary Tokens是一款免费且易于使用的工具,可以快速部署。如果黑客打开您的文件,它就会通知您。什么是Canary Tokens?Ca...【详细内容】
2024-03-26    51CTO  Tags:Canary Tokens   点击:(13)  评论:(0)  加入收藏
如何用ChatGPT分析恶意软件
译者 | 陈峻审校 | 重楼自从我们进入数字化时代以来,恶意软件就一直是计算机应用系统的“心腹大患”。事实上,每一次技术进步都会为恶意行为者提供更多的工具,使得他们的攻击行...【详细内容】
2023-12-12    51CTO  Tags:恶意软件   点击:(201)  评论:(0)  加入收藏
NGFW:网络工程师必备防火墙
在网络技术飞速发展的今天,防火墙已成为网络工程师必备的防御工具之一。而其中,下一代防火墙(NGFW)凭借其高效、智能的防护特点,更是成为了业界的明星产品。本文将详细介绍NGFW的...【详细内容】
2023-12-12    历史痕迹  Tags:防火墙   点击:(132)  评论:(0)  加入收藏
如何保护应用?Web应用防火墙详细解读
如今,多云环境、API安全功能扩展、合作伙伴集成即时可用、可用性和可视化增强以及提高自动化程度已经成为基本要求。伴随企业应用架构的迁移,在用户端,需要在部署环境不断扩展...【详细内容】
2023-12-06  科技信息分析者    Tags:防火墙   点击:(135)  评论:(0)  加入收藏
八个优秀开源内网穿透工具
内网穿透(NAT穿透)是一种将本地网络服务暴露给互联网的一种技术。这种技术可以很好地解决许多局域网内的资源共享。采用路由的方式将一台计算机变成一个“路由器”,将公共的网...【详细内容】
2023-11-29  andflow  微信公众号  Tags:内网穿透   点击:(213)  评论:(0)  加入收藏
十个最佳免费 Linux 防火墙工具
概述防火墙是保护网络边界的关键。防火墙会阻止敏感端口并过滤传入和传出流量,以阻止恶意连接并确保不会发生未经请求的数据交换。在自由开源软件的世界里,有很多防火墙解决方...【详细内容】
2023-11-28  雪竹聊技术  今日头条  Tags:防火墙   点击:(173)  评论:(0)  加入收藏
防火墙与杀毒软件有什么区别?
硬件防火墙:系统是嵌入式的系统。一般开源的较多。硬件防火墙是通过硬件和软件的组合来达到隔离内外部网络的目的。软件防火墙:一般寄生在操作系统平台。软件防火墙是通过纯...【详细内容】
2023-11-16    天铭互联网  Tags:防火墙   点击:(215)  评论:(0)  加入收藏
ngrok-内网穿透神器,开发人员必备
概述ngrok是一款开源的网络服务,能够为在本地运行的网络应用提供公开的、基于互联网的URL。这使得网络开发人员可以将自己正在开发的网页或者API暴露到互联网上,方便进行演示...【详细内容】
2023-10-07  阿拉尔的阳光  今日头条  Tags:内网穿透   点击:(102)  评论:(0)  加入收藏
“二次约会”间谍软件分析报告:网络攻击西北工业大学 美国相关人员真实身份被锁定
近日,国家计算机病毒应急处理中心和360公司对名为“二次约会”(SecondDate)的“间谍”软件进行了技术分析,该“间谍”软件针对基于FreeBSD、Linux、Sun Solaris、Juniper JunOS...【详细内容】
2023-09-14    央视新闻客户端  Tags:间谍软件   点击:(302)  评论:(0)  加入收藏
DNSBin:一款功能强大的DNS与服务器安全测试工具
关于DNSBinDNSBin是一款功能强大的DNS与服务器安全测试工具,该工具可以通过DNS来测试数据泄露,并在目标环境部署了严苛网络安全限制的场景下帮助广大研究人员测试远程代码执...【详细内容】
2023-09-08    FreeBuf.COM  Tags:DNSBin   点击:(245)  评论:(0)  加入收藏
站内最新
站内热门
站内头条