osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

UnRAID_6.8.2_配置_设置

转载注明来源: 本文链接 来自osnosn的博客,写于 2020-10-05, 修改 2022-04.

参考:

UnRAID download
Getting_Started
Official Documentation
unraid forums
unRaid系列二:认识界面并配置教程
QEMU(4) q35,SeaBIOS(2)-硬件架构
NAS最强攻略:使用UNRAID系统,搭建ALL IN ONE全过程

下载,安装,参考官方文档。

  • 我安装/配置,用的是UnRAID-6.8.2

  • u盘必须是FAT或FAT32格式,因为FAT,FAT32才支持启动。usb2.0/3.0都行。只是usb3.0的读写快些。据说用SLC芯片的u盘寿命长。

  • u盘必须有"序列号",最后16位不能是全零,否则unraid不认/不能注册,unraid的GUID是由"VID-PID-设备序列号的后16位"组成。
    chipGenius(芯片精灵)工具可以看到,有无: VID,PID,序列号。
    一般有品牌的u盘都OK,知名主控芯片的u盘也OK。实在没有序列号,用量产工具自动生成一个序列号刷入。

  • 可以用官方推荐的工具 USB_Creator.exe 写U盘。写之前无需对U盘改名。(它不认无序列号的u盘。导致无法选择U盘,无法继续)

  • 手工写U盘,参看官方文档, 旧文档。也能支持UEFI启动。

    • 确定u盘是fat32,否则格式化为fat32.
    • 把unraid的文件解压到u盘根目录。把卷标名改为"UNRAID",全部大写。
    • 如果需要UEFI启动,把EFI-目录改名为EFI
    • 执行 make_bootable 脚本。
      • windows: 打开dos窗口,执行u盘根目录的 make_bootable.bat
      • Linux: 把make_bootable_linux copy出来,unmount U盘,执行脚本。
    • 完成。
  • 记得,做了任何配置的更改。都要备份u盘的config/目录。因为unraid的u盘很容易坏。
    备份的办法,很简单,把config目录整个打包成压缩文件(zip,tar,7z都行),copy出来另存即可。

  • U盘(8GB)掉盘(2024-03)记录.
    登录unraid,发现 /boot/config 目录的挂载丢失。再检查,发现U盘分区表丢失/损坏。只要不重启unraid,就能继续运行。
    拔出,在win中,磁盘精灵DiskGenius中扫描坏道,耗时9分钟,全部块"良好"。
    插回unraid,出现问题。换个口就OK。

    • 最终发现,同组的另一个U口上插的小风扇,可能干扰到插U盘的口。插入U盘,总是找不到u盘设备,直到重新插拔了小风扇,才识别到u盘。最终决定换个U口插入。
      小风扇插着,badblocks -sv 进度到68%,内核对u盘reset,然后一直是I/O错误。
      拔掉小风扇,badblocks -sv 没有错误。再插入小风扇,badblocks 又没错误了。奇怪。

    在Linux (unraid)中,badblocks -sv -o bad.txt /dev/sdd,耗时6分40秒,没发现坏块。
    用读写模式检查 badblocks -snv -o bad.txt /dev/sdd,耗时68分钟,也没发现坏块。
    使用 parted 重新分区。用GPT,只分一个区。2048扇区(sector)对齐。格式化为fat32。

    #在我的机器上 sdd 是U盘
    parted /dev/sdd
       mklable gpt
       mkpart UNRAID fat32 2048s 100%
       disk_toggle
    mkfs.vfat -n UNRAID /dev/sdd1
    

    mount u盘。copy 文件到 U盘。umount后,执行make_bootable_linux 有一句报错。
    syslinux/make_bootable_linux.sh 中 41行 syslinux/syslinux_linux 执行失败。
    拿去启动系统。失败,在bootloader阶段就失败了。只支持MBR。
    修改,插到windows,使用DiskGenuis,把GPT转换为MBR,然后在cmd中执行make_bootable.bat.
    拿去启动系统,成功修复。

启动后,初始配置。

装APP商店

显示主板温度

  • ssh 登录 unraid,打命令 sensors,可以显示cpu和主板温度。但 web 界面中没有。
  • 参考: unRaid系列八:显示主板、CPU传感器温度
    先在NerdTools装perl,再装显示温度的app Dynamix System Temperature
    https://raw.github.com/bergware/dynamix/master/unRAIDv6/dynamix.system.temp.plg

挂载移动硬盘

  • 有个app,叫 "unassigned.devices" , 地址是:
    https://github.com/dlandon/unassigned.devices/raw/master/unassigned.devices.plg,
    https://github.com/dlandon/unassigned.devices/raw/master/unassigned.devices-plus.plg
    plus 支持 exFat,HFS+

给虚拟机挂载usb设备

  • 有个插件,叫"Libvirt Hotplug USB" , 地址是:
    https://github.com/dlandon/libvirt.hotplug.usb/raw/master/libvirt.hotplug.usb.plg

