无公网IP部署BITWARDEN

无公网IP 部署BITWARDEN (FRP 内网穿透)

无公网IP部署BITWARDEN

1.搭建 Bitwarden,详见前文

若通过:http://本地IP:19999 可正常访问 BITWARDE,则继续往下看,否则请重新进行第 1 步,直至可访问为止。

2.设置内网穿透(FRP)

2.1 前言

1.选择FRP而非Ngrok的原因为:Ngrok存在内存积压问题,虽然开始用的很稳定,但久了就容易崩溃,网友也反应Ngrok开源一直都就是这种情况,定时重启一下就好了。这对一个懒人来讲无法接受。
2.选择面板部署的原因为:只会图形化,抗拒命令行(微软系统受害者)
3.内网穿透无视群辉反向代理的设置和路由器端口映射设置,换句话说,设置与否不影响穿透
  • 国内无公网IP常见于联通、移动和少部分电信的宽带,用户IP为运营商的局域网内IP而非公网的IP,这就给内网服务的外访带来不利影响。
    
  • 简单的说:通过FRPS(服务端)和FRPC(客户端)的穿透直连功能,可使任何人可通过FRPS的公网IP+端口的方式访问用户内网的服务。所以FRPS是安装在有公网IP的服务器上,一般分为:
    
IP 举例 备注
固定IP 阿里云,腾讯云等VPS 在国内,仅可穿透
固定IP 谷歌云,搬瓦工,Vultr等VPS 在国外,除穿透外也可作不可描述之事
动态IP 部分电信宽带用户 在国内,但要动态调整配置
另:内网穿透为C端和S端相互转发,故流量使用为双份,故除动态IP带宽包年外,国内外VPS均存在流量焦虑,切记不可用作媒体服务穿透,否则你会哭死

2.2 VPS安装(有公网IP的主机即可)

任意VPS均可,小白视频中测试的是Vultr VPS,建站过程详见视频。

2.3 Appnode面板安装

实际安装时可以选择 

A:使用命令行安装及设置FRPS,完成NGINX反代设置(NGINX反代目的:1.隐藏端口号 2.通过HTTPS访问)。------老司机可选

B:使用APPNODE、宝塔等管理面板安装至VPS,而后图形化安装及设置 FRPS和NGINX。(小白介绍APPNODE)------建议小白用户选用

A:命令行模式:frps服务器文件: 下载地址

依据服务器操作系统选择对应的版本,如阿里云ECS CentOS 7.4 64位下载选择frp_0.33.0_linux_amd64.tar.gz,如果你是其他操作系统,请自行选择下载完之后,传到ECS上,然后解压,编辑frps.ini配置文件

B:面板模式

APPNODE模式:面板安装详见
参考视频以Vultr VPS为例,文档教程以谷歌云为例;

2.4 域名服务器设置

2.5 服务端软件安装:

2.5.1 frps内网穿透服务器

FRPS 设置:
  [common]
bind_port        = 7000    #与客户端对应
token            = RrgqO^8-S$qkI*=^5R9E7^BTwQ^u64v0 #与客户端对应,切记保密
allow_ports      = 2000-3000,3001,3003,4000-50000
bind_addr        = 0.0.0.0
dashboard_port   = 7500    #管理面板端口
dashboard_user   = tqssr   #管理面板用户
dashboard_pwd    = 123456  #管理面板密码
vhost_http_port  = 8080    #HTTP 80端口被nginx占用,故使用8080;
vhost_https_port = 8443    #HTTPS 443端口被nginx占用,故使用8443;
kcp_bind_port    = 7000

实际配置时:注释符号和注释,即#和#之后的文字均需删除;


2.5.2 Nginx 反向代理设置

Step 1:安装运行环境
Step 2:创建网站-设置HTTS,申请SSL证书
Step 3:设置Nginx反向代理
详细步骤见视频,最终Nginx代码如下
server {
    listen                     80;
    listen                     443 ssl http2;
    server_name                *.phoc.tk;
    server_name                bitwarden.phoc.tk;
    server_name                www.phoc.tk;
    server_name                calibre.phoc.tk;
    ssl_certificate            /data/mystack/sites/phoc.tk/ssl/site.crt;
    ssl_certificate_key        /data/mystack/sites/phoc.tk/ssl/site.key;
    ssl_prefer_server_ciphers  on;
    ssl_ciphers                ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_cache          shared:SSL:5m;
    ssl_session_timeout        5m;
    keepalive_timeout          75s;
    keepalive_requests         100;
    access_log                 /data/mystack/sites/phoc.tk/log/nginx/access.log;
    error_log                  /data/mystack/sites/phoc.tk/log/nginx/error.log;

    if ($scheme = http) {
        return  301 https://$host$request_uri;
    }

    gzip                       on;
    gzip_comp_level            6;
    gzip_min_length            1k;
    gzip_types                 text/plain text/css text/xml text/javascript text/x-component application/json application/javascript application/x-javascript application/xml application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype;

    location / {
        resolver              114.114.114.114 8.8.8.8;
        proxy_pass            http://127.0.0.1:8080; #Port为Frps的穿透端口
    	proxy_set_header      Host $host:80; #增加这一行
        proxy_set_header      X-Real-IP $remote_addr;
        proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header      Upgrade $http_upgrade;
        proxy_set_header      Connection $connection_upgrade;
        client_max_body_size  1m;
    }
}

此段代码除了 加#号注释两行外,其余均为自动生成的代码

2.6 客户端软件安装:

2.6.1 frpc docker版安装

2.6.2 Frpc客户端设置(frpc.ini)

[common]
server_addr = 144.202.109.219              #服务器IP或域名
server_port = 7000                         #与服务端对应
token = RrgqO^8-S$qkI*=^5R9E7^BTwQ^u64v0   #与服务端对应,切记保密

[bitwarden http]
type = http
local_ip = 192.168.0.7                     #192.168.0.7指穿透至此机-群辉内网IP
local_port = 9999                          #指bitwarden内网端口
custom_domains = bitwarden.phoc.tk         #指bitwarden对应二级域名

[calibre]
type = http
local_ip = 192.168.0.7
local_port = 8083                          #指calibre内网端口
custom_domains = calibre.phoc.tk           #指calibre对应二级域名

实际配置时:注释符号和注释,即#和#之后的文字均需删除;

2.7 最终效果

3 视频教程