一个基于 frp 的远程调试脚本集合,采用 Bastion(SSH 跳板) + FRP 架构:
- 公网仅开放服务器
22/7000 - 车端映射端口(
60000+)仅服务器本机可访问 - 用户必须通过 SSH 跳板访问车端
bash server/install.sh脚本生成(默认 /opt/frp/server):
frpsfrps.toml
默认配置要点:
bindPort = 7000
auth.token = "<交互输入>"
proxyBindAddr = "127.0.0.1"
allowPorts = [ { start = 60000, end = 60100 } ]说明:proxyBindAddr = "127.0.0.1" 会让 60000+ 端口不对公网暴露。
只放行:
- TCP
22(跳板 SSH) - TCP
7000(frpc -> frps)
不要放行 60000-60100 到公网。
sudo useradd -m -s /bin/bash user_a
sudo passwd user_a推荐仅密钥登录,不给 root 直连公网。
bash car/install.sh会交互输入:
- 服务器 IP
- 车编号(数字)
auth.token
生成配置示例:
serverAddr = "<服务器公网IP>"
serverPort = 7000
auth.token = "<交互输入>"
[[proxies]]
name = "car_01_ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 60001
bindAddr = "127.0.0.1"说明:bindAddr = "127.0.0.1" 使该车端映射口只能被服务器本机访问。
bash server/manage.sh start
bash server/manage.sh status
bash server/manage.sh stop
bash car/manage.sh start
bash car/manage.sh status
bash car/manage.sh stop安装脚本默认按以下顺序下载:
- 自托管源(主源)
- GitHub 官方 release(回退源)
可通过环境变量覆盖:
FRP_PRIMARY_URL="https://your.mirror/frp_0.54.0_linux_amd64.tar.gz" \
FRP_FALLBACK_URL="https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz" \
bash server/install.sh建议仅覆盖主源,保留官方回退,确保可用性。
用户端无需安装 frp,仅配置 SSH。
编辑 ~/.ssh/config:
Host bastion
HostName 服务器公网IP
User user_a
Port 22
Host car1
HostName 127.0.0.1
Port 60001
User root
ProxyJump bastion
连接:
ssh car1- 用户执行
ssh car1 - 本机先连
bastion:22 - 再通过跳板访问服务器侧
127.0.0.1:60001 - frps 将请求经
7000隧道转发到车端22 - 获得车端 Shell
- 隐身性:公网扫描看不到车端
60000+端口 - 可控性:禁用服务器用户即可回收访问权限
- 分层防护:SSH 跳板 + FRP token
server/install.sh:服务端安装与配置生成server/manage.sh:服务端进程管理与状态查看car/install.sh:车端安装与配置生成car/manage.sh:车端进程管理与状态查看LICENSE:许可证