当前位置: 首页 > article >正文

FRP通过公网IP实现内网穿透

FRP通过公网IP实现内网穿透

  • 一、简介
  • 二、安装服务端
    • 1、下载
    • 2、安装FRP
    • 3、使用 systemd 命令管理 frps 服务
    • 4、设置 frps 开机自启动
  • 三、安装客户端
    • 1、下载
    • 2、安装FRP
    • 3、使用 systemd 命令管理 frpc 服务
    • 4、设置 frpc 开机自启动
  • 四、访问仪表盘

一、简介

        frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。通俗来讲,就是说通过在具有公网 IP 的节点上部署 frp 服务端,您可以轻松地将内网服务穿透到公网。
Github地址
说明文档

二、安装服务端

在具有公网IP的服务器上执行如下操作:

1、下载

FRP下载地址
使用和服务端相同的安装包即可
在这里插入图片描述

2、安装FRP

安装 systemd

yum install systemd
或
apt install systemd

创建 frps.service 文件

vim /etc/systemd/system/frps.service

写入内容

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /wz_software/frp_0.61.1_linux_amd64/frps -c /wz_software/frp_0.61.1_linux_amd64/frps.toml

[Install]
WantedBy = multi-user.target

frps.toml文件内容如下

bindPort = 7000
# 接收http请求
vhostHTTPPort = 7001
# 客户端需要配置对应的token才允许映射,这里自己修改
auth.token = "**********"

#仅允许服务器上的指定端口/端口范围 避免滥用端口
allowPorts = [
  # 范围指定
  { start = 5000, end = 5500},
  # 单独指定
  # { single = 5501},
]

# 仪表盘配置
# 默认值为127.0.0.1。当您想从公共网络访问它时,将其更改为0.0.0.0
webServer.addr = "0.0.0.0"
webServer.port = 7002
# 仪表板的用户名和密码
webServer.user = "admin"
webServer.password = "**********"

3、使用 systemd 命令管理 frps 服务

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps

4、设置 frps 开机自启动

sudo systemctl enable frps

三、安装客户端

在局域网服务器中执行如下操作
客户端与服务端的安装基本类似,这里也是使用systemd进行配置。

1、下载

FRP下载地址
这里我下载的v0.61.1版本
在这里插入图片描述

2、安装FRP

安装 systemd

yum install systemd
或
apt install systemd

创建 frpc.service 文件

vim /etc/systemd/system/frpc.service

写入内容,注意和服务端的执行文件和配置文件不同

[Unit]
# 服务名称,可自定义
Description = frp client
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /wz_software/frp_0.61.1_linux_amd64/frpc -c /wz_software/frp_0.61.1_linux_amd64/frpc.toml

[Install]
WantedBy = multi-user.target

frpc.toml文件内容如下

# 公网服务IP
serverAddr = "***********"
serverPort = 7000
# 需要与服务端保持一致
auth.token = "*******"

[[proxies]]
name = "ssh端口"
type = "tcp"
localIP = "0.0.0.0"
#本机需要映射的端口
localPort = 22
#映射到云服务器的哪个端口
remotePort = 5000

[[proxies]]
name = "测试服务端口"
type = "tcp"
localIP = "0.0.0.0"
#本机需要映射的端口
localPort = 8080
#映射到云服务器的哪个端口
remotePort = 5001

3、使用 systemd 命令管理 frpc 服务

# 启动frp
sudo systemctl start frpc
# 停止frp
sudo systemctl stop frpc
# 重启frp
sudo systemctl restart frpc
# 查看frp状态
sudo systemctl status frpc

4、设置 frpc 开机自启动

sudo systemctl enable frpc

四、访问仪表盘

http://公网ip:7002
在这里插入图片描述
到这里就可以通过自己的公网ip访问对应的内网服务了。


http://www.kler.cn/a/534340.html

相关文章:

  • Python爬虫实战:一键采集电商数据,掌握市场动态!
  • 从BIO到NIO:Java IO的进化之路
  • 牛客周赛 Round 79
  • 2. K8S集群架构及主机准备
  • Java集合框架
  • DeepSeek 阐述 2025年前端发展趋势
  • 日期选择控件,时间跨度最大一年。
  • springboot停车场管理系统设计与实现
  • 【高级篇 / IPv6】(7.2) ❀ 04. 在60E上配置ADSL拨号宽带上网(IPv4) ❀ FortiGate 防火墙
  • SQL 秒变三线表 sql导出三线表
  • Android studio ternimal 中gradle 指令失效(gradle环境变量未配置)
  • 表格文字的版面分析,PHP语言实现表格识别功能
  • 力扣hot100-双指针
  • 挑战项目 --- 微服务编程测评系统(在线OJ系统)
  • oracle 基础语法复习记录
  • 信息学奥赛一本通 2101:【23CSPJ普及组】旅游巴士(bus) | 洛谷 P9751 [CSP-J 2023] 旅游巴士
  • 4-ET框架demo的运行
  • react的antd表格自定义图标
  • 缓存类为啥使用 unordered_map 而不是 map
  • C# 国密算法
  • Linux 压缩打包
  • Android-retrofit源码解析
  • C语言基础系列【3】VSCode使用
  • golang开发技能
  • 【starrocks学习】之将hive表数据同步到starrocks
  • MySQL面试题----如何进行 MySQL 数据库备份与恢复