网卡直通

  • 看VedioTalk的视频,看"下集UNRAID NAS系统配置双软路由,完美直通网卡,CPU"
    注意, 他视频中的四个网卡是分别在4个group中,所以只要更改一下GUI的启动参数,然后接上显示器,去GUI中创建一个虚拟机的样本(最小内存,硬盘选none,勾上3个直通网卡)保存即可。以后创建虚拟机,就去抄这个样本中的直通代码。如果碰到XML error: Attempted double use of PCI Address '0x05'这样的错误,就把05改07,08,09,0A,...改到不出错即可。
    下次再建新虚拟机,抄完代码又不出错了。奇怪。
  • 还有个简便的方法,就是装VFIO-PCI.CFG插件,看 unraid如何实现多口网卡直通。勾选之后,创建虚拟机时,直接有直通网卡选择。
    https://raw.githubusercontent.com/Skitals/unraid-vfio-pci/master/plugins/vfio.pci.plg
  • 如果你的多个网口,是在同一个group中。我不知道怎么搞,我的机器没这问题。
  • 6.9.1 开始,系统自带这个功能,不需要安装插件了。请看【UnRAID_6.9.1_配置_设置

命令行工具

  • 用 NerdPack 装,这些命令行工具是装在 U盘中的。跟着unraid系统的。
  • 比如: iperf3, p7zip, perl, python3, rar, tcpdump, tmux, unrar, vim, ... (看自己需要吧)
  • 6.12 后,NerdPack 改名为 NerdTools。

unraid 的 ipv6

  • unraid 可以获取到 ipv6 ,通过 dhcpv6/slaac 得到两个ip。
    在 settings -> network settings 中有个 IPv6 privacy extensions 选项。
  • 如果要改为 eui64。需改 /etc/dhcpcd.conf 文件,并重启 dhcpcd 进程。比较麻烦。
    • config/go 脚本执行时机晚于 dhcpcd的执行。
    • 重启 dhcpcd,
      • 办法1,杀了它,再按原参数重新运行。
      • 办法2,执行 /etc/rc.d/rc.inet1 br0_restart。这个办法只重启了unraid的br0。vm的直通网口不影响,但连接的br0会丢失。除非再重启vm。
    • (未测试)似乎不能在config/go中直接修改sysctl -w net.ipv6.conf.br0.use_tempaddr=0达到设置eui64的目的。
  • 在openwrt中静态分配ipv6地址给 unraid,从而固定它的ipv6后缀。
  • 可以试试,修改 unraid 的 /boot/config/machine-id,然后重启。可能会更改 unraid 的 DUID。(未测试)
  • openwrt动态分给unraid的ipv6后缀,其实是固定的,与unraid的DUID相关。
    • unraid想换个ipv6后缀,可以修改unraid自己的DUID,通过创建文件解决/var/lib/dhcpcd/duid,文件内容就一行,自定义的duid 01:02:03:0a:0b:0c:0d:0e:0f:11:12:13 ,然后重启dhcpcd
  • 这里给出一个例子(经测试,OK),供大家参考。在config/go 文件中添加一行 /bin/sh /boot/cnofig/modify_dhcpcd.sh
    #!/bin/bash
    # filename: config/modify_dhcpcd.sh
    # 用途: unraid-6.8.2 中 modify dhcpcd.conf , duid
    #   这个文件config/duid自己创建。(自定义DUID,格式)->"00:01:02:03:0d:0e:0f:cc"
    /bin/cp /boot/config/duid /var/lib/dhcpcd/duid
    /bin/sed -i 's/^#slaac hwaddr/slaac hwaddr/g;s/^slaac private/#slaac private/g' /etc/dhcpcd.conf
    if [ -f /run/dhcpcd-br0-6.pid ]; then
       kill $(cat /run/dhcpcd-br0-6.pid )
       # 下面这行,自己在unraid中用ps命令查看,记录下参数。然后修改为你自己机器中的参数。
       dhcpcd -b -q -t 10 -h myName_Tower -C resolv.conf -6 br0
    fi
    
  • 有了eui64的ipv6地址,就可以【设置openwrt路由器的防火墙_允许从外网访问_ipv6服务】。要考虑开放的服务的安全性。
  • ddns 参考【Linux中获取本机的最新IPv6地址_更新ddns的脚本_获取openwrt的IP地址】。
  • 6.9.1 有些不同,请看【UnRAID_6.9.1_配置_设置

