通过frp和Nginx将内网WS协议升级为WSS协议

准备

  1. 二级域名一个(example.com)

  2. 云服务器一台(假如ip为:server-ip)

  3. 申请 SSL 证书,并下载为 crt/key格式证书,例如: http://domain1.example.com

  4. 将申请SSL证书的相关三级域名 A记录 DNS解析指向 server-ip

  5. 一个 ws 协议的服务

  6. 云服务器正确配置和安装 nginxfrpsdocker (我的环境,具体情况按自己的云服务器安装了什么,nginx + frps 也可以)

  7. 云服务器需要开放使用的端口

  8. 客户端正确配置 frpc

内网穿透ws为wss

整体思路:

  • 通过编辑 frpc.toml 正常配置一个 tcp 协议的 远程代理端口
  • 使用云服务器的 nginx 配置 https 反向代理,目标为 frpc.toml 创建的远程端口

具体操作如下

假如内网ws协议端口为 :15674,需要映射的远程端口为 6001

frpc.toml配置文件添加如下(请确保客户端frpc可执行程序最新为版本)

  • # 其他初始化配置
    # ...
    
    # 需要添加的内容
    [[proxies]]
    name = "ws"
    type = "tcp"
    localIP = "127.0.0.1"
    localPort = 15674
    remotePort = 6001
    

运行frpc

./frpc -c frpc.toml

现在,可以通过云服务器的 6001 端口访问本地 15674 端口 ws 服务,即 ws://server-ip:6001

现在使用nginx配置反向代理

将下载好的 crt/key 文件放在正确的路径,如果使用 docker ,则需要进行挂载ssl证书存放的路径,在 nginx 的配置文件中使用挂载在docker nginx 里面的路径

配置如下,添加在 nginx.conf

  • server {
      listen 4443 ssl; # 监听的端口任意,如果frps 有配置443端口,则nginx需要配置其他端口
      server_name domain1.example.com;
      ssl_certificate /usr/share/nginx/ssl/cert.crt; # crt 证书 如果使用docker,需使用挂载目录
      ssl_certificate_key /usr/share/nginx/ssl/private.key; # key 证书
      ssl_session_timeout 5m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
      ssl_prefer_server_ciphers on;
      location / {
        proxy_pass http://server-ip:6001; # 代理云服务器 6001 端口
        proxy_read_timeout 60s;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade; # 重要 不可删除
        proxy_set_header Connection 'Upgrade'; # 重要 不可删除
      }
    }
    
    

重启 nginx

接下来就可以使用 wss 协议访问 ,即 wss://domain1.example.com:4443

我的博客,欢迎前往: https://blog.ivwv.site/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vvw&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值