无公网IP部署BITWARDEN
无公网IP 部署BITWARDEN (FRP 内网穿透)
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对应二级域名
实际配置时:注释符号和注释,即#和#之后的文字均需删除;
Comments ()