docker

  • 装个 NextCloud, 有官方版,和LinuxServer版。不知道区别,应该差不多。
    • LinuxServer版, images 408MB, 用alpinelinux, nginx-1.18, php-fpm-7.3, 配好了80,443,(有ip, ss, less, vim)
    • 官方版, images 809MB, 用debian, apache-2.4, php-7.4, 只配了80,(居然gcc都有,但ip, ss, less, vim没有)
  • 还要装个 linuxserver 的 mariadb 配合。image 351MB.
  • docker 下载慢,参考 Unraid修改docker镜像地址&默认启动, 解决手工设置Docker镜像源 /etc/docker/daemon.json 后重启后丢失失效的问题
  • docker 的 IPv6。
    • Network Type:Custom: br0, 手工指定一个 IPv4的地址。
    • 高级视图编辑中,Extra Parameters:加入参数
      --sysctl net.ipv6.conf.all.disable_ipv6=0 --sysctl net.ipv6.conf.eth0.use_tempaddr=2
    • 重启这个容器,它就会自动获取公网的IPv6,包括eui64地址。
    • unRaid-6.8.2中测试,成功获取ipv6公网地址。

设置开机启动的东西

  • Array(阵列自动启动)。 在SETTINGS->Disk Settings 中,第一项auto start.
  • VM 设置,哪个虚拟机自动启动。
  • docker 设置,哪个docker自动启动。

unraid 的 shell 用着不习惯

  • bash 中, 少了几个常用的alias。直接修改 .bash_profile , 重启无效。
    • 网上搜了一下,说是要解开 bzroot,修改之后再打包回去。太麻烦。
    • unraid 启动之后,最后会执行 u盘中 config/go 脚本。执行时的路径是 /boot/config/go 。
      所以可以另写个脚本,放在config目录中,然后在 go 脚本中加一行执行自己的脚本,做一些简单的修改。
      比如: 添加几行alias到.bash_profile。创建 .ssh/authorized_keys,添加一个key,方便登录。
      在config/go 文件中添加一行 /bin/sh /boot/cnofig/modify_roothome.sh
      #!/bin/bash
      # filename: config/modify_roothome.sh
      cat >>/root/.bash_profile << __EOF__
      alias l="ls -lF"
      alias mv="mv -i"
      alias cp="cp -i"
      alias rm="rm -i"
      export TIME_STYLE=long-iso
      __EOF__
      
      mkdir -m 0700 /root/.ssh
      echo "ssh-ed25519 AAAAC6k------a65OhPlz test@localhost" >> /root/.ssh/authorized_keys
      chmod 600 /root/.ssh/authorized_keys
      
  • ls带颜色输出时,目录是蓝色,阅读吃力,改一下。
    dircolors -p > ~/.dir_colors 修改这个文件,把DIR 01;34改为DIR 00;44,蓝底白字。
  • 6.9.1 有些不同,请看【UnRAID_6.9.1_配置_设置】。6.10后,/root/.ssh/ 的修改会保留,无需在go脚本中设置。

执行定时脚本(crontab)

unraid 本身是有 crond 服务进程在执行。

  • 可是,登录unraid命令行,在 root 用户下创建的 crontab,重启后都会丢失。
  • 用 config/go 脚本在每次启动时创建 root 的 crontab,太过于麻烦。
  • 安装 CA User Scripts 插件,在app商店中搜索安装。这个插件就是用来创建 root 的 crontab 。
    • 使用方法,不算麻烦。在这里创建的定时任务,重启之后还是有效。
  • 如果需要执行的定时任务,与 unraid 本身无关。
    • 可以装个docker,在app商店中搜索DebianBuster。在里面启动cron服务。缺点是,这个镜像带xfce4桌面,有点大(1.25GB)。
    • 可以装个docker,在app商店中搜索Ubuntu-Playground。这个是纯字符界面的,只有262MB。不过,cron没有,要自己装。
    • 或者创建个VM,装个Linux,那就随便搞了。

WebUI too many login attempts

