侧边栏壁纸
博主头像
帆云素材 博主等级

苟利国家生死以,岂因祸福避趋之

  • 累计撰写 26 篇文章
  • 累计创建 26 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

FRP 高级应用

智慧的格子衫
2025-06-29 / 0 评论 / 0 点赞 / 69 阅读 / 0 字

通过上一篇文章FRPC 使用教程-智慧的格子衫,你已经学会了基础的frpc的使用方式。

或许你会有以下困扰:

  1. 访问的时候需要采用 ip+端口的方式,比如 http://106.54.226.170:8001/ ,ip和端口不容易记住

  2. 我配置了域名,但是因为端口被占用,访问的时候是 http://it.fu520.top:10098/ ,必须要加上端口

  3. 因为服务本身是http的,映射出来也只能是http,使用浏览器访问的时候总是提示网站不安全(确实不安全,有被拦截的风险)。

  4. .... 或许还有其他困扰

格子衫免费教你如何解决这些问题!

本站的根域名是 fu520.top,以下内容以此为例

域名需要申请,并且进行备案,流程比较复杂,本文不再阐述,如果不会申请域名但是想使用域名,可以使用本站的域名,详情联系我

一、域名绑定:告别 IP 地址记忆

1.1 基础域名配置

当您拥有一个域名后,可以轻松实现通过域名访问内网服务。

例如,我现在搭建了一个it-tools 工具网站,我想使用我的域名访问。

frpc.toml 中加上如下配置

[[proxies]]
name = "it-tools"
type = "http"
localPort = 40116
subdomain = "it"

frps.toml中配置加上如下配置

vhost_http_port = 8110
vhost_https_port = 8111

subdomainHost = "fu520.top"

重启 FRPS 和 FRPC 服务,就可以实现域名访问

http://it.fu520.top:10098/

这个地址是配置到这一步的地址,现在已经是更高级的访问方式,这个访问方式已经无法使用,请继续阅读本文

二、配置Https:安全增强

如果你有了域名,就可以申请免费的SSL证书,必须是泛域名证书。有常用的申请工具有 acme.sh等。

HTTPS 配置

有了证书之后,可以在服务端的nginx上配置指定的https证书,然后使用http转发到frp

server {
    listen      2443 ssl;
    
    server_name *.fu520.top;

    # 证书文件
    ssl_certificate /proxy/cert/fu520.top/cert.crt;
    # 私钥文件
    ssl_certificate_key /proxy/cert/fu520.top/cert.key;
    ssl_session_timeout 5m;
    # 请按照以下协议配置
    ssl_protocols TLSv1.2 TLSv1.3;
    # 请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {        
        proxy_http_version 1.1;
        
        proxy_ssl_server_name on;

        proxy_set_header Upgrade $http_upgrade; # WebSocket 
        proxy_set_header Connection 'Upgrade';  # WebSocket 
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://127.0.0.1:8110; # Frp http通信端口
    }
    
}

此时访问就可以实现域名访问,并且浏览器不会再抛出此网站不安全的警告

https://it.fu520.top:2443/

这个地址是配置到这一步的地址,现在已经是更高级的访问方式,这个访问方式已经无法使用,请继续阅读本文

三、隐藏非标准端口(两种方式)

3.1 方案一:服务端的443端口可以使用,未被占用

可以直接通过nginx转发,将上述 Nginx 配置第二行的端口改成443即可。

3.2 方案二:CDN转发

此方案可以省略 Nginx,由cdn直接转发到Frps,在CDN处配置 https的证书,并且将http 强制转换为 https请求

注:CDN 本质就是缓存,可以进一步提高网站的响应速率,但是CDN本身需要付费,比较便宜,一年20RMB足矣

免费CDN方案:免费 CDN 不再是梦:阿里云 ESA 免费CDN白嫖指南-智慧的格子衫

CDN 不仅可以加速内容分发,还能帮助隐藏实际端口:

用户 -> CDN(80/443) -> FRPS(非标准端口) -> FRPC -> 内网服务

以腾讯云 CDN 为例

至此已配置完毕

本站采用 cnd(强制转换https),以 https回源至 服务器Nginx,nginx映射到frps,使用http方式穿透到家庭主机。

最终配置成如下可访问地址:IT Tools

https://it.fu520.top

通过本文介绍的高级配置,您可以将 FRP 从简单的端口转发工具升级为功能完善的企业级反向代理解决方案。域名绑定让服务访问更加专业易记,CDN 整合则大幅提升了访问体验和安全性。结合 HTTPS 加密、访问控制等安全措施,您可以构建出既方便又安全的内网服务暴露方案。

如果本文有不懂的,或者想进一步交流,可以联系我

0

评论区