FRP 内网穿透搭建教程
分类:项目教程
发布日期:2024-09-20
项目简介
FRP(Fast Reverse Proxy)是一款高性能的反向代理应用,主要用于内网穿透,允许用户通过公共网络访问位于私有网络中的服务。
主要特点
- 高效性: 高效的网络协议和数据传输机制,支持大量并发连接。
- 灵活性: 支持 TCP、UDP 和 HTTP,多种代理模式可供选择。
- 跨平台支持: 兼容 Windows、Linux 和 macOS。
- 安全性: 支持 SSL 加密,确保数据安全。
- 简易使用: 提供简单的命令行工具和配置文件。
- 可扩展性: 用户可根据需求自定义功能。
使用场景
适用于远程桌面、数据库访问、开发测试环境等。
搭建环境
- 服务器: 使用莱卡云国内服务器,最低配置即可。
- 系统: CentOS 7.9
1. 服务端配置(具有公网 IP 的服务器)
1.1 下载 FRP
- 下载地址:https://github.com/fatedier/frp/releases
- 示例:下载
frp_0.60.0_linux_amd64
版本。
1.2 上传并解压 FRP
# 切换到 /usr/local 路径
cd /usr/local # 创建 frp 文件夹并进入
mkdir frp && cd frp # 上传并解压 FRP 压缩包
tar -zxvf frp_0.60.0_linux_amd64.tar.gz && cd frp_0.60.0_linux_amd64
1.3 配置服务端(frps.toml)
# 编辑 frps 配置文件
vi frps.toml
粘贴以下内容并保存退出:
# 客户端与服务端连接端口
bindPort = 7000 # 客户端连接服务端时认证的密码
auth.token = "abcjc" # HTTP 协议监听端口
vhostHTTPPort = 28080 # Web 界面配置
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
保存文件时按 Esc
,输入 :wq
并回车。
1.4 创建并配置 frps.service
# 编辑 /etc/systemd/system/frps.service 文件
sudo vi /etc/systemd/system/frps.service
粘贴以下内容并保存退出:
[Unit]
Description=frp server
After=network.target syslog.target
Wants=network.target [Service]
Type=simple
ExecStart=/usr/local/frp/frp_0.60.0_linux_amd64/frps -c /usr/local/frp/frp_0.60.0_linux_amd64/frps.toml [Install]
WantedBy=multi-user.target
1.5 启动服务并设置开机自启
# 重新加载 systemd
sudo systemctl daemon-reload # 启动 frp 服务
sudo systemctl start frps # 查看服务状态
sudo systemctl status frps # 设置开机自启
sudo systemctl enable frps
2. 客户端配置(无公网 IP 的设备)
2.1 下载客户端
- 下载地址:https://github.com/fatedier/frp/releases
- 示例:下载
frp_0.60.0_windows_amd64.zip
并解压。
2.2 配置客户端(frpc.toml)
编辑客户端目录下的 frpc.toml
文件,写入以下内容:
serverAddr = "服务器的公网IP"
serverPort = 7000
auth.token = "abcjc" # HTTP 配置
[[proxies]]
name = "blog"
type = "http"
localIP = "127.0.0.1"
localPort = 8080
customDomains = ["abcj.cn"] # TCP 配置
[[proxies]]
name = "rdp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 23389
2.3 运行客户端
打开客户端目录,运行以下命令:
frpc.exe -c frpc.toml
3. 注意事项
如果修改服务端配置文件后,需要执行以下命令重新加载:
# 重新加载 systemd
sudo systemctl daemon-reload # 启动服务
sudo systemctl start frps # 查看服务状态
sudo systemctl status frps # 设置开机自启
sudo systemctl enable frps
防火墙端口打开,例如下面的你的配置,remotePort 是你的公网开放的端口,需要在防火墙里开放!
[[proxies]]
name = "Minecraft"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3000
remotePort = 6100
开放 7000 端口
sudo ufw allow 7000/tcp
查看状态
sudo ufw status
---
检查端口是否开放
使用 netstat 检查
sudo netstat -tulpn | grep 7000
或使用 lsof 检查
sudo lsof -i :7000
参考:
https://blog.lcayun.com/2752.html
https://www.bilibili.com/video/BV1Jf421q7we/?spm_id_from=333.337.search-card.all.click&vd_source=a2ed30c611e34a2d0a3657b35b95851f