安装官方版 OpenWRT

  • 下载镜像, OpenWrt Downloads -> Stable Release -> x86 -> 64 -> combined-ext4.img , 参考【OpenWrt-官网知多少】。这个是稳定版。
  • 把 openwrt 的 img 镜像 copy 到 /mnt/user/domains/openwrt-xxx/, 目录名自己定义。多建一层目录是方便管理。
    把 目录和img文件的 owner 设为 nobody.users, 目录的权限为 777,文件的权限是666。
    chown nobody.users openwrt-xxx.img, chmod 666 openwrt-xxx.img
  • 创建虚拟机VM。修改"名称"和"描述"。
  • CPU按需给,1个或2个,内存256MB就够了。如果你的实际内存很多,那就分512吧。
    • (仅拨号上网占不到60M,再跑4个大进程才用到168MB内存,比如radiusd)
  • Machine: 选 Q35最新版,或者 i440fx最新版,看不出区别。都行。
  • BIOS:SeaBIOS 传统启动。OVMF是UEFI,openwrt的efi版支持。建议用 efi的版本启动。
  • Primary vDisk Location: 选 manual,指定openwrt的img文件。 vDisk Bus: 选VirtIO,SATA,或IDE,都行。选SCSI不能启动。
    • openwrt-19.07.4-x86-64-combined-ext4.img 这个镜像vm中可以直接用来启动。
      扩容后,root分区252MB,剩余空间220多MB,装东西的话,基本够用。
      官方原版,root分区一般是104MB,剩余60-90MB。
      • 如果要扩容, 用qemu-img resize combined-ext4.img 200m扩容到200MB,
        或者直接在img后添加全零字节dd if=/dev/zero bs=1M count=100 >> combined-ext4.img
        losetup -f combined-ext4.img挂载到loop4, 用cfdiskfdisk调整分区。efi版用partedfdisk
        partx /dev/loop4加载分区表到内核。用resize2fs /dev/loop0p2扩展第二分区(rootfs)。可以fsck一下。
        最后partx -d /dev/loop4卸载内核分区记录。losetup -d /dev/loop4卸载loop设备。
      • 详细操作笔记见【openwrt_21.02_img_空间扩容_分区扩容_改分区表大小】。
    • openwrt-19.07.4-x86-64-combined-squashfs.img 这个镜像vm中也可以启动。
      我知道可以用它来刷路由器。vm中,好像要先创建个磁盘,然后刷进去。下面尝试直接用img启动,并扩容。
      • 直接用这个img启动,第一次启动,网络都无法启动。打命令firstboot;reboot之后。
        overlay只有66kb的空间,连配置都保存不了,重启就恢复出厂。
        关闭vm,在unraid中用命令,对刚才的img扩容qemu-img resize combined-squashfs.img +200m增加200MB,
        再次启动,overlay还是只有66kb,firstboot再重启,还是剩66k。
      • 再测试,重新copy一份原始的combined-squashfs.img,先用命令扩容,再启动。
        overlay居然扩容成功了(op19.07),有190mb空间。(最多可以扩容+256MB)。MBR分区的,扩容比较简单。
      • 对 op21.02 仅使用 qemu-img 扩容 squashfs-combined-efi.img 失败。大概是因为gpt分区,需要修改分区表才行。
        成功的操作笔记见【openwrt_21.02_img_空间扩容_分区扩容_改分区表大小】。
      • 其他参考: 【OpenWrt全硬盘安装方法】【OpenWrt x86 磁盘扩容
  • 其他默认吧。
  • 然后,网卡直通,抄一下之前的虚拟机样本中的直通代码。如装了VFIO-PCI.CFG插件, 直接勾上需要直通的网卡即可, 不用抄代码了。
  • 就可以启动VM看看了。
  • 通过虚拟终端,登录 openwrt,编辑 /etc/config/network 修改 lan 口 IP,重启网络。就可以通过 web 访问 openwrt。
    重启网络, 用任意一个指令都行: /etc/init.d/network reload,/etc/init.d/network restart,reboot
    或用 uci命令修改IP,见【制作免配置固件】,【官方文档:The UCI system】。
    uci set network.lan.ipaddr='192.168.xx.2'
    uci commit network
    /etc/init.d/network reload
    
  • 修改/etc/opkg/distfeeds.conf 改为清华大学源 , 把 downloads.openwrt.org 改为 mirrors.tuna.tsinghua.edu.cn/openwrt 即可。
    • 安装wget的https支持opkg install wget ca-bundle , 然后把distfeeds.conf中的http:全部改为https:
      对于op-21, op-22 完整版wget用 opkg install wget-ssl。并且wget-ssl支持,有认证的代理。
  • 为了安全,不建议对外网开放ssh登录,不开放外网的web管理页。(更改端口,再把root的用户名改了,再设置一个超长密码,才考虑开放外网访问)
  • 如果使用 https 访问 web luci,对默认证书的信息不满意。可以修改信息,重新生成证书
    见【修改openwrt uhttpd 使用的 ssl 证书】。
  • Network -> Interfaces -> LAN -> Edit -> DHCP Server -> General Setup 中, Lease time 设置为 1h。(租期: 1小时)。
    当重拨后,获取到新的 ipv6_prefix,客户机,可以更快的更新到新的 ipv6(有状态),
  • Network -> Firewall -> General Settings 中,有三个 reject 改为 drop。
    参考【设置openwrt路由器的防火墙_允许从外网访问_ipv6服务】关于"默认规则drop/reject"部分。
  • 定时检查网络,不通就重拨。参考【OpenWRT19.07_命令行_重拨wan_重启路由
  • 改图标,参考 教你UNRAID虚拟机自定义Docker图标icon方法
  • 官方版openwrt装 双拨,ddns,usb挂载,远程下载,参考【基于官方原版OpenWrt的双线接入(移动、长城)及IPv6 DDNS详细设置方法
  • golang 交叉编译的程序,在op上运行,time.Now()输出的时间,时区不对。是因为op中缺失/etc/localtime文件
    从Linux(unraid)系统中copy一个过去就好了。
  • 默认的 ls是由 busybox提供,没找到办法修改颜色,只能关掉颜色显示。
     # 对于 op21,op22
    cat << EOF >> /root/.shinit
    alias ls='ls -F --color=never'
    alias ll='ls -alF --color=never'
    EOF
     # 对于 op18,再多执行以下两行
    mkdir  /etc/profile.d/
    mv  /root/.shinit  /etc/profile.d/lscolor.sh
    
    或者安装 coreutils-ls coreutils-dircolors 就可以改颜色了。
  • 接受 虚拟机系统的virsh shutdown xxxx指令
    安装opkg install qemu-ga, op21有4个依赖包,约占用3.4-4MB 空间。重启opwnrt 生效。
    否则,重启unraid要等5分钟每个虚机,unraid的超时定义在/usr/libexec/libvirt-guests.sh
    qemu-ga 的配置文件/etc/qemu/qemu-ga.conf,op中没这个文件,需要时,自己创建。
    见【虚拟机op接受kvm关机指令】。
  • op中启动tmux后,不支持utf8中文。中文显示为_下划线。
    使用tmux -u启动,强制支持utf8. 见man tmux关于 -u 参数。
    或者,设置任意一个环境变量LC_ALL=,LC_CTYPE=,LANG=,包含'utf8','UTF8'或'UTF-8'字样。
    export LANG=zh_CN.UTF-8,写在/root/.shinit中。
  • debian12中启动tmux-3.3a,连接到op23.05后,vim中鼠标右键粘贴有问题。
    是因为tmux-3.3a 设置的环境变量为TERM=tmux-256color,而tmux-3.1c 是TERM=screen
    而op23中/usr/share/vim/vimrc中有一行set nocompatible导致vim-9.0-1 不兼容tmux-256color
    debian12中的 vim-9.0.1499 就没问题。
    执行vim --clean或者vim -u /dev/null,op23中的vim表现就正常了。
    建议用这两种方式,环境变量改为TERM=screen-256color,或者创建 /root/.vimrc 写一行set compatible,op23中执行vim 就正常了。
  • 在tmux中,连接op,使用vim,配色不好(不清晰),在/root/.vimrc中加一行colorscheme desert
    这几个配色方案算是比较清晰,desert, darkblue, evening, industry, murphy, quiet, ron, (202410测)。
    只装 vim-full, 不装vim-runtime 就没有配色。
  • 按需安装工具, curl,diffutils,dropbearconvert,file,ncat,openssh-client,rsync,telnet-bsd,tmux,wget-ssl,less,htop,proxychains-ng,qemu-ga, (202410)
  • (备忘) 如果op安装在硬路由,插u盘。不改动opkg默认设置,只是把某几个比较大的软件包,指定安装到U盘上。【opkg安装软件到u盘】。

