• 极空间z2pro bitwarden+frp+nginx教程


    z2pro Bitwarden + Frp + Nginx教程

    本案例仅供记录

    使用时按照自己的IP端口进行 灵活变通

    本案例中使用的设备:

    1. NAS:z2pro
    2. 域名:est.xyz
    3. 云服务器:腾讯云(公网ip:43.43.43.143)

    一,Vaultwarden

    本人是在极空间z2pro上进行docker部署的

    官方镜像的totp需要付费使用,vaultwarden镜像 解锁了 bitwarden的totp功能,所以推荐使用vaultwarden

    pc设备安装docker后同理

    云服务器安装docker后同理

    即:

    192.168.1.10:7000 = bitwarden

    框架图:

    在这里插入图片描述

    预期结果:

    步骤:

    1. NAS中安装镜像vaultwarden
      在这里插入图片描述

    2. 端口设置中,80端口对应7000本案例中设置为7000,按照自己的需求更改即可

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    3. 文件夹路径中,在本地创建文件夹docker/bitwarden
      在这里插入图片描述

    4. 启动并测试,访问192.168.1.10:7000,本案例中ip为192.168.1.10,在z2pro设置中查看自己的ip

    二,Frp内网穿透

    通过公网IP访问局域网中的bitwarden服务

    即:

    客户端frpc连接时需要填写服务器frps绑定的监听端口,本案例中服务器frps监听7010端口

    43.43.43.143:7000 -> 192.168.1.10:7000 = bitwarden

    架构图:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    预期结果:

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    frps步骤:

    1. 手动下载官方fatedier/frp安装包

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    2. 用你们的SSH工具把他上传到云服务器上,使用tar -zxvf 文件名.tar.gz命令解压,结果如下:

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    3. 进入到文件夹后看到下图,我们需要修改frps.toml文件:

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    4. 使用vim frps.toml命令:

      bindPort = 7010 #服务器监听端口,这个端口很重要,客户端中需要填写这个
      
      webServer.addr = "0.0.0.0" #以下四行为服务器端控制面板的访问地址和端口43.43.43.143:7500,用户名和密码,可以不设置
      webServer.port = 7500  
      webServer.user = "admin"
      webServer.password = "admin"
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    5. 结果如图:

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    6. 去云服务器中开放对应端口,bitwarden端口7000,frps监听端口7010,frps的控制面板访问端口7500:

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    7. 启动服务:

      nohup ./frps -c ./frps.toml >frp.log 2>&1 &
      
      • 1
    8. 访问管理面板43.43.43.143:7500:

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    frpc步骤:

    1. docker下载镜像snowdreamtech/frpc
      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    2. 本地创建文件夹docker/frpc

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    3. 在文件夹中创建文件frpc.txt,打开编辑先是txt,然后修改后缀为toml,跟着做即可

      # frpc.toml
      serverAddr = "43.43.43.143" #本案例中填写43.43.43.143,修改为你的公网ip地址
      serverPort = 7010 #填写服务器绑定的监听端口,本案例中填写7010端口,按照你的实际情况修改
      
      webServer.addr = "0.0.0.0" #以下四行 为开启客户端控制面板,用户名和密码为admin,访问本地7400端口即可,可以不写
      webServer.port = 7400 
      webServer.user = "admin"
      webServer.password = "admin"
      
      [[proxies]]
      name = "bitwarden"
      type = "tcp"
          
      localIP = "192.168.1.10" #本案例中,bitwarden服务器地址为192.168.1.0,按照你的实际情况修改
      localPort = 7000 #本案例中,bitwarden服务器端口为7000,按照你的实际情况修改
          
      remotePort = 7000 #本案例中,想通过云服务器的7000端口访问,按照你的实际情况修改
          
      transport.useEncryption = true #开启加密,建议开启
      transport.useCompression = true #开启压缩,建议开启
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

      怕读者混乱,这里重新说下配置文件

      43.43.43.143:2000 -> 192.168.1.10:7000

      serverAddr:remotePort -> localIP:localPort

      serverAddr = “43.43.43.143”,填写服务器的地址

      serevrPort = “ ”,填写服务器的监听端口

      localIP = “192.168.1.10”,填写客户端的地址

      localPort = “7000”,填写客户端的端口

      remotePort = “2000”,填写服务器的端口

    4. 修改后缀为toml,保存,在创建容器中选择文件夹路径,装载路径为/etc/frp/frpc.toml,文件选择刚才我们保存的配置文件docker/frpc/frpc.toml

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    5. 启动容器,观察日志,访问43.43.43.7000端口,:

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    三,nginx反向代理

    目前已经可以通过公网IP访问局域网的bitwarden服务了

    现在实现域名访问,我们已有域名test.xyz

    即:

    bitwarden.test.xyz = 43.43.43.43:7000

    为什么要用子域名,因为我一个服务器上有好几个服务,不同子域名对应不同服务

    例如:

    bitwarden.test.xyz 对应 bitwarden

    halo.test.xyz 对应 halo博客

    架构图

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    预期结果

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    子域名解析到服务器(云解析DNS)

    1. 进入腾讯云,搜索栏搜索云解析DNS

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    2. 点击域名test.xyz,添加解析:

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      子域名bitwarden.test.xyz

      主机记录填写:bitwarden 本案例中是bitwarden,改成你想要的子域名前缀

      记录值填写:43.43.43.143 本案例中是43.43.43.143,改成你的服务器公网IP

    给子域名申请SSL证书(SSL证书)

    1. 进入腾讯云,搜索栏搜索SSL证书

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    2. 点击我的证书,点击申请免费证书

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    3. 选择右边的免费证书

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

      证书绑定域名: bitwarden.test.xyz 填写你的子域名

      验证方式:选自动DNS验证,因为我这里是测试的域名,不是我的腾讯云域名,所以不让我选择自动DNS验证

    4. 申请完成后,需要等待一段时间,通常10分钟以内

    5. 申请完成后,下载证书,点击右侧下载,我们下载nginx版的

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    6. 使用你的SSH工具将证书上传到腾讯云服务器

      这里为什么不重点说呢,因为每个人上传的方法不一样,

      有的使用SSH工具就能上传,有的通过SSH的scp命令上传,总之上传上去就行

    云服务器安装nginx

    特别简洁的官方教程:https://ubuntu.com/tutorials/install-and-configure-nginx#2-installing-nginx

    1. ubuntu中安装nginx

      sudo apt update
      sudo apt install nginx
      
      • 1
      • 2
    2. 访问43.43.43.143直接截的官方图,效果一样

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    3. nginx的配置文件在/etc/nginx/文件夹下,进入这个文件夹

      nginx的配置文件在/etc/nginx下,不要乱找

      配置文件为:nginx.conf

      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    4. 将SSL证书放到文件夹中

      1. 在/etc/nginx中创建文件夹tls/bitwarden,用来存放bitwarden子域名的证书

        tls文件夹是本人创建专门分类服务器证书的,如果路径你们不觉得乱,也可以不管

        例如:

        创建文件夹tls/halo,用来存放halo子域名的证书

        创建文件夹tls/https,用来存放https子域名的证书

      2. 在云服务器上解压你的证书压缩包

        zip包用 unzip

        tar.gz包,用tar -zxvf

      3. 将解压好的证书包里面的四个文件,移动到tls/bitwarden

        sudo mv bitwarden* /etc/nginx/tls/bitwarden

      4. 结果应该是如下:

        外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    5. 修改nginx配置文件nginx.conf

      bitwarden.test.xyz 访问 http://43.43.43.143:7000

      server_name:listen 访问 proxy_pass

      即:

      server_name:bitwarden.test.xyz

      listen:443

      proxy_pass http://43.43.43.143:7000

      nginx配置文件整体框架如下:

      全局块
      events{
      }
      http{
          #我们写的东西要放在这里面
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      添加配置快:

          #HTTP服务器
          server {
          #监听443端口。443为知名端口号,主要用于HTTPS协议
          listen       443 ssl;
      
          #定义使用www.xx.com访问
          server_name  bitwarden.test.xyz;
      
          #ssl证书文件位置
          ssl_certificate      /etc/nginx/tls/bitwarden/bitwarden.test.xyz_bundle.crt;
          #ssl证书key位置
          ssl_certificate_key  /etc/nginx/tls/bitwarden/bitwarden.test.xyz.key;
      
          #ssl配置参数(选择性配置)
          ssl_session_cache    shared:SSL:1m;
          ssl_session_timeout  5m;
          #数字签名,此处使用MD5
          ssl_ciphers  HIGH:!aNULL:!MD5;
          ssl_prefer_server_ciphers  on;
          location / {
             proxy_pass http://43.43.43.143:7000;
             root   /root;
             index  index.html index.htm;
           }
          }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25

      配置块添加到http下面,添加完成后的配置文件:不是完整的配置文件,只是告诉你放在哪里,放对了就没问题

      全局块
      events{
      }
      http{
          #我们写的东西要放在这里面
          #HTTP服务器
          server {
          #监听443端口。443为知名端口号,主要用于HTTPS协议
          listen       443 ssl;
      
          #定义使用www.xx.com访问
          server_name  bitwarden.test.xyz;
      
          #ssl证书文件位置
          ssl_certificate      /etc/nginx/tls/bitwarden/bitwarden.test.xyz_bundle.crt;
          #ssl证书key位置
          ssl_certificate_key  /etc/nginx/tls/bitwarden/bitwarden.test.xyz.key;
      
          #ssl配置参数(选择性配置)
          ssl_session_cache    shared:SSL:1m;
          ssl_session_timeout  5m;
          #数字签名,此处使用MD5
          ssl_ciphers  HIGH:!aNULL:!MD5;
          ssl_prefer_server_ciphers  on;
          location / {
             proxy_pass http://43.43.43.143:7000;
             root   /root;
             index  index.html index.htm;
           }
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
    6. 测试nginx配置文件

      sudo nginx -t
      
      • 1
    7. 后台启动nginx服务

      nohup sudo service nginx restart > nginx.log 2&>1 &
      
      • 1

    测试结果

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 相关阅读:
    Ubuntu安装PCAN-View
    短链接系统如何设计
    【数组】二进制矩阵中的特殊位置
    【Hello,PyQt】最简单的一些pyqt5程序
    Intellij IDEA--格式化SQL文件的方法
    牛客多校十 - Shannon Switching Game (倒推,bfs)
    (五)在docker中添加nginx端口映射(解决docker中的nginx无法访问除80端口以外的问题)
    Element-Ui+Vue实现首页布局(带收缩展开效果)
    Ajax相关知识点
    如何有效地开发 Jmix 扩展组件
  • 原文地址:https://blog.csdn.net/qq1291594496/article/details/134529026