frp 内网穿透:服务端与客户端配置
用 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