安装wireguard支持

  • 官方版,op-21.02.
  • 安装 opkg install luci-app-wireguard即可,相关依赖都会装齐。
    op23.05 装 opkg install luci-ptoto-wireguard
  • 刷新webUI,就能看到菜单多出一项 "WireGuard Status"。
  • 新建 interface, 协议中没有变化。一定要重启整个openwrt,才会多出 wireguard协议。
  • WireGuard_2和3台OpenWRT测试_LAN-LAN连接测试_Debian11_CentOS8
    节点使用ddns,需要定时执行脚本刷新wg配置(帖子中有)。否则ddns的ip变化,导致连接丢失。

op各版本区别

  • OpenWrt Kernel versions】。
  • op-19.07,kernel-4.14,使用 fw3。
  • op-21.02,kernel-5.4,使用 fw3。支持 WPA3。
  • op-22.03,kernel-5.10,使用 fw4。
  • op-23.05,kernel-5.15,使用 fw4。
    与 op-22 区别不大,vlan 的设置在 interfaces 中。

Lean 的 Openwrt

  • 下载 Lean Openwrt
  • 安装方法一样。
  • 这个版的,用的最新测试的snapshot。比上面那个官方稳定版openwrt新,特性会很新,但可能有bug。
  • 如果开远程web管理,可以在 "系统"->"Web管理"->"HTTP监听",添加一个"[::]:1234", 并去掉"仅内网访问"。
    然后在防火墙->"通信规则"中开放本机端口,选仅ipv6。
  • TTYD 终端的默认端口是 TCP/7681。如果需要能从外网访问,需要开放这个端口。
    如果你的ttyd不需要登陆,千万别映射出去
    • OpenWRT 的 TTYD 似乎只支持 ipv4。 在纯 ipv6 环境下不能用。
    • 只能通过添加一个 ssh 端口解决终端登录问题。"系统"->"管理权"->"添加",接口要选"未指定",勾上"网关端口"(允许远程访问)。
      然后在防火墙->"通信规则"中开放本机端口,选仅ipv6。
  • 安装可道云,老是显示php未运行。问题出在 /etc/init.d/kodexplorer 的启动脚本。需要修改它。(2022-04)
    • 它会重置 php.ini, extension_dir="/usr/lib/php", 导致php8的扩展模块找不到。
    • 启动 php-fpm, 应该是运行 /usr/bin/php8-fpm, 停止 php-fpm, 应该是 killall -9 php8-fpm,
    • 这样,nginx, php-fpm 正常之后。就可以用浏览器访问 可道云 的端口,按提示修改错误,完成安装。
  • ddns 总是不能正确获取到合法的ipv6地址,可以参考【Linux中获取本机的最新IPv6地址_更新ddns的脚本_获取openwrt的IP地址】最后一个脚本解决。

