
Frp内网穿透简单搭建教程
Frp内网穿透简单搭建教程
frp — 内网穿透与反向代理工具
frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 TCP、UDP、HTTP、HTTPS 等协议。
官方资源
- 项目官网: GitHub frp 项目
- 中文官方文档: README_zh.md
除了安装过程,中文文档已经非常详细地介绍了使用过程,如遇到问题,建议先查看官方文档。
frp 工作原理
frp 的工作原理如下:
- 服务端运行,监听一个主端口,等待客户端的连接;
- 客户端连接到服务端的主端口,并告诉服务端要监听的端口和转发类型;
- 服务端 fork 新的进程来监听客户端指定的端口;
- 外网用户连接到 客户端指定的端口,服务端通过与客户端的连接将数据转发到客户端;
- 客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
总结
frp 是一个强大的工具,通过其服务端与客户端的协作,能够帮助用户快速搭建内网穿透与反向代理服务,解决内网应用暴露的问题。详细了解和使用 frp,您可以访问官方文档获取更多信息。
一、Frp服务端搭建教程
-
下载 Frp
访问 Frp 项目的 GitHub仓库 ,下载最新版本文件。 -
上传文件至公网服务器
将下载的frps
和frps.toml
文件上传到公网服务器上。 -
配置文件示例 (
frps.toml
)
在服务器上配置下列参数:
# 服务端监听地址
bind_addr = "0.0.0.0"
# 服务端监听端口
bind_port = 7100
# KCP 协议监听端口
kcp_bind_port = 7100
# Web 面板配置
web_server.addr = "0.0.0.0"
web_server.port = 7500
web_server.user = "user" # 访问Web面板的用户名
web_server.password = "password" # 访问Web面板的密码
# 日志配置
log.to = "/frpslog/frps.log"
log.level = "info"
log.max_days = 3
# 身份验证配置
auth.method = "token"
auth.token = "lGTU9rQb5lp4L4zMsr" # 证明服务器和客户端交互的秘钥
# 虚拟主机端口配置
vhost_http_port = 80
vhost_https_port = 443
# 允许的端口范围配置
allow_ports = [
{ start = 6000, end = 7000 },
]
二、使用 Systemd 管理 Frp 服务
在 Linux 系统下,使用 systemd
可以完成 Frp 服务的启动、停止和自启配置。
- 确保您的 Linux 服务器安装了 systemd
# CentOS/RHEL
yum install systemd
# Debian/Ubuntu
apt install systemd
- 创建 frps.service 文件
使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。
sudo vim /etc/systemd/system/frps.service
写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml
[Install]
WantedBy = multi-user.target
- 使用 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
- 设置 frps 开机自启动
三、Frp客户端搭建教程
-
下载 Frp
访问 Frp 项目的 GitHub仓库 ,下载最新版本文件。 -
上传文件至内网服务器
将下载的frpc
和frpc.toml
文件上传到公网服务器上。 -
配置文件示例 (
frpc.toml
)
在服务器上配置下列参数:
# 连接服务端的地址和端口
server_addr = "192.168.1.10"
server_port = 7100
login_fail_exit = true
# 日志配置
log.to = "./frpc.log"
log.level = "info"
log.max_days = 3
# 身份验证配置
auth.method = "token"
auth.token = "lGTU9rQb5lp4L4zMsr"
# 配置 UDP 代理
[[proxies]]
name = "Factorio"
type = "udp"
local_ip = "127.0.0.1"
local_port = 34197
remote_port = 34197
# 配置 TCP 代理
[[proxies]]
name = "Minecraft"
type = "tcp"
local_ip = "127.0.0.1"
local_port = 25565
remote_port = 25565
# HTTP 代理配置
[[proxies]]
name = "web"
type = "http"
local_port = 80
custom_domains = ["blog.gvxin.com"]
# HTTPS 代理配置
[[proxies]]
name = "blog.gvxin.com"
type = "https"
custom_domains = ["blog.gvxin.com"]
# 插件配置
[proxies.plugin]
type = "https2http"
local_addr = "127.0.0.1:80"
# HTTPS 证书路径
crtPath = "./server.crt" # 修改成对应域名的 crt 证书路径
keyPath = "./server.key" # 修改成对应域名的 key 证书路径
request_headers.set.x-from-where = "frp"
四、使用 Systemd 管理 Frp 服务
在 Linux 系统下,使用 systemd
可以完成 Frp 服务的启动、停止和自启配置。
- 确保您的 Linux 服务器安装了 systemd
# CentOS/RHEL
yum install systemd
# Debian/Ubuntu
apt install systemd
- 创建 frps.service 文件
使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frpc.service 文件,用于配置 frps 服务。
sudo vim /etc/systemd/system/frpc.service
写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frpc -c /path/to/frpc.toml
[Install]
WantedBy = multi-user.target
- 使用 systemd 命令管理 frpc 服务
# 启动frp
sudo systemctl start frpc
# 停止frp
sudo systemctl stop frpc
# 重启frp
sudo systemctl restart frpc
# 查看frp状态
sudo systemctl status frpc
- 设置 frpc 开机自启动
参考资料
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 永迪联
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果