NAS搭建

1. 主机硬件

  • 主板:微星B360M Mortar
  • CPU:i3-8300t
  • 内存:金士顿骇客8G * 2 DDR4
  • SSD:三星980 NVMe PCIe3.0 500G
  • 西数:红盘4T
  • 散热器:利民AXP90 X47
  • 电源:台达VX350
  • 机箱:先马米立方matx

2. ssh登录

ubuntu系统,设置仅支持ssh秘钥登录,保证安全性

3. 开启samba共享文件

vim /etc/samba/smb.conf

4. plex

配置ssl加密,在let's encrypt申请证书(p12格式,默认包含公钥、私钥和证书)。

更换绑定证书后需要浏览器清理一下证书缓存。

外网访问plex统一使用https通道,内网还保留http通道。

5. movie-robot

docker run -itd --name=movie-robot --restart always --network host -p 1329:1329 -v /home/shinerio/movie-robot:/data -v /home/shinerio/Downloads:/Downloads -v /home/shinerio/data/Media/Movie:/Movie -v /home/shinerio/data/Media/TvShow:/TvShow --env 'LICENSE_KEY=存储在1password' yipengfei/movie-robot:latest

6. shadowsocks打通隧道

通过ddns绑定公网ip,端口只映射几个必要的、能够保证安全的端口,其他服务在外网通过ss代理的方式访问。内网主机配置自定义域名解析到192.168.85.0/24内网IP,识别外网环境强制192.168.85.0/24这个网段走家庭网络专用ss代理服务器。

6.1. 端口映射

port service 安全性
50000 tomcat 使用tomcat用户启动,无login权限,无sudo权限;三重密码保护
14443 ss-server 高安全性加密算法,复杂密码
32400 plex plex用户启动,无login权限,无sudo权限;两步认证

6.2. 域名分配

设备使用自定义域名解析到内网ip,配置场景模式外网环境强制走ss代理,14443端口回家,家庭环境直接走内网,不过路由。

ip地址 自定义域名
192.168.85.105 shinerio.nas
192.168.85.2 shinerio.server

6.3. 外网访问使用的所有自定义域名ss-server也必须可以解析

# vim /etc/hosts添加
192.168.85.2 shinerio.server
fe80::211a:a1f9:e853:b548 shinerio.server
192.168.85.105 shinerio.nas
fe80::20c:29ff:feb5:ff66 shinerio.nas

需要同时添加ipv6的解析,否则ss建连会比较慢

Apr  2 19:40:53 shinerio-ubuntu /usr/local/bin/ss-server[27224]: successfully resolved shinerio.nas
Apr  2 19:40:53 shinerio-ubuntu /usr/local/bin/ss-server[27224]: new connection to remote, 1 opened remote connections
Apr  2 19:40:53 shinerio-ubuntu /usr/local/bin/ss-server[27224]: failed to lookup v6 address Timeout while contacting DNS servers

7. 远程控制

7.1. xrdp远程桌面

# 安装
apt install xrdp
# 启动
systemctl start xrdp
# 开机启动
systemctl enable xrdp

解决黑屏

# 编辑
vim /etc/xrdp/startwm.sh
# 添加配置
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

# 优化桌面,不做任何配置,启动之后的桌面是非常别扭的,因为是Gnome的原始桌面,没有左侧的任务栏,窗口也没有最小化按钮,等等一些列问题
vim ~/.xsessionrc

# 添加:
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg

# 重启
systemctl restart xrdp

7.2. 通过Guacamole实现web端控制

# 默认情况下guacamole只监听本地ip
# /etc/guacamole/guacd.conf
[server]
bind_host = 192.168.85.2
bind_port = 4822

配置登录信息

vim /etc/guacamole/user-mapping.xml

为了安全尽量不要配置密码,在登录后手动输入

<user-mapping>
        <authorize password="xxxx" username="shinerio"> <span class="tag">#登录界面账号密码</span>

        <connection name="rdp-shinerio-ubuntu">
                <protocol>rdp</protocol>  <span class="tag">#RDP协议配置</span>
                <param name="hostname">192.168.85.2</param> <span class="tag">#远程主机IP</span>
                <param name="port">3389</param> <span class="tag">#rdp</span> 默认端口
                <param name="username">your-username</param> <span class="tag">#远程主机用户</span>
                <param name="ignore-cert">true</param>
        </connection>
      </authorize>
</user-mapping>

重启
systemctl restart guacd

8. 群晖(虚拟机)

使用arpl安装。设置复杂密码+两步认证+开启自动封锁

8.1. 安装webDav server

8.2. 设置仅支持ssh秘钥登录

# sshd对文件夹权限校验严格,需要将以下目录权限设置正确
chmod 755 /homes/shinerio 
chmod 700 ~/.ssh 
chmod 600 ~/.ssh/authorized_keys

8.3. 安装git备份obsidian笔记

# 增量同步数据
rsync -r shinerio@192.168.85.2:/home/shinerio/data/Documents/obsidian /var/services/homes/shinerio/Document/note

9. 分工原则

ubuntu: 媒体中心,存储电视、电影,通过web控制端兼具远程办公能力
nas: photo备份(google photo同步备份),重要资料备份中心,document目录1自动同步google drive云备份
obsidian:

  1. 全平台所有资料存储本地保存,通过gitee同步。
  2. 苹果是主力写作平台,通过icloud同步,同时google drive同步