s-blog

frp 内网穿透:服务端与客户端配置

ssssmy · 2026-06-05 · 2 min · 网络

用 frp 把内网服务(HTTP 子域名 / TCP 端口)穿透到有公网 IP 的服务器。下文 token、域名、IP 等均用占位符 <...>,使用时替换。

下载

cd ~/frp
wget https://github.com/fatedier/frp/releases/download/v0.52.1/frp_0.52.1_linux_amd64.tar.gz
tar -xzvf frp_0.52.1_linux_amd64.tar.gz

服务端 frps.toml(公网服务器)

bindPort = 2534          # frpc 连接端口
vhostHTTPPort = 1208     # HTTP 穿透统一入口端口

auth.token = "<你的token>"

# dashboard:默认 127.0.0.1,需公网访问改 0.0.0.0
webServer.addr = "0.0.0.0"
webServer.port = 16343
webServer.user = "<用户>"
webServer.password = "<密码>"

客户端 frpc.toml(内网机器)

serverAddr = "<公网服务器域名或IP>"
serverPort = 2534
auth.token = "<你的token>"

# HTTP 穿透:把内网 4426 端口映射到子域名
[[proxies]]
name = "alist"
type = "http"
localPort = 4426
customDomains = ["<你的子域名>"]

# TCP 穿透:把内网 SSH(22) 映射到公网 7824
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 7824

旧版用 .ini 格式([common] + server_addr / token / [web-xxx] 段);新版用 .toml。HTTP 代理用 type=http+customDomains,TCP 用 type=tcp+remotePort

守护进程

Linux(systemd)/lib/systemd/system/frps.service

[Unit]
Description=frp server
After=network.target syslog.target
Wants=network.target

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

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now frps
systemctl status frps

macOS(launchd,frpc 同理)参见「macOS launchd 开机自启服务」一篇。

原文链接:https://www.ssssmy.com/notes/frp-nei-wang-chuan-tou-fu-wu-duan-yu-ke-hu-duan-pei-zhi