【修炼手册】使用 Docker 部署 Frps 内网穿透

一、准备工作

  1. 服务器要求
    • 服务端(frps):需要一台有公网 IP 的服务器(如阿里云、腾讯云);
    • 客户端(frpc):部署在需要被反向代理的内网机器上;
  2. 端口规划
    • 服务端需开放 frps 监听端口(如 7000/tcp7500/tcp)、HTTP 反向代理端口(如 80/tcp)、SSH 反向代理端口(如 6000/tcp)等,具体根据需求配置。 image.png

二、部署 frp 服务端(frps)

1. 创建 frps 配置文件

# 1. 创建宿主机目录
sudo mkdir -p /etc/frp

# 2. 创建并编辑配置文件(必须手动创建,Docker 不会自动生成)
sudo vim /etc/frp/frps.toml
  • 在服务端创建配置目录并编写 frps.toml示例(基础配置):
# frps 监听端口(客户端连接用)
bindPort = 7000
# 可选:设置 Dashboard 端口和账号密码(用于监控)
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
# 可选:设置令牌(客户端需匹配)
auth.token = "admin123"

2. 启动 frps 容器

  • 使用 Docker 命令直接启动
docker run -d \
  --name frps \
  --restart always \
  --network host \
  -v /etc/frp/frps.toml:/etc/frp/frps.toml \
  snowdreamtech/frps

3. 验证服务端是否启动成功

  • 访问 Dashboard:http://服务器公网IP:7500,输入配置的账号密码,查看状态;
  • 查看容器日志:docker logs frps,无报错则说明启动正常。 image.png

三、部署 frp 客户端(frpc)

Linux

1. 创建 frpc 配置文件

  • 在客户端(内网机器)创建配置目录并编写 frpc.toml
sudo mkdir -p /etc/frp
sudo vim /etc/frp/frpc.toml
  • 在客户端创建配置目录并编写 frpc.toml示例(基础配置):
# 服务端公网 IP 或域名
serverAddr = "公网IP"
# 服务端 frps 监听端口
serverPort = 7000
# 服务端配置的令牌(需一致)
auth.token = "服务端令牌"

# 示例 1:反向代理 SSH(内网机器 SSH 端口默认 22)
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

2. 启动 frpc 容器

docker run -d \
  --name frpc \
  --restart always \
  --network host \
  -v /etc/frp/frpc.toml:/etc/frp/frpc.toml \
  snowdreamtech/frpc

3. 验证客户端是否连接成功

  • 查看客户端日志:docker logs frpc,显示 start proxy success 则连接成功;
  • 服务端 Dashboard 中可看到客户端连接状态和代理配置。

Windows

1. 下载并解压 FRP 客户端

  • 访问 FRP 的GitHub Release 页面,下载 Windows 对应的版本,通常选择frp_xxx_windows_amd64.zip(适配 64 位 Windows 系统)。
  • 解压下载的压缩包到固定目录,比如C:\frp,解压后核心文件包括frpc.exe(客户端程序)和frpc.toml(客户端配置文件),无需额外安装。

2. 配置 frpc.ini 文件

  • 配置文件是客户端连接 FRP 服务端的关键,需根据服务端配置修改,以下分两种常见场景给出示例:
  • 远程桌面穿透(3389 端口),打开C:\frp目录下的frpc.toml,写入如下内容:
# 服务端公网 IP 或域名
serverAddr = "公网IP"
# 服务端 frps 监听端口
serverPort = 7000
# 服务端配置的令牌(需一致)
auth.token = "服务端令牌"

[[proxies]]
name = "win"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 3389

3. 启动 frpc 并验证

  • 按下Win+R,输入cmd打开命令提示符。
  • 切换到 FRP 解压目录,执行命令:
cd C:\frp
frpc.exe -c frpc.toml
  • 若日志中显示login to server success,说明客户端成功连接服务端;若报错,需检查服务端 IP、端口、token 是否匹配,或防火墙是否放行对应端口。 image.png

四、结束

对你有帮助的话可以点赞、关注、收藏,有问题评论区见哈~

原创不易,若转载请注明出处,感谢大家~

Logo © 2025 Mark All Rights Reserved. 陕ICP备2025083152号