使用 frp 内网穿透访问内网 Web 服务(超详细)

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

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

首先,在 frp官网 查看最新 Release 版本号,截至本文发布,最新版本号为 0.36.2,下面以此为例讲解

下问题提及的服务端和客户端分别代指:

  • 服务端:拥有公网 IP 的服务器主机
  • 客户端:在内网中搭载有 Web 服务的主机

由于不同处理器架构所需的安装包不同,下载之前务必通过arch命令确认处理器架构,并下载对应版本的安装包

在用户目录下运行如下命令下载最新软件包(此处以amd64版本为例)

wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz 

执行命令将其解压

tar -zxvf frp_0.36.2_linux_amd64.tar.gz 

将解压后的文件夹将其重命名为 frp

mv frp_0.36.2_linux_amd64 frp 

打开目录

cd frp 

打开 frp 目录下的frps.ini,如下方所示进行配置

[common] bind_port = 7000 (之后与客户端连接所用端口,默认不变即可) dashboard_port = 7500 (frp可视化面板访问端口) dashboard_user = {此处填写面板登录用户名} dashboard_pwd = {此处填写面板登陆密码} vhost_http_port = 8080 (如果服务器上8080端口已被占用,可随意修改为其他空闲端口) 

保存并退出

注意,务必将上述三个端口添加到防火墙白名单

打开 frp 目录下的frpc.ini,如下方所示进行配置

[common] server_addr = {此处填写服务端的公网IP} server_port = 7000 (服务端设置的连接用端口) [web] type = http local_ip = 127.0.0.1 local_port = {此处填写本地 Web 服务所在端口} custom_domains = {此处填写服务端的公网IP或域名} 

保存并退出

使用如下命令后台静默启动 frp

nohup ~/frp/frps -c ~/frp/frps.ini & 

如要关闭,使用ps aux查看进程号,使用kill即可关闭

使用如下命令后台静默启动 frp

nohup ~/frp/frpc -c ~/frp/frpc.ini & 

如要关闭,使用ps aux查看进程号,使用kill即可关闭

服务开启后,在任意浏览器访问 URL:http://服务端公网IP:7500,输入用户名和密码,即可打开可视化面板

服务开启后,在任意浏览器访问 URL:http://服务端公网IP:8080,即可访问客户端 Web 服务

使用如下命令创建 frp 服务文件

sudo vim /etc/systemd/system/frp.service 

在其中填写下列内容

[Unit] Description=frp startup script After=network.target After=systemd-user-sessions.service After=network-online.target [Service] (在服务端填写下面这一行) ExecStart=/home/{此处替换为你的用户名}/frp/frps -c /home/{此处替换为你的用户名}/frp/frps.ini (在客户端填写下面这一行) ExecStart=/home/{此处替换为你的用户名}/frp/frpc -c /home/{此处替换为你的用户名}/frp/frpc.ini [Install] WantedBy=multi-user.target 

保存并退出

设置其权限为775

sudo chmod 775 /etc/systemd/system/frp.service 

输入如下命令使 frp 服务开机启动

sudo systemctl enable --now frp 

原文链接:https://blog.csdn.net/weixin_43681778/article/details/116204099

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享