装群晖 VM

  • unRAID 虚拟群晖DSM系统|unRaid下黑群晖|VMware虚拟机安装黑群晖DSM6.2|D
  • Q35-4.2, OVMF,1GB内存,启动镜像用USB,第一硬盘用SATA,网卡改e1000。说找不到硬盘,无法安装。
  • 再换到 Q35-3.0,找到硬盘了。
  • 再换回 Q35-4.2, OVMF,1GB内存,启动镜像用USB,第一硬盘用SATA,网卡改e1000。又找到硬盘了,奇怪。
  • 启动选择第三项VMWare/ESXI with Jun's Mod v1.02 alpha,因为是在虚拟机中。
  • 然后,提供安装文件.pat,2-3分钟就自动重启了。再然后就进入漫长的初始化(超过10分钟)。
    • 装完,群晖在硬盘上开了两个分区。2.4GB分区中写入了 1.5G 的系统文件,2GB的分区不知道写了什么。(6.1.1版)。
      这个硬盘的剩余空间可以作为数据盘使用(会显示为"未使用磁盘")。
  • 群晖在开/关机时cpu占用挺高,平时占用极低。如果VM支持指定CPU,可以指定非cpu0
  • 群晖支持IPv6,可以获取到ipv6地址。其中 slaac 地址是 eui64。且在"控制面板"->"网络"中没有 private选项。
    如果要改,应该是修改 /etc/sysconfig/network-scripts/ifcfg-eth0 (未测试)。
  • 群晖有时重启后出问题,参看 黑群晖故障(抱歉,您所指定的页面不存在)问题
    两个lib文件,在你安装群晖系统用的.pat文件中找。用7zip可以打开。
    libsynopkg.so.1,libsynoshare.so.6 这两个文件建议放在群晖的 /root 目录中,下次还会再用到的。
  • 装好,放了几天。就故障,一会是"抱歉,您所指定的页面不存在",一会又看不到硬盘了。
    无奈再次重装。结果,无论怎么组合,都找不到硬盘。只好放弃玩群晖了。没意思。

