FRP 部署及使用指南:轻松实现内网穿透
创作时间:
作者:
@小白创作中心
FRP 部署及使用指南:轻松实现内网穿透
引用
CSDN
1.
https://blog.csdn.net/m0_62160083/article/details/144805346
FRP(Fast Reverse Proxy)是一个开源的反向代理工具,主要用于内网穿透和远程访问。它可以通过映射网络服务(如 HTTP、HTTPS、TCP、UDP 等)到公网,实现内网服务的外网访问,特别适合在无公网 IP 或有防火墙限制的场景下使用。本文将详细介绍FRP的部署和使用方法,重点讲解如何通过FRP实现内网穿透。
核心功能
- 内网穿透:将内网中的服务暴露到外网,支持 HTTP、HTTPS、TCP、UDP 等协议。
- 反向代理:可以通过 FRP 的服务端和客户端实现复杂的反向代理需求。
- 自定义域名:支持通过自定义子域名暴露 HTTP 和 HTTPS 服务,结合 DNS 配置可轻松实现访问。
- 跨网络访问:支持从公网访问位于不同网络中的设备或服务。
- 安全性:提供 Token 验证、TLS 加密等多种安全措施,确保数据传输的安全性。
- 多种高级功能:包括流量统计、负载均衡、在线热更新等。
环境准备
说明一下frp 分为: 1、frps 服务端(外网使用);2、frpc 客户端(内网使用)
模拟环境:家用服务器没有公网 ip
云服务器有公网 ip
两服务器系统环境均为:Ubuntu 24.04
frp服务包:frp_0.61.1_linux_amd64.tar.gz (两个环境版本一致)
二、外网服务器部署frps
- 上传压缩包到任意目录然后解压,示例 /usr/local/ 目录
# 解压到当前目录
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
# 移动并改名
mv frp_0.61.1_linux_amd64 /usr/local/frp
# 创建 frp 用户
useradd -r -s /usr/sbin/nologin -M frp
# 授权文件夹
chown -R frp:frp /usr/local/frp
- 备份并修改 frps 配置文件 frps.toml (直接执行命令,不用手动编辑)
# 备份配置文件
cp /usr/local/frp/frps.toml /usr/local/frp/frps.tomlbak
# 直接执行覆盖原来的配置
tee /usr/local/frp/frps.toml > /dev/null << 'EOF'
[common]
# 服务端绑定的端口,用于客户端与服务端通信的核心端口。需要确保该端口对外网开放。
bind_port = 7000
# HTTP 代理的虚拟主机端口。用于通过域名访问客户端的 HTTP 服务,需配置 DNS。
vhost_http_port = 80
# HTTPS 代理的虚拟主机端口。用于通过域名访问客户端的 HTTPS 服务,需配置 DNS。
vhost_https_port = 443
# 密钥,是自定义的,想怎么填写就怎么填写,但客户端和服务端必须保持一致,确保安全通信。
token = "Frp20241129"
# 仪表板端口,用于查看 frps 服务端的运行状态和管理客户端连接。访问地址:服务器IP:7500
dashboard_port = 7500
EOF
- 加入系统服务并开机自启动
# 加入系统服务
cat <<EOF | tee /etc/systemd/system/frps.service
[Unit]
Description=FRP Server
After=network-online.target
Wants=network-online.target
[Service]
User=frp
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml
Environment=FRP_LOG_LEVEL=info
Restart=always
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
# 重载配置使其生效
systemctl daemon-reload
# 启动 frps 服务
systemctl start frps.service
# 设置开机自启
systemctl enable frps.service
三、内网服务器部署frpc
- 上传压缩包到任意目录然后解压,示例 /usr/local/ 目录
# 解压到当前目录
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
# 移动并改名
mv frp_0.61.1_linux_amd64 /usr/local/frp
# 创建 frp 用户
useradd -r -s /usr/sbin/nologin -M frp
# 授权文件夹
chown -R frp:frp /usr/local/frp
- 备份并修改 frpc 配置文件 frpc.toml (直接执行命令,不用手动编辑)
cp /usr/local/frp/frpc.toml /usr/local/frp/frpc.tomlbak
# 直接执行覆盖原来的配置
tee /usr/local/frp/frpc.toml > /dev/null << 'EOF'
[common]
server_addr = "此处引号内填写外网服务器的公网IP"
# 服务端口
server_port = 7000
# 密钥,需要和 frps 配置一致
token = "Frp20241129"
# 配置每个内网服务
# 服务名称,随便写,自己能看懂就行
[ssh_test]
type = "tcp"
local_ip = "127.0.0.1"
# 家用服务器上暴露的端口
local_port = 22
# 外网服务器上暴露的端口,ssh时候,使用外网 IP 和这个端口可以远程访问家里的服务器
remote_port = 2299
# 服务名称,随便写,自己能看懂就行
[web_server]
type = "http"
local_ip = "127.0.0.1"
# 家用服务器上暴露的端口
local_port = 80
# 外网服务器上暴露的端口,使用外网 IP 和这个端口可以远程访问家里web服务,这个配置和域名
#remote_port = 6001
# 用于 HTTP 和 HTTPS 域名的代理。填写自己的域名,没有就注释这个配置,启用 remote_port 配置
custom_domains = "www.adbc.cn"
#remote_port 和 custom_domains 配置冲突,只能使用一个
EOF
- 加入系统服务并开机自启动
# 加入系统服务
cat <<EOF | tee /etc/systemd/system/frpc.service
[Unit]
Description=FRP Client
After=network-online.target
Wants=network-online.target
[Service]
User=frp
WorkingDirectory=/usr/local/frp
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.toml
Environment=FRP_LOG_LEVEL=info
Restart=always
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
# 重载配置使其生效
systemctl daemon-reload
# 启动 frps 服务
systemctl start frpc.service
# 设置开机自启
systemctl enable frpc.service
四,查看 frpc 是否在 frps 内注册,并测试网页访问
使用外网手机或者电脑访问域名,测试通过。域名记得配置公网DNS解析 。
五、其他
拆分 frpc 配置与 https 证书配置
[common]
server_addr = "此处引号内填写外网服务器的公网IP,可以是域名"
server_port = 7000
token = "Frp20241129"
tls_enable = true
# 拆分配置,需要打开即可
#includes = "./confd/*.toml"
# 网页https配置,无需nginx转发
[web_server]
type = https
plugin = https2http
plugin_local_addr = 127.0.0.1:80
custom_domains = www.mnshy.cn # 修改未你的域名,记得配置
plugin_crt_path = /usr/local/ssl/go-ssl-master/cert_storage/mnshy.cn.crt # 证书路径
plugin_key_path = /usr/local/ssl/go-ssl-master/cert_storage/mnshy.cn.key # 证书密钥路径
plugin_header_X-From-Where = frp
use_encryption = true
force_https = true
热门推荐
天体碰撞:解读宇宙演化的关键力量
东北酸菜猪肉饺:从选材到上桌的完整制作指南
猎罪图鉴2开播:从“画骨”到“画心”的悬疑升级
房树人测试破解悬案,〈猎罪图鉴2〉演绎心理刑侦新篇
专家详解:鼻窦炎的典型症状和缓解方法
横琴论坛聚焦能源转型:油气与可再生能源将协同发展
6.4万亿元研发投入,A股上市公司引领科技创新
“中国环流三号”成功运行,中国在可控核聚变领域跻身世界前列
2024年中国可控核聚变商业化提速:三家民企实现重大突破
中国核聚变研究加速推进,2030年代将建成千兆瓦级聚变堆
当她说“我真的不喜欢你”:十个幽默高情商回复
2024拜太岁攻略:从准备到祭拜全流程详解
2025年拜太岁:四大犯太岁生肖的化解之法
济南地铁3号线二期临空站:机场接驳新选择
李莎《问政山东》逼问威海市长:一场犀利对话推动城市安全隐患整改
九尾狐:贯穿古今的东亚文化符号
1991海湾战争:F-4G反辐射导弹误伤B-52G
思密达:网络热词还是止泻神药?
西安春节必吃美食:从腊汁肉夹馍到驼蹄羹,18道经典小吃带你品味千年古都的饮食文化
西安春节必打卡:五大景点带你玩转最中国年
西安钟鼓楼新春灯会:一场穿越千年的文化盛宴
藏红花的营养价值
国学机创新孝道教育模式,133名学生获“孝道之星”称号
乐山大佛峨眉山:两处遗产彰显中华孝道
黄苦荞茶:冬季养生的科学饮用指南
“鱼香”并非鱼味:揭秘鱼香肉丝的历史渊源与文化内涵
冬季养生新选择:黄苦荞茶的功效与饮用全攻略
国产50Mp CIS成功量产,图像传感器技术再升级
王者荣耀传说皮肤票选:成吉思汗遥遥领先,官方紧急调整规则
王者荣耀九周年庆:传说皮肤“鸣野蒿”免费送!