新版frp-0.61.0 实现泛解析域名穿透 以及 https启用

需要在公网服务器的域名解析平台 泛域名 *.aa.com 解析到frp 公网服务器的ip x.x.x.x

对于frpc.toml 文件的 serverAddr 绑定的ip 需要公网服务器放行 bindPort 对于的端口

frpc.toml serverPort 对于的的是 frps.toml bindPort 端口

frps.toml

复制代码
bindPort = 7000
vhostHTTPPort = 80
vhostHTTPSPort = 443

frppath="/data/frp/frp_0.61.0_linux_amd64"

port=7000

fprsStart(){
    
    if [ -d ${frppath} ];
    then
        echo ""
    else
        echo "${frppath}目录不存在"
        exit
    fi
    
    echo "进入${frppath}目录"

    cd ${frppath}
    
    nohup ./frps -c ./frps.toml > frps.log 2>&1 &
    
    exit
}

fprsStop(){
    #根据端口号查询对应的pid
    pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');

    #杀掉对应的进程,如果pid不存在,则不执行
    if [  -n  "$pid"  ]
    then
        kill  -9  $pid;
        echo "${port}端口对应的进程号${pid}被杀死"
    else
        echo "${port}端口未启动"
    fi
}

frpReStart(){
    
    fprsStop
    
    sleep 2s
    
    fprsStart
    
}

commport(){
    #根据端口号查询对应的pid
    pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');

    #杀掉对应的进程,如果pid不存在,则不执行
    if [  -n  "$pid"  ]
    then
        echo "${port}端口对应的进程号${pid}"
    else
        echo "${port}端口未启动"
    fi
}

sele(){
    commport
}

helpTxt(){
    echo "-----------------------------"
    echo "      start     启动frps        "
    echo "      stop      关闭frps        "
    echo "      restart   重启frps        "
    # echo "      2      启动frpc        "
    # echo "      3      关闭frpc        "
    echo "      sele      端口运行情况        "
    # echo "      exit   退出        "
    echo "-----------------------------"
}


case "$1" in
    "start")
    fprsStart
    ;;
    "stop")
    fprsStop
    ;;
    "restart")
    frpReStart
    ;;
    "sele")
    sele
    ;;    
    *)
    helpTxt
    ;;
esac

内网机器的nginx配置ssl证书,至于ssl证书自己去搞,宝塔获取也好,免费的也好,很好弄的

复制代码
server {
    # 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块
    listen       443 ssl;
    # 域名,多个以空格分开
    server_name  *.aa.com;
    
    # ssl证书地址
    ssl_certificate     /usr/local/nginx/cert/ssl.pem;  # pem文件的路径
    ssl_certificate_key  /usr/local/nginx/cert/ssl.key; # key文件的路径
    
    # ssl验证相关配置
    ssl_session_timeout  5m;    #缓存有效期
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    #加密算法
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    #安全链接可选的加密协议
    ssl_prefer_server_ciphers on;   #使用服务器端的首选算法

    location / {
        root   html;
        index  index.html index.htm;
    }
}

https 最重要的是

复制代码
[[proxies]]
name = "nginx"
type = "https"
localIP = "192.168.1.33"
localPort = 443
customDomains = ["*.aa.com"]

frpc.toml

复制代码
serverAddr = "x.x.x.x"
serverPort = 7000

webServer.addr = "0.0.0.0"
webServer.port = 7000
webServer.user = "admin"
webServer.password = "admin"


[[proxies]]
name = "web"
type = "http"
localIP = "192.168.1.34"
localPort = 9100
customDomains = ["mqtt.aa.com"]

[[proxies]]
name = "mqtt"
type = "tcp"
localIP = "192.168.1.33"
localPort = 1883
remotePort = 1883

[[proxies]]
name = "nginx"
type = "https"
localIP = "192.168.1.33"
localPort = 443
customDomains = ["*.aa.com"]

frppath="/data/frp/frp_0.61.0_linux_amd64"

port=7000

