本文记录个人自用家庭局域网搭建方案。主要包含以下内容:
- 硬件 (软路由、无线路由、笔记本服务器、网线)
- 网关 (OpenWRT、Dnsmasq、AdGuard Home、VPN)
- 媒体服务 (Plex、Emby、客户端)
- 内网服务 (互传、飞机场)
- Docker
〇、硬件
0.1. 软路由
软路由使用的是DIY工控机,同款机可查看三方博客介绍,自用主要配置:
- CPU: Intel® Celeron® CPU N2930 @ 1.83GHz : 4C4T
- RAM: 4GB
- ROM: 32GB
- 入网: 100Mb/s
- 内网: 1000Mb/s
0.2. 无线路由
无线路由使用的为Redmi AX6 3000M,官方标WIFI6 5G双频。
在自用场景中,修改无线路由器使用模式为“中继模式”,仅作为AP使用,不使用无线路由器的DHCP。
0.3. 笔记本服务器
两台退役笔记本长期开机作为服务器使用:
服务器1: Windows Server
- CPU: Intel® Core™ i5-8250U CPU @ 1.60GHz : 4C8T
- RAM: 8 GB
- 系统: Windows 11 Pro
- 网络: 手工分配固定IP,DNS重写域名pc.yananart.cn指向,网线连接
- 本服务器主要做媒体服务器使用,安装Plex、Emby,长期运行下载工具下载媒体资源,外部挂载1TB磁盘做缓存盘(RAID0),挂载8TB磁盘做仓库盘。
服务器2: Linux Server
- CPU: Intel® Core™ i5-8350U CPU @ 1.70GHz : 4C8T
- RAM: 24 GB
- 系统: Deepin Desktop Community 20.9
- 网络: 手工分配固定IP,DNS重写域名deepin.yananart.cn指向,网线连接
- 本服务器主要做本地开发使用,启用了SSH服务。
0.4. 网线
局域网内有线连接全部使用千兆网线。
一、网关
1.1. OpenWRT
软路由的软件方案,使用的是网上整合插件的高大全方案的镜像。
手工分配静态IP为192.168.100.1,不启用IPv6。
OpenWRT作为局域网内的统一网关,同时作为DHCP服务器与DNS服务器,为局域网内其他所有网络接入设备提供网络服务。
本章节的其他服务均是使用整合在OpenWRT内的。
1.2. Dnsmasq
Dnsmasq是OpenWRT自带的子网管理服务。
在自用场景下,直接使用Dnsmasq的DHCP服务即可,可以在其中手工分配IP和租约。
1.3. AdGuard Home
由于Dnsmasq的DNS功能较弱,选用AdGuard Home作为自用DNS服务器。
自定义DNS服务主要是为了两个目标:
- 防止运营商DNS污染;
- 将大多数广告屏蔽
DNS服务器需要监听53端口,但Dnsmasq默认就会监听53端口启动DNS服务,所以需要修改。
我的方案中建议不要修改Dnsmasq配置,让其继续监听53端口作为DNS服务。我们通过防火墙规则重定向外部53端口的流量到AdGuard,规则定义为(5053为AdGuard监听端口):
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5053
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5053
上述理论上在OpenWRT中配置AdGuard时,将重定向配置为“重定向53端口到AdGuardHome”即可,如果OpenWRT配置不生效需要手工配置防火墙。
在AdGuard自定义上游DNS服务,个人推荐阿里或腾讯的DNS服务。
然后关键是配置DNS黑名单,推荐anti-AD v4。
可以见到拦截了很多DNS请求,在访问某些小网站时也可以发现广告大量减少。
1.4. VPN
使用ZeroTier建立私有网络,因为国内复杂的网络环境,我还在公网服务器上搭建了ZeroTier的卫星,防止在UDP打孔失败时,通过公网服务器转发流量。
二、媒体服务
2.1. Plex
Plex管理了所有的电视剧、电影资源。
2.2. Emby
Emby管理了其他视频、照片等资源,包括个人摄影的照片、影片等。
不提供截图展示。
2.3. 客户端
2.3.1. Plex官方客户端
Plex官方客户端在登陆用户账号后,可以自动识别局域网内的Plex服务器。
Plex客户端除iOS端需要购买才能正常使用,其他各端均是免费的,总体推荐。
但据我观察,桌面端的Plex客户端是浏览器套壳,性能较差;XBox端的Plex客户端优化也有一定问题,在播放4K视频时容易闪退,此时可考虑使用其他客户端。
2.3.2. Kodi
Kodi是一款免费的开源播放器,性能也较好。
Kodi原生不支持识别Plex和Emby,但可以通过插件市场安装插件后使用。XBox端、Windows端在微软商城内就能下载,推荐。
Mac端存在UI缩放问题,不推荐。
2.3.3. Infuse
Infuse是苹果平台独占的一款播放器,数据也能通过iCloud同步,而且可以识别多种不同的视频服务器,性能也十分强劲,特别推荐。
但目前免费使用仅能播放1080p以下分辨率的片源,需要订阅会员后才能播放4K等片源。
三、内网服务
3.1. 互传
局域网内跨设备的文件传输较为麻烦,目前使用以下方案:
3.1.1. AirDrop
苹果设备间直接通过AirDrop即可。
3.1.2. LocalSend
LocalSend是一款开源的跨平台文件传输工具,需要每个终端上都安装后,在同一局域网下可以互传文件。
PC上该服务长期开启,移动设备上使用时两端都要打开。
3.1.3. 隔空传送
这是一款安卓系统上模拟AirDrop,将文件发送到Mac上的工具。场景较为固定,但此时就不用Mac端安装什么软件了。
3.2. 飞机场
具体机场不介绍。
3.2.1. Clash
使用Clash作为代理服务端。
由于我不想对局域网全局进行代理,全局代理会导致部分DNS失效,所以启用Clash服务后不设为全局代理。
OpenWRT也提供了Clash服务,但在其上管理界面没有UI终端好用,且会占用软路由一定资源,所以在Windows Server上使用Windows客户端进行管理。
启用Clash服务后,因为其实现了代理功能支持HTTP代理和Socks5代理,基本绝大多数代理场景均能支持,仅需在代理信息中填入Windows Server的主机名和Clash的端口号即可。
3.2.2. 浏览器起飞
浏览器中可以使用SwitchyOmega插件:
3.2.3. 全局代理
Windows、安卓设备上在接入局域网Wi-Fi后,可以在Wi-Fi设置内直接设置代理服务,这样可以在一个终端上全局实现代理。但需要注意,iOS设备由于安全性问题不支持如此操作,需要借助三方支持Socks5代理的软件(国区没有)。
3.3. 共享盘
通过在WindowsServer上共享功能,走SMB协议共享文件。
iOS、Mac、Linux均能正常挂载。
目前使用较少,基本不太使用。文件目录还没修改分配好,仅基本使用。
四、Docker
Docker服务原本使用的OpenWRT上自带的Docker服务,由于本身软路由的机能较弱,且后期搭建了Linux Server,所以Docker目前运行在Linux Server上。
4.0. Docker概览
4.1. 内网测速
镜像名:adolfintel/speedtest
内网测速展示(仅供参考):
mode | device | Ping | Jitter | Download | Upload |
---|---|---|---|---|---|
有线 | Windows Server | 1.00ms | 0.23ms | 656Mbps | 997Mbps |
5G Wi-Fi | MacBook Air M1 | 4.00ms | 3.01ms | 501Mbps | 335Mbps |
5G Wi-Fi | iPhone Xr | 3.00ms | 2.80ms | 668Mbps | 319Mbps |
5G Wi-Fi | iPad 8 | 2.00ms | 1.56ms | 356Mbps | 269Mbps |
5G Wi-Fi | MiPad 5 Pro | 5.00ms | 2.52ms | 868Mbps | 662Mbps |
4.2. 开发中间件
目前主要启动了数据库:
以上 2023-05-21