利用群晖自带的 Nginx 做反向代理
前记
bitwarden_rs一直是安装在群晖上的Docker中的,对外访问也是通过群晖应用门户程序->反向代理反向代理加路由器端口转发
但是有一个问题,就是群晖UI界面的反代没有办法编辑配置,也就没有办法利用bitwarden_rs的WebSocket自动推送更新
解决
想到的解决方案有两个,第一是通过Docker再装一个Nginx来做反代,第二是通过群晖自身的Nginx来做反代;最后选择了通过自身Nginx来做反代
Nginx 配置
/usr/syno/etc/certificate/system/default/ 为群晖安全性->证书上传的默认证书的存储位置
8888、3012端口为bitwarden_rs的80、3012映射到群晖对应的端口
1 | server { |
链接
将配置文件链接到/etc/nginx/sites-enabled/ln -s /volume1/docker/nginx/xxx.com.conf /etc/nginx/sites-enabled/
重启
最后只需要重启Nginx即可sudo synoservicecfg --restart nginx
题外话:
利用第三方 FFMPEG 解码器让群晖的 Video Station 完美支持 DTS、EAC3、TrueHD
SmartGit 之 20 版本以后破解方法
CommandLineTools xcrun: error
ModuleNotFoundError: No module named 'Crypto'
代码
1 | from Crypto.Cipher import PKCS1_v1_5 |
错误
1 | Traceback (most recent call last): |
解决
1 | pip3 uninstall crypto |
Python 之 Requests 参数格式
x-www-form-urlencoded
当requests的content-typ为"content-type": "application/x-www-form-urlencoded; charset=UTF-8",时请求参数当如下
1 | r = requests.post( |
json
当requests的content-typ为"Content-Type": "application/json;charset=UTF-8",时请求参数当如下
1 | r = requests.post( |
x-www-form-urlencoded时应该为一个字典,json时应该为一个json字符串
在群晖上利用 VMM 玩转旁路由之 LEDE
前记
19年的时候准备用群晖来做软路由,由于双网卡配置失败遂放弃
在群晖上利用 Virtual Machine Manager 玩转软路由之 LEDE
因为把AC86U和AC66UB1都刷回了官方固件386,所以就需要一个旁路由。既然单网卡的群晖做不了软路由,那就用来做旁路有吧
LEDE
镜像
在K站下载硬盘镜像后上传至VMM
镜像下载地址:koolcenter.com
找到名为openwrt-koolshare-mod-v2.36-r14941-67f6fa0a30-x86-64-generic-squashfs-combined.vmdk的虚拟机磁盘,下载后上传至VMM
网络
网络这里我们直接使用Default VM Network即可
开机
导入虚拟机
通过之前下载的虚拟机磁盘导入虚拟机


配置网络

其他配置

开机

修改 IP
通过VMM -> 虚拟机 -> 连接进入虚拟机
通过命令vi /etc/config/network来修改网络 IP 地址
最后通过命令/etc/init.d/network restart来重启网络,或则reboot重启虚拟机
配置
关于LEDE的配置可以看看下面这篇文章
最后需要在路由器上修改路由器的网关和DNS
到这里LEDE旁路由的配置就完成了
怎么?ADGuard Home 客户端无法显示对应的设备?
前记
由于我的ADGuard Home是安装在群晖的Docker中的,对外服务是在路由器上设置的DNS,DNS请求如下
client->路由器->群晖->Docker->ADGuard Home
所以ADGuard Home的客户端列表只是显示了群晖Docker的网关地172.17.0.1,没有显示具体的客户端IP地址,导致有很多请求都不知道是从哪个客户端发起的
解决
解决的办法就是将ADGuard Home所在的容器暴露到局域网中来,这就需要Docker的Macvlan网络实现方式
对于Docker的3种网络实现Host、Bridge、Macvlan可以参考这里
第一步
开启Open vSwitch,Open vSwitch的作用是开启虚拟网络交换机,通过软件实现交换机的作用
控制面板->网络->网络界面->管理->Open vSwitch设置->启用Open vSwitch
第二步
创建Macvlan模式网络,SSH到群晖上
1 | docker network create -d macvlan --subnet=192.168.50.0/24 --gateway=192.168.50.1 --ip-range=192.168.50.100/31 -o parent=ovs_eth0 macvlan |
192.168.50.0/24 是路由器中DHCP的网段
192.168.50.1 是路由器管理IP
192.168.50.100/31 是Docker可用 IP,此段为100、101可用
ovs_eth0 是群晖的网卡名称,可用ip addr查看
第三步
将ADGuard Home容器分配到Macvlan网络下
Docker->网络->macvlan->管理->新增
当然你也可以选择通过 Docker 命令的模式来创建容器指定网络
1 | docker run -d --restart=always --network macvlan --ip=192.168.50.50 --name nginx nginx |
问题
本来是Bridge下的一个Frp容器提供穿透服务,由于Macvlan下容器无法与宿主机通信,所以ADGuard Home管理平台也就无法穿透出外网
解决方案就是将ADGuard Home容器同时加入Bridge和Macvlan网络下,Bridge映射端口到宿主机进行穿透,而Macvlan下的IP用来提供DNS服务
大功告成
将路由器上的 V2ray 客户端迁移到群晖 Docker 中
前记
之前一直是用华硕AC86U做v2ray做客户端,最近也想把它迁移到群晖中去,然后把路由器刷回官方固件
安装
因为是容器安装这里就一笔带过,官方容器镜像
需要注意的就一点,在高级设置 -> 网络 -> 使用与Docker Host相同的网络这里需要打勾
再一个就是配置文件config.json所在的文件夹必须挂载到/etc/v2ray下
配置
我电脑使用的是V2rayU客户端,直接配置导出即可使用。将inbounds中的listen改为"listen": "0.0.0.0",
最后需要将geoip.dat和geosite.dat规则文件跟配置文件放在一起
使用
socks5:群晖IP:1080
http:群晖IP:1087
Adguard Home 自用规则备份
安装
由于我是在群晖安装的,安装比较简单,直接镜像adguard/adguardhome拉起来即可。
注意数据盘和端口就好
管理端口:3000:3000,另外upd和tcp端口:53:53
数据文件:/opt/adguardhome/work
配置文件:/opt/adguardhome/conf
Rules
1 | filters: |
适合懒人直接拷贝