fprsStart(){
    
    if [ -d ${frppath} ];
    then
        echo ""
    else
        echo "${frppath}目录不存在"
        exit
    fi
    
    echo "进入${frppath}目录"

    cd ${frppath}
    
    nohup ./frpc -c ./frpc.toml > frpc.log 2>&1 &

    exit
}

fprsStop(){
    #根据端口号查询对应的pid
    pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');

    #杀掉对应的进程,如果pid不存在,则不执行
    if [  -n  "$pid"  ]
    then
        kill  -9  $pid;
        echo "${port}端口对应的进程号${pid}被杀死"
    else
        echo "${port}端口未启动"
    fi
}

frpReStart(){
    
    fprsStop
    
    sleep 2s
    
    fprsStart
    
}

commport(){
    #根据端口号查询对应的pid
    pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');

    #杀掉对应的进程,如果pid不存在,则不执行
    if [  -n  "$pid"  ]
    then
        echo "${port}端口对应的进程号${pid}"
    else
        echo "${port}端口未启动"
    fi
}

sele(){
    commport
}

helpTxt(){
    echo "-----------------------------"
    echo "      start     启动frps        "
    echo "      stop      关闭frps        "
    echo "      restart   重启frps        "
    # echo "      2      启动frpc        "
    # echo "      3      关闭frpc        "
    echo "      sele      端口运行情况        "
    # echo "      exit   退出        "
    echo "-----------------------------"
}


case "$1" in
    "start")
    fprsStart
    ;;
    "stop")
    fprsStop
    ;;
    "restart")
    frpReStart
    ;;
    "sele")
    sele
    ;;    
    *)
    helpTxt
    ;;
esac


# while :
#     do  
#         #键盘录入数据
#         helpTxt
#         echo "请输入指令" 
#         read meath
#         case ${meath} in
#             "0") 
#             fprsStart exit
#             ;;
#             "1") 
#             fprsStop exit
#             ;;
#             "4") 
#             sele exit
#             ;;
#             "5") 
#             helpTxt exit
#             ;;
#             "exit") 
#             echo "程序结束!"
#             break
#             ;;
#             *) 
#             echo "你输入的是'${meath}'不在范围内" 
#             continue
#             ;;
#         esac
# done


# #键盘录入数据
# read meath
# case "$meath" in
#     "0") 
#     fprsStart exit
#     ;;
#     "1") 
#     fprsStop exit
#     ;;
#     "4") 
#     sele exit
#     ;;
#     "5") 
#     helpTxt exit
#     ;;
#     *) helpTxt exit
#     ;;
# esac
相关推荐
猫头虎2 小时前
如何查看局域网内IP冲突问题?如何查看局域网IP环绕问题?arp -a命令如何使用?
网络·python·网络协议·tcp/ip·开源·pandas·pip
爱吃小胖橘5 小时前
Unity网络开发--超文本传输协议Http(1)
开发语言·网络·网络协议·http·c#·游戏引擎
北城以北1238 小时前
生成树协议STP详解
网络协议
杰瑞学AI9 小时前
我的全栈学习之旅:FastAPI (持续更新!!!)
后端·python·websocket·学习·http·restful·fastapi
ErizJ14 小时前
WebSocket | 一点简单了解
网络·websocket·网络协议
游戏开发爱好者815 小时前
BShare HTTPS 集成与排查实战,从 SDK 接入到 iOS 真机调试(bshare https、签名、回调、抓包)
android·ios·小程序·https·uni-app·iphone·webview
2501_9151063217 小时前
苹果软件加固与 iOS App 混淆完整指南,IPA 文件加密、无源码混淆与代码保护实战
android·ios·小程序·https·uni-app·iphone·webview
2501_9160137420 小时前
iOS 推送开发完整指南,APNs 配置、证书申请、远程推送实现与上架调试经验分享
android·ios·小程序·https·uni-app·iphone·webview
2501_915909061 天前
HTML5 与 HTTPS,页面能力、必要性、常见问题与实战排查
前端·ios·小程序·https·uni-app·iphone·html5
CiLerLinux1 天前
第五十二章 ESP32S3 UDP 实验
网络·单片机·嵌入式硬件·网络协议·udp