一张图读懂内网穿透-FRP

前提条件:云端有ubuntu服务器,且开启公网访问,防火墙开启 7000 + 其它端口,如图中6000(ssh), 7500(dashboard),8080(应用端口)

内网机器可以是Ubuntu,也可是是windows

通过FRP 7000端口,FRP client 与 FRP 服务端建立连接

FRP 在server 端通过端口7500,提供Dashboard 来监控网络情况

如图,其他应用通过在client 端配置端口映射来个服务端建立连接


用户可以通过云端的服务器域名/IP:port 的方式来访问部署在内网的应用,比如Deepseek 本地模型部署 (这个后面单独写一篇)

安装教程:
云端:
1. 安装FRP

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

2. 配置服务端

[common]
bind_port = 7000          # 服务端与客户端通信端口(默认7000,可自定义)
dashboard_port = 7500     # 仪表盘端口(默认7500,可自定义)
dashboard_user = admin    # 改成自己的
dashboard_pwd = admin     # 改成自己的
# 可选:设置日志级别
log_level = info
log_max_days = 3

3. 启动服务端服务

# 前台运行(测试用)
./frps -c frps.ini

# 后台运行(推荐)
nohup ./frps -c frps.ini &

4. 开启防火墙

# UFW防火墙示例(放行7000,7500,8080端口)
sudo ufw allow 7000/tcp
sudo ufw allow 6000/tcp
sudo ufw allow 7500/tcp
sudo ufw allow 8080/tcp

本地

  1. 安装FRP(同云端一样,只是配置文件不一样)
wget https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gz
tar -zxvf frp_0.49.0_linux_amd64.tar.gz
cd frp_0.49.0_linux_amd64

2. 配置FRP

[common]
server_addr = 云端服务器公网IP   # 替换为云端Ubuntu的公网IP
server_port = 7000                # 服务端的bind_port

# SSH转发规则(重点!)
[ssh]
type = tcp                        # 转发类型为TCP
local_ip = 127.0.0.1              # 本地SSH服务IP(内网Ubuntu的SSH地址,通常是127.0.0.1或内网IP)
local_port = 22                   # 本地SSH端口(默认22)
remote_port = 6000                # 云端服务器映射的公网端口(可自定义,需与服务端防火墙放行)

[web]
type = tcp                        # Web应用通常使用TCP协议
local_ip = 127.0.0.1              # 内网Web应用所在IP(通常是本机)
local_port = 3000                 # 内网Web应用端口
remote_port = 8080                # 云端服务器映射的公网端口(自定义,需确保未被占用)

3. 启动客户端服务

# 前台运行(测试用)
./frpc -c frpc.ini

# 后台运行(推荐,需创建systemd服务)
# 1. 创建服务文件
sudo nano /etc/systemd/system/frpc.service

4. 配置系统服务,允许自动启动

修改frpc.ini 文件

[Unit]
Description=frp client
After=network.target

[Service]
Type=simple
User=root
ExecStart=/path/to/frpc -c /path/to/frpc.ini  # 替换为实际路径
Restart=on-failure

[Install]
WantedBy=multi-user.target

保存后启动服务

sudo systemctl daemon-reload
sudo systemctl start frpc
sudo systemctl enable frpc  # 开机自启

测试

云端通过7500端口访问Dashboard

云端通过6000 端口ssh 内网机器
云端通过8080 端口访问web服务

改进:配置安全连接(两端都需要配置)

# 服务端(frps.ini)
[common]
token = your_secure_token  # 设置连接密钥,增强安全性

# 客户端(frpc.ini)
[common]
token = your_secure_token  # 与服务端一致
compress = true            # 启用数据压缩,减少流量

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注