装 Debian 的 VM

  • 下载 amd64-netinst.iso (约350MB), 可以去 华为镜像阿里镜像163镜像清华镜像 找。
    把 iso 文件 copy 到 /mnt/user/isos 目录中。我用的是 debian-10.6.0-amd64-netinst.iso
  • 给 Debian10, 1-2个CPU,最小内存1G,最大2GB内存,硬盘选20GB(qcow2,VirtIO), Q35-4.2 即可。
  • Debian10:1GB内存够用,2GB内存比较宽松。
  • 20GB硬盘,分500MB做boot(一般会用到200MB),swap给1G就好。剩下全给root分区。
  • 启动光盘选择 netinst.iso
  • debian 安装过程比较人性化,硬盘选择自动分区之后,会显示分区结构,允许你再修改。确认后才写盘安装。
  • 安装时,直接提供,国内镜像源的列表,让你选择。
  • 装完系统,再装上nginx,mysql,php,gcc,golang 差不多占3.3GB。只要不装GUI的桌面,怎么都够用了。
    • nginx-full,mariadb-client,maridb-server,php-fpm,php-cli,gcc,golang
  • NetworkManager】,【解决network-manager中wired为unmanaged的问题】,
    看【这个帖子中,关于"Debian10 让 NetworkManager 管理有线网卡"
    • apt install network-manager
    • 让它管理网卡, Set managed=true in /etc/NetworkManager/NetworkManager.conf ,
    • 启用network-manager, 需要注释掉 /etc/network/interfaces 中 allow-hotplug eth0iface eth0 inet dhcp这两行。否则会分配两个IPv4。(如果是静态指定IP,则不影响)
    • 然后/sbin/service NetworkManager restartsystemctl restart NetworkManagerservice network-manager restart.
    • 打开 nmtui 能见到一个连接,(或自己添加一个连接),这个连接的设备名用 ip addr 看到的网卡名称。
      编辑这个连接,设置好IP,网关,DNS, ... 。
      • 勾上"Automatically connect",系统重启后才能自动连接此网卡。
    • Linux_ipv6_无状态_设置为_eui64_有状态ipv6更改后缀
  • 装 postfix 仅作为本地邮件系统,简单而小巧. 装 mutt 查看邮件。
  • 装 chrony 对时服务,用 cn.pool.ntp.org。把服务器的时间搞准。
    • 有 qemu-guest-agent, 可以从kvm主机设置vm客户机的时间。
      但vm没装chrony时,vm的时间还是不准。
  • 在KVM主机和虚拟机之间共享目录(9p_fs), 速度较慢,不太好用。请看【UnRAID_6.9.1_配置_设置
  • 装 nginx-full php-cli php-fpm php-curl php-sqlite3 php-xml (默认是安装php7.3)
  • 有了 nginx,可以配置一下webdav。见:【搭建私人的云笔记_使用webdav服务】。
    Linux中获取本机的最新IPv6地址_更新ddns的脚本_获取openwrt的IP地址
    设置openwrt路由器的防火墙_允许从外网访问_ipv6服务
  • 如果nginx是开放在非标准端口,【nginx_非标准端口_同端口_http_自动跳转_https
  • https 的证书,手工申请,或者用acme.sh做证书自动化,【去freessl.org申请免费ssl服务器证书】。
  • apt install python3 python3-pip; pip3 install virtualenv; pip3虚拟环境
    • 还有个选择 apt install python3-venv , 创建虚拟环境的命令是 pyvenvpython3 -m venv
  • 对外开放ssh端口后,总是有很多试密码的
    • 要修改/etc/ssh/sshd_config中的几项。改端口Port 1234
    • Subsystem sftp /usr/lib/openssh/sftp-server -l INFO 记录sftp的活动。
    • 禁止root用密码登录(保留证书登录)PermitRootLogin without-password。重启sshd。
      可以保留本地IP登录,允许使用密码。见【配置sshd_除了特定ip外_仅密钥登录
    • 普通用户,用难猜的名字,难猜的密码。
    • 还要装fail2ban, debian10的fail2ban 是支持ipv6的。看【Debian10_Centos8_fail2ban_sshd算法_限制连接数】。如果禁止所有用户密码登录,fail2ban就非必须。不过扫描很多,log会很大,装上fail2ban会好点。
  • vimrc , debian 的vim的缺省配置挺好的。但只要创建了 ~/.vimrc, 哪怕是空的。缺省配置就丢失了。
    • 办法1,不创建~/.vimrc, 去修改 /etc/vim/vimrc.local
    • 办法2,参考: 修复 Debian 中的 vim 奇怪行为, ~/.vimrc 第一行加上 source $VIMRUNTIME/defaults.vimruntime! defaults.vim
  • 在tmux中,使用vim,配色不好(不清晰),在/etc/vim/vimrc.local~/.vimrc中加一行colorscheme desert
    这几个配色方案算是比较清晰,desert, darkblue, evening, industry, murphy, quiet, ron, (202410测)。
  • 设置系统字符集,localectl set-locale LANG="en_US.UTF-8",或在/etc/default/locale加一行LANG="en_US.UTF-8"
  • 如果vim/nano编辑中文乱码,设export LC_ALL=en_US.UTF-8
    如果还不行,apt install locales-all
  • 修改默认的 editor: 设置环境变量 EDITOR=vim。或者,使用命令 update-alternatives --config editor
  • debian-10 的防火墙底层用的是nft。命令行的iptables/ip6tables的规则,其实是转换为nft规则执行的。
    • 默认没有iptables.service,也没有firewalld.service。
    • 所以建议apt install nftables; systemctl enable nfttables; nft -f /etc/nftables.conf,
      你的自定义规则可以写在/etc/nftables.conf中,系统开机会加载这个文件。
      • debian-11 默认已经安装 nftables, 但 nftables.service 默认是 disabled.
    • 不喜欢直接用nft,可以装ufw,或者firewalld。apt install ufwapt install firewalld
    • 也可以继续用iptables,apt install iptables-persistent,
      iptables-save保存规则到/etc/iptables/rules.v4 | rules.v6, systemctl start netfilter-persistent开机时导入规则。
      或者,开机时,在rc.local中执行iptables-restore 恢复iptables-save保存在某个地方的规则。
  • 装点工具。比如: tmux p7zip-full rsync unrar unzip vim tcpdump tsocks proxychains4 mutt nmap telnet curl wget file dos2unix tofrodos dnsutils apache2-utils traceroute netcat-openbsd ncat
    bvi vbindiff hyx ncurses-hexedit
    • 其中 unrar,需要在 sources.list 的每一行 加上 non-free
    • 如果没有 man 命令, 看不了帮助。装 man-db。
    • netcat=netcat-openbsd; ncat支持UDP,ssl,支持proxy的认证。
  • golang包: debian11默认是装 1.15。至少要1.16才支持embed包。
    • apt install golang-1.16 , ln -s /usr/lib/go-1.16/bin/go /usr/bin/go
  • ls带颜色输出时,目录是蓝色,阅读吃力,改一下。
    dircolors -p > ~/.dircolors 修改这个文件,把DIR 01;34改为DIR 00;44,蓝底白字。
    • 如果使用的是 256colors 定义。比如,定义文件是/etc/lscolor-256color
      修改 DIR 38;5;10548;5;19;38;5;7,蓝底白字。或 48;5;19;38;5;7;1
      其中:48;5;X背景色,38;5;X前景色,;1高亮。0正常,1高亮,2低亮,3斜体,4下划线,5闪烁,6快闪,7反色,8隐藏,9删除线。
      参考:【256 Color Codes】【In the SGR number 38 and 48, where do the 2 and 5 numbers come from
      ANSI escape code】【The 256 color mode of xterm】【Terminal colour highlights
    • 如果出现错误 unknown terminal type tmux-256color
      检查 ncurses-term 是否安装。用 apt install ...安装,可解决。
    • 如果vim在tmux中,设置 colorscheme 无效。似乎是tmux没有启动颜色模式。
      使用tmux -2启动,让tmux支持256colors,在.bashrc中设置alias tmux='tmux -2'
      或, 在/etc/tmux.conf 中加一行set -g default-terminal "xterm" 指定 term类型。
  • apt remove popularity-contest,这个软件包启动一个计划任务,周期性的向 Debian 开发人员匿名 发送系统里使用最多的软件包的信息。如果你的系统无法向外部发送邮件,可以考虑卸载它。(2024-03)

