• 我的首页
  • 星空画廊

My thought on web

Think what ? think

NAS

NAS 文件系统方案的选择

2019年8月28日 by caoli5288 Leave a Comment

前几天入手NAS时,稍微考虑了一下文件系统方案的问题。由于暂时只入手了一块4t盘,所以更多的是考虑今后加盘扩展问题。

目前主流可选的方案有几个。

  • 裸盘,今后mdadm做软raid
  • zfs单盘模式,今后迁移到raidz
  • btrfs

其中扩展性最灵活的应该是btrfs了,三个里面唯一支持自由增减硬盘数量,自由转换raid级别的。最不灵活的是zfs,和mdadm一样不支持减少磁盘,甚至不支持raid5级别自由增加磁盘。

但其实转念一想,自由增减磁盘其实不是个很必要的功能。减少磁盘的情况先不说,这个根本就不合理,增加磁盘的情况呢?比如我现在有一块盘,某天我又增加了一块盘,想做raid1,那只需要把新加的盘强制添加到raid1卷,把数据复制过去,把旧盘添加到raid1卷里就成了。

今后再加块盘做raid5对应的情况类似,把数据复制到新盘,两块旧盘强制添加到raid5卷,然后数据复制回来,新盘加入卷。麻烦归麻烦,但总归是能成的。

比较之下,mdadm只是单纯的软raid,没有快照等等功能。btrfs有快照,但是比起zfs又少了一些诸如读写缓存,raw卷等功能。zfs已经经过了长期生产环境检验,btrfs则不稳定得多。

最后选择了zfs。其实btrfs也是非常好的选择,自由增减磁盘、改变raid级别对相对不稳定的家庭场景来说实在是非常利好的功能。

Posted in: 笔记 Tagged: NAS, ZFS, 文件系统

透明代理踩坑指北

2019年8月22日 by caoli5288 1 Comment

最近入手了一台矿渣NAS,想着不能浪费机器性能就动了在上面部署透明代理的心思。本想以我对网络层的了解配个透明代理是件比较容易的事情,但还是踩中了一些坑,导致花了两个晚上才全搞定,并且没有达到理想中的完美效果,特意记录下来中间遇到几个问题以供指北。

代理软件是V2Ray,CDN加速模式。官方文档比较简单,没有给出完整可用的示例,但是各模块功能解释得还算清晰。TCP部分的处理比较简单,nat链的PREROUTING阶段把非LAN目标的流量全部DIRECT到V2Ray的自由入站端口就行,但是UDP部分遇到了第一个坑点。

按我的经验UDP流量其实是没必要走代理的,只要DNS请求由代理处理好就行了。这个软件恰好就支持DNS代理,软件作者有写博文讲解如何使用,但是没收进官网文档里,于是我就开始按作者博文尝试部署DNS代理。一番功夫后终于明白了为什么不收进官网文档里,因为这个功能根本就不能用。

最后还是老老实实改iptables规则。期间发现这个软件竟然同时支持TCP和UDP的TProxy,这点其实很有利但是文档里没有重点体现,还是在翻isuess的时候注意到有人提到了这点。

最终写成的iptables和路由规则如下,纯TProxy非常的漂亮。


# ROUTE RULES ip route add local default dev lo table 100 ip rule add fwmark 1 lookup 100 # CREATE TABLE iptables -t mangle -N V2RAY # RETURN LOCAL AND LANS iptables -t mangle -A V2RAY -d 0.0.0.0/8 -j RETURN iptables -t mangle -A V2RAY -d 10.0.0.0/8 -j RETURN iptables -t mangle -A V2RAY -d 127.0.0.0/8 -j RETURN iptables -t mangle -A V2RAY -d 169.254.0.0/16 -j RETURN iptables -t mangle -A V2RAY -d 172.16.0.0/12 -j RETURN iptables -t mangle -A V2RAY -d 192.168.0.0/16 -j RETURN iptables -t mangle -A V2RAY -d 224.0.0.0/4 -j RETURN iptables -t mangle -A V2RAY -d 240.0.0.0/4 -j RETURN # FORWARD ALL iptables -t mangle -A V2RAY -p tcp -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01 iptables -t mangle -A V2RAY -p udp -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01 # REDIRECT iptables -t mangle -A PREROUTING -j V2RAY

同时,需要手动打开入站连接的TProxy支持。


{ "protocol": "dokodemo-door", "streamSettings": { "sockopt": { "tproxy": "tproxy" } } }

TCP与UDP连接全部代理成功,但仅仅是做到这一步会发现访问国内网站的速度变慢了,这是因为DNS请求全部走代理的原因,软件内置的路由规则并不对代理流量中的DNS请求自动生效。

翻阅文档后发现,软件其实可以拦截入站流量中的DNS请求由自己发出,这个过程可以针对站点分流,简单设置即可。


"dns": { "servers": [ "1.1.1.1", { "address": "114.114.114.114", "port": 53, "domains": [ "geosite:cn", ] } ] }

这个配置会把所有符合geosite:cn规则的域名分流到114服务器,而其他不在列的则走1.1.1.1服务器,虽不完美但将就着用。

至此基本完美透明代理,只要把手机和笔记本的网关指向这台NAS就可以愉快的上网了,甚至不需要修改DNS服务器,体验还是很良好的。

Posted in: 笔记 Tagged: NAS, 透明代理

标签

c docker dynamic fedora ffmpeg hevc java libmfx linux mingw mount mp4 NAS parallel qsv rime x264 x265 ZFS 事件 互联网 交叉编译 优化 分布式 反射 性能 文件系统 杂谈 游戏 站点 网卡 网络 自由 调优 透明代理

近期文章

  • lxc安装openwrt
  • NAS 文件系统方案的选择
  • 透明代理踩坑指北
  • QSV编码HEVC视频参数测试
  • FFmpeg中的几个新视频降噪滤镜

友情链接

  • 梦之地
  • Vultr

功能

  • 登录
  • 文章RSS
  • 评论RSS
  • WordPress.org

文章归档

Copyright © 2021 My thought on web.

Omega WordPress Theme by ThemeHall