用 Nginx 来反代 Home Assistant

在树莓派上折腾了个 Home Assistant 上去,反正用都能用了就顺便配一下反代以便在外面看家里的设备(?为什么会有这样的需求?)

首先编辑 Home Assistant 的 configuration.yaml,我是跑在 Docker 里的,所以看一下配置文件就知道 config 存在哪里了
volumes:
- /home/username/home-assistant/config:/config

http:
  # For extra security set this to only accept connections on localhost if NGINX is on the same machine
  # Uncommenting this will mean that you can only reach Home Assistant using the proxy, not directly via IP from other clients.
  # server_host: 127.0.0.1
  use_x_forwarded_for: true
  # You must set the trusted proxy IP address so that Home Assistant will properly accept connections
  # Set this to your NGINX machine IP, or localhost if hosted on the same machine.
  trusted_proxies: <Your_Nginx_Server_ip>
configuration.yaml

保存后重启一下 docker service
sudo docker-compose restart

接下来创建一个 Nginx 配置文件

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server
        {
          listen 443;
          listen [::]:443;
          server_name hass.yourdomain.moe;

          ssl_certificate /etc/letsencrypt/live/yourdomain-moe.crt;
          ssl_certificate_key /etc/letsencrypt/live/yourdomain-moe.key;
          ssl_session_timeout 1d;
          ssl_session_cache shared:SSL:10m; # about 40000 sessions
          ssl_session_tickets off;

          # intermediate configuration
          ssl_protocols TLSv1.2 TLSv1.3;
          ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
          ssl_prefer_server_ciphers on;
          proxy_buffering off;
          
           location / {
            proxy_pass http://<Your_Home_Assistant_ip>:8123;
            proxy_set_header Host $host;
            proxy_redirect http:// https://;
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
    }

        #access_log  /var/log/nginx/yourdomain.moe.log;

        }
hass.yourdomain.moe