装 CentOS8 的 VM

  • CentOS-8 对比一下 Debian-10 ,玩玩两个系统有什么不同。
  • 下载 x86_64-boot.iso (约630MB), 我用的是 CentOS-8.2.2004-x86_64-boot.iso
  • 给 CentOS-8, 1-2个CPU,2GB内存,硬盘20GB也足够玩玩了。不装GUI,占用硬盘比debian多一点,但也不超过4GB。
  • CentOS8:1G内存有点紧张,2G内存足够用。
  • 安装过程中,选择/使用网络源安装,见【CentOS8_在线安装_网络源_网络镜像源填写格式_以及其他笔记】。
  • centos8 的硬盘分区。
    • 如果选择自动分区,下一步就是确认写盘,也不显示分区结构。
    • 如果选择手工,当你手工删除原有分区后,有一个选项是自动分配。可以试试。
  • sshd 改端口。禁止root用密码登录。sftp-server -l INFO 记录sftp的活动。
  • fail2ban。看【Debian10_Centos8_fail2ban_sshd算法_限制连接数】。如果禁止所有用户密码登录,fail2ban就非必须。不过扫描很多,log会很大,装上fail2ban会好点。
  • CentOS-8 默认防火墙是激活的,用的是firewalld,底层是nft表。
    • 如果安装了网络服务,记得要用firewall-cmd指令开放对应的端口。
  • ls带颜色输出时,目录是蓝色,阅读吃力,改一下。
    dircolors -p > ~/.dircolors 修改这个文件,把DIR 01;34改为DIR 00;44,蓝底白字。
    • centos支持 ~/.dircolors~/.dir_colors,debian 只支持 ~/.dircolors

装 ROS

  • 安装ros的特别版本。需要指定硬盘的"厂家标识"和"硬盘ID"。
  • ros 的传统版本。听说是根据硬盘id来认证。ros是离线检测。
  • ros 的chr版。是在线认证的。ros在运行中,大约每30天自动去你的账号中获取认证。
    买这种认证比较划算。可以随意迁移,功能没有任何限制,仅限制工作带宽。
  • unraid 的 vm 中,关于指定硬盘标识的信息网上很少。搜到一篇竟然看不了,要会员才能看。只好自己摸索。
  • 参考: kvm中虚机xml定义格式说明, Domain XML format,
  • PVE关于修改硬盘参数的摘抄: PVE导入ROS ESXi ovf模版
  • 镜像转换。用qemu-img convert -p -f vmdk -O qcow2 disk-0.vmdk ROS-xx.qcow2
  • 指定"厂家标识"。我没找到办法。似乎qemu不支持。
  • 指定"硬盘ID"。在<disk>..</disk>中, 加入<serial>12345678901234567890</serial>。ros只认前20个字符,超出部分丢弃。
  • 没装成功....

iKuai8_3.4.9_Build202101291904

  • 爱快官网
  • 安装容易。
  • ipv4方面的功能非常好。
  • ipv6的支持很少。只支持ipv6地址对内网的下发。没找到 外网->内网的访问(转发)的支持。
  • 新版的 iKuai 听说对 ipv6支持好了。没测试。
  • (2023-03)据说,爱快 iKuai8_3.7.0 版本增加了 IPv6 的 ACL 支持,即爱快终于有 IPv6 的防火墙了。
    不过,ACL默认是空的,默认情况下,ipv6不阻止,内网的ipv6设备是裸奔的。所以记得要在ACL中加限制。
    (未实际用过,未测试)

OPNsense , pfSense

  • 一个开源的防火墙/网关/路由,基于FreeBSD。
  • 改天试试。写在这,备忘。

待续……


转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/13771929.html 来自osnosn的博客.

posted on 2020-10-05 23:49  osnosn  阅读(17887)  评论(8编辑  收藏  举报