frp这个工具 还有好多好多玩法 玩明白了对网络学习有很大帮助

FRPS

bindPort = 7000

vhostHTTPPort = 8080
auth.token = ""
tls_enable = true

# 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。
webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
#webServer.user = ""
#webServer.password = ""

FRPC

serverAddr = ""
#对应bindPort
serverPort = 7000
auth.token = ""
tls_enable = true

[[proxies]]
name = ""
type = "tcp"
localIP = ""
#本地对应端口
localPort = 22
#server开放端口对外提供服务
remotePort = 6001


[[proxies]]
name = "fnos-docker.sock"
type = "tcp"
remotePort = 6000
[proxies.plugin]
type = "unix_domain_socket"
# Unix 域套接字路径
unixPath = "/run/docker.sock"

把本地docker.sock映射到服务器 服务器内网ip:6000就能连到portainer

frpc自启动脚本

#!/bin/bash

# 配置参数
FRPC_PATH="/usr/local/bin/frpc"  # frpc可执行文件路径
CONFIG_FILE="/etc/frp/frpc.ini"  # 配置文件路径
LOG_FILE="/var/log/frpc_monitor.log"  # 日志文件路径

# 检测进程是否存在
pgrep -f "frpc -c $CONFIG_FILE" > /dev/null

# 检查上一条命令的返回值
if [ $? -ne 0 ]; then
    # 记录日志
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] frpc is not running. Starting..." >> $LOG_FILE
    
    # 启动frpc(后台运行并抑制输出)
    $FRPC_PATH -c $CONFIG_FILE > /dev/null 2>&1 &
    
    # 再次验证启动是否成功
    sleep 2
    if pgrep -f "frpc -c $CONFIG_FILE" > /dev/null; then
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] frpc started successfully" >> $LOG_FILE
    else
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] Failed to start frpc!" >> $LOG_FILE
    fi
fi