接下来重启一下 Nginx 服务即可
话说回来我到底有什么必要从外面访问 Home Assistant 啊,于是测试没问题以后就把反代关掉了(((

用 samba 来低成本搭建 Time Machine 备份服务器

三个月前搭了个 NetaTalk 作为Time Machine 备份服务使用:用 Netatalk 来低成本搭建 Time Machine 备份服务器,很稳定地跑了几个月。然后千夏前几天手贱把系统从 Debian 11 (bullseye) 升级到了 Debian 12 (bookworm) 后发现 netatalk 不见了(((

搜索了一下发现是因为 netatalk 因为缺乏维护被 Debian 从 bookworm 中移除掉了
虽然有给出从 Debian Unstable 安装 netatalk 的方法,但千夏不是很想折腾非稳定版本的软件包,再加上 Apple 已经放弃了 AFS 的支持向 SMB 靠拢了,于是就想着用 samba 来重新配一下 Time Machine 服务。

首先安装 samba
sudo apt install samba

然后编辑 samba 的配置文件
sudo vim /etc/samba/smb.conf

[global]
# 在 global 中添加以下内容
server min protocol = SMB3
#vfs_catia 提供非法字符转换以正确映射 Apple 路径。 vfs_fruit 是用于实现与 Apple SMB 客户端兼容,vfs_streams_xattr 是允许在底层文件系统中存储 NTFS 备用数据流的主要模块。
vfs objects = catia fruit streams_xattr
fruit:nfs_aces = no
fruit:metadata = netatalk
fruit:locking = netatalk
fruit:encoding = native

[TimeMachine]
comment = Backup for Mac Computers
path = /mnt/backup/TimeMachine
force user = USERNAME
force group = USERGROUP
read only = no
browseable = yes
create mask = 0660
force create mode = 0660
directory mask = 0770
force directory mode = 0770
fruit:time machine = yes
# 设置最大可用空间
fruit:time machine max size = 500G
/etc/samba/smb.conf

保存后设置一下用户密码 smbpasswd -a USERNAME ,然后重启一下 samba 服务,接着在 MacBook 上打开访达 – 连接服务器输入 smb://your-ip-address/TimeMachine,认证后应该就能挂载成功了。打开 macOS 设置里的时光机页面,添加这个磁盘后应该就可以正常使用啦。

参考资料

macOSのタイムマシンをSambaサーバに保存する
Samba and macOS Time Machine
vfs_fruit — Enhanced OS X and Netatalk interoperability

用 Netatalk 来低成本搭建 Time Machine 备份服务器

小千夏今年咬咬牙入手了自己的第一台 MacBook Air,和以前拿学校的电脑用不一样,这次终于拥有属于自己的设备了。既然是自己的设备了,自然会作为主力机来用,各种数据和配置的安全也就显得尤为重要了。
那么如何优雅的对 MacBook 的数据进行备份呢?好在 Apple 已经为我们准备了 Time Machine 这个工具——使用Time Machine,不但可以回到过去某个时刻,获取某个文件在当时的版本;也可以在系统异常崩溃后直接全盘恢复到过去某个时刻的状态;亦或者你的电脑在星巴克被人顺走了,你也可以立即购买一台全新的 MacBook,然后通过 Time Machine 来恢复至上一台 MacBook 的数据,从而快速复原生产环境。

继续阅读“用 Netatalk 来低成本搭建 Time Machine 备份服务器”

chmod 仅为文件夹添加执行(Execute)权限

今天为了方便自己写 /var/www/ 目录下的文件,于是把自己添加进了 www-data 用户组,并理所当然的执行了 sudo chmod -R 770 /var/www/ (-rw-rw-r–),结果 sl -al 一下返回 ls: cannot access '/var/www/': Permission denied

  ~ sudo usermod -aG www-data uuz
[sudo] password for uuz: 
  ~ ls -al /var/www/uuz/
total 248
drwxr-xr-x  6 www-data www-data  4096 Aug 31 10:51 .
drwxr-xr-x  7 root     root      4096 Sep 20  2020 ..
drwxr-xr-x 13 www-data www-data  4096 Aug 10  2020 uuz-h5theme
-rw-r--r--  1 www-data www-data   405 Feb  6  2020 index.php
  ~ sudo chmod -R 660 /var/www/
  ~ ls -al /var/www/uuz/  
ls: cannot access '/var/www/uuz/': Permission denied
  ~ sudo ls -al /var/www/uuz/
total 248
drw-rw----  6 www-data www-data  4096 Aug 31 10:51 .
drw-rw----  7 root     root      4096 Sep 20  2020 ..
drw-rw---- 13 www-data www-data  4096 Aug 10  2020 uuz-h5theme
-rw-rw----  1 www-data www-data   405 Feb  6  2020 index.php

思考了一下想起来 ls 需要给执行权限,就又执行了 sudo chmod -R 665 /var/www/。这下虽然 ls 可以用了,但不仅是文件夹,所有文件也都变成 everyone 可执行了,有一定的风险。

  ~ sudo chmod -R 665 /var/www/
  ~ ls -al /var/www/uuz/  
total 248
drw-rw-r-x  6 www-data www-data  4096 Aug 31 10:51 .
drw-rw-r-x  7 root     root      4096 Sep 20  2020 ..
drw-rw-r-x 13 www-data www-data  4096 Aug 10  2020 uuz-h5theme
-rw-rw-r-x  1 www-data www-data   405 Feb  6  2020 index.php

要怎么做才能在保持文件为 -rw-rw-r– 的情况下让文件夹为 drwxrwxr-x 呢?

继续阅读“chmod 仅为文件夹添加执行(Execute)权限”

V2Ray 配置 WebSocket + TLS + Web 教程

暑假回中国了,虽然手机卡有漫游可以回去,但毕竟有流量限制,于是自然而然的需要一个梯子来方便回去。以前有在用 Trojan,不过好像最近 V2Ray 比较流行所以也来配一个玩玩好了。

在阅读本文之前,建议先阅读官方白话文指南以了解 V2Ray 的基本配置方法(或许阅读后你会发现没有必要看本文了(笑))。

那么我们就开始吧w

继续阅读“V2Ray 配置 WebSocket + TLS + Web 教程”

在终端中使用代理服务器连接 SSH !

学校的网络似乎屏蔽了一些端口,导致连不到家里的服务器,于是给 ClashX 里添加了一个跑在 443 端口的 Trojan 以便作为跳板连回家里。

需求如下:local:8080 - proxy:443 - server:22

最开始想直接用 export all_proxy=socks5://127.0.0.1:8080 的方法解决,但发现 SSH 并不走 all proxy,于是请教了大姐姐后得到了以下的方法

继续阅读“在终端中使用代理服务器连接 SSH !”

关于 MAP-E 的配置小记

(19年4月)搬到新家以后办了 GMOとくとくBB 的网络,然后顺便开通了 IPv6プラス 业务,(由于没有怎么接触过 IPv6 所以刷了 OpenWrt 的 Mir3G 并不能直接用,只好用运营商给的辣鸡 NEC 的路由器。但是呢这个路由器真的真的非常难用…只能调一些没什么卵用的设置而且都必须重启才能生效…于是(到了第二年3月)就想着能不能让入土的 Mir3G 重新发挥作用呢。这篇文章简易记录了一下折腾 MAP-E 的过程,希望对后来者能起到帮助。

继续阅读“关于 MAP-E 的配置小记”