«

FRP+云服务器内网穿透

熊猫老师 发布于 阅读:7


FRP 简单中文说明

FRP 是一款高性能的 反向代理 + 内网穿透 工具。
它可以让你将局域网、NAT、防火墙背后的服务暴露到公网,使外网能够访问这些服务。支持的协议包括 TCP、UDP、HTTP、HTTPS 等。
GitHub

FRP 分为两个主要部分:

组件 作用
frps(服务端) 运行在有 公网 IP 的服务器上
frpc(客户端) 运行在你内网(例如本地虚拟机)上,将请求通过 frps 转发到内网服务

📌 简单结构:
外网用户 → frps(公网) → frpc(内网) → 本地服务(例如小智的 8002 端口)
博客园

frps:运行在 公网服务器 上,接受来自内网的连接并将流量转发到内网服务。

frpc:运行在 内网机器(例如虚拟机) 上,将内网服务暴露到公网服务器,并通过公网服务器中转。

仓库地址:https://github.com/fatedier/frp

🧰 安装步骤(Ubuntu/Linux)
一、下载 FRP

先去 GitHub Releases 页面 下载对应系统的版本:

https://github.com/fatedier/frp/releases

然后在服务器或本地执行(以 Linux AMD64 为例):

wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
tar -xzf frp_0.61.1_linux_amd64.tar.gz
cd frp_0.61.1_linux_amd64

frp_0.61.1_linux_amd64 名字改成你下载的版本文件名。

💻 二、配置服务端(frps)

编辑服务端配置文件:

vim frps.toml

示例:

[common]
bind_port = 7000 # frps 监听端口
vhost_http_port = 80 # http 映射端口(可选)
vhost_https_port = 443 # https 映射端口(可选)
auth.token = "你的TOKEN" # 用于客户端认证

启动服务端:

./frps -c ./frps.toml

推荐把服务注册成 systemd 服务,让它开机自动运行(可选)。
博客园

🧠 三、配置客户端(frpc)

在你本地虚拟机上配置 frpc,连接到服务端:

进入 frp 解压目录:

cd frp_0.61.1_linux_amd64

编辑客户端配置:

vim frpc.toml

示例(映射小智 Web 服务 http 端口):
server_addr = 公网服务器IP
server_port = 7000
auth.token = "my_secure_token"
[web-tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 8002
remote_port = 8002

[ws-tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 8000
remote_port = 8000

启动 frpc:

./frpc -c frpc.toml

服务端:

frps.toml(服务端配置):
bind_port = 7000
auth.token = "my_secure_token" # 这里使用你设置的 token

启动 frps:
./frps -c frps.toml
启动后,外网访问方式:

http://公网服务器IP:8002

一定要进入当前frp的目录执行
cd /root/frp # 进入 FRP 解压目录
./frpc -c ./frpc.toml # 启动 FRP 客户端,使用配置文件

重启方法

  1. 手动重启 frpc 客户端
    步骤:

停止 frpc 客户端:
如果你已经在终端中启动了 frpc,可以通过按 Ctrl + C 停止当前运行的 frpc 客户端。

重新启动 frpc 客户端:
然后,在终端中执行以下命令来重新启动 frpc 客户端:

cd /root/frp
./frpc -c ./frpc.toml

  1. 使用 systemd 重启 frpc 客户端(如果你已将 frpc 配置为 systemd 服务)

如果你将 frpc 客户端配置为 systemd 服务,可以通过以下命令来重启 frpc:

步骤:

重启 frpc 服务:

sudo systemctl restart frpc

查看服务状态:
检查 frpc 服务的状态,确保它已经成功重启:

sudo systemctl status frpc

后台常驻,重启自动运行。frps和frpc 名字换一下,方法相同。
同样地,你也可以将 frps 服务(服务端)设置为 后台一直运行,并在系统重启时自动启动。和 frpc 客户端 一样,使用 systemd 来管理 frps 服务。以下是详细步骤:

  1. 创建 frps 的 systemd 服务文件

在 /etc/systemd/system/ 目录下创建一个名为 frps.service 的文件:

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

在文件中添加以下内容:

[Unit]
Description=FRP Server Service
After=network.target

[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.toml
Restart=always
User=root

[Install]
WantedBy=multi-user.target

保存并退出:

按 Ctrl + O 保存文件。

按 Enter 确认保存路径。

按 Ctrl + X 退出编辑器。
ExecStart:指定 frps 启动命令,确保路径和配置文件正确。

Restart=always:确保 frps 服务在崩溃或停止时自动重启。

User=root:以 root 用户运行(你可以根据需要修改为其他用户)。

  1. 重新加载 systemd 配置

保存文件后,执行以下命令来重新加载 systemd 配置,使新服务生效:

sudo systemctl daemon-reload

  1. 启动 frps 服务

通过以下命令启动 frps 服务:

sudo systemctl start frps

  1. 设置 frps 服务开机自启

如果你希望在系统重启时自动启动 frps,可以使用以下命令将 frps 服务设置为开机自启:

sudo systemctl enable frps

  1. 检查服务状态

使用以下命令来检查 frps 服务的状态,确保它正在运行:

sudo systemctl status frps

如果服务正常启动,输出应该显示为 active (running)。

  1. 查看日志

如果你想查看 frps 的实时日志输出,可以使用以下命令:

journalctl -u frps -f

总结:

通过 systemd 创建一个 frps 服务文件,确保 frps 服务始终在后台运行。

设置 frps 服务在系统重启后自动启动。

通过 systemctl 管理 frps 服务的启动、停止和状态。

如果你需要进一步的帮助,或者有任何问题,随时告诉我!

体验:内网穿透的速度非常快,主要宝塔面板和云服务器的7000 8000 8002等端口一定要开放。
另外,windows上部署服务器效果总体不行,问题较多。本地还是用vm虚拟机搭建linux ubantu 24的服务器系统+宝塔面板,测试搭建过程很顺畅。
🧩 常用示例用途

✔ 将本地 Web 服务发布到公网
✔ 把 SSH(端口 22)穿透外网:

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

访问:

ssh -p 6000 user@公网服务器IP

✔ 多服务同时映射,配置多个 [proxies] 块即可。
掘金
🛡 进阶 & 注意事项

✅ 建议为 frps 和 frpc 配置 token 鉴权(更安全)
✅ 若开放 HTTP/HTTPS,建议结合 Nginx 做 反向代理和证书管理
✅ 云服务器安全组要放开对应端口(如 7000、8002、80、443 等)
✅ 可用 systemd 或 Docker 部署 frps/frpc 管理和监控
✅ 可以结合域名解析做域名方式映射访问

📌 常见命令
作用 命令
启动 frps ./frps -c frps.toml
启动 frpc ./frpc -c frpc.ini
查看状态 systemctl status frps / systemctl status frpc
重启服务 systemctl restart frps