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全过程
- 6.9.2 有些不同,请看【UnRAID_6.9.2_配置_设置】
下载,安装,参考官方文档。
-
我安装/配置,用的是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盘是fat32,否则格式化为fat32.
- 把unraid的文件解压到u盘根目录。把卷标名改为"UNRAID",全部大写。
- 如果需要UEFI启动,把
EFI-
目录改名为EFI
。 - 执行 make_bootable 脚本。
- windows: 打开dos窗口,执行u盘根目录的
make_bootable.bat
。 - Linux: 把
make_bootable_linux
copy出来,unmount U盘,执行脚本。
- windows: 打开dos窗口,执行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.
拿去启动系统,成功修复。 - 最终发现,同组的另一个U口上插的小风扇,可能干扰到插U盘的口。插入U盘,总是找不到u盘设备,直到重新插拔了小风扇,才识别到u盘。最终决定换个U口插入。
启动后,初始配置。
- DASHBOARD 中,给主机改个名,缺省名为"Tower".
- MAIN 中,添加一个 Disk,(parity,cache按需添加,也可以不添加)。START Array(开启阵列)。看到有个提示"Unmoutable"无法挂载的磁盘,选择 FORMAT 格式化一下。
- MAIN->Boot Device->Flash,有个警告,说是被共享了,不安全。点 Flash 进去,在 SMB Security Settings->Export 选 NO,不共享。(按需设置)
- SETTINGS->Date and Time, 设置一下时区,按需修改同步用的时间服务器。
如 ``time.pool.aliyun.com,
cn.pool.ntp.org,
0.debian.pool.ntp.org,ntp1.aliyun.com
,time.nist.gov
, - 修改/设置 root 的密码。在 USERS 点 root,改密码。(如果忘了密码,官方文档有说明,修改u盘 /config/shadow 文件重置密码)
- 创建一个普通用户,用来访问共享文件。在 USERS 中创建。
- 在 SETTINGS->Management Access 中,关闭 TELNET 的访问。留着 SSH 就行了。
- unraid 在单位代理服务后面,不能直接访问外网。这有几篇文章(我没试过,不知道行不行):
装APP商店
- 参看:Unraid 安装 app 中心和插件 , Unraid Server安装 apps 应用中心, 初次入坑unraid
- Community Applications地址 (即app商店)
https://raw.githubusercontent.com/Squidly271/community.applications/master/plugins/community.applications.plg
- NerdTools 地址
https://raw.githubusercontent.com/dmacias72/unRAID-NerdPack/master/plugin/NerdPack.plg
显示主板温度
- ssh 登录 unraid,打命令 sensors,可以显示cpu和主板温度。但 web 界面中没有。
- 参考: unRaid系列八:显示主板、CPU传感器温度
先在NerdTools装perl,再装显示温度的appDynamix 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
选项。- 如果disabled。slaac地址,应该不会变。但实际上得到的是非eui64地址,PD变化,IP也变了。
官方说是个bug,IPV6 PRIVACY EXTENSIONS NOT WORK, IPV6 not working - 如果enabled。slaac地址,会变。
- 如果disabled。slaac地址,应该不会变。但实际上得到的是非eui64地址,PD变化,IP也变了。
- 如果要改为 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后缀。
- 其实openwrt分配的ipv6后缀和客户机的 DUID 是对应的。基本不变。
不过openwrt改不了客户机的DUID,也不能直接指定客户机的IPv6。见:【设置openwrt路由器的防火墙_允许从外网访问_ipv6服务】
- 其实openwrt分配的ipv6后缀和客户机的 DUID 是对应的。基本不变。
- 可以试试,修改 unraid 的 /boot/config/machine-id,然后重启。可能会更改 unraid 的 DUID。(未测试)
- openwrt动态分给unraid的ipv6后缀,其实是固定的,与unraid的DUID相关。
- unraid想换个ipv6后缀,可以修改unraid自己的DUID,通过创建文件解决
/var/lib/dhcpcd/duid
,文件内容就一行,自定义的duid01:02:03:0a:0b:0c:0d:0e:0f:11:12:13
,然后重启dhcpcd
- unraid想换个ipv6后缀,可以修改unraid自己的DUID,通过创建文件解决
- 这里给出一个例子(经测试,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,那就随便搞了。
- 可以装个docker,在app商店中搜索
WebUI too many login attempts
- 从6.9.2 开始有登陆次数限制。规则是,连续错误3次,锁定15分钟。
- 解除锁定,见【UnRAID_6.9.2_6.10.3_配置_设置】。
安装官方版 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
, 用cfdisk
或fdisk
调整分区。efi版用parted
或fdisk
。
用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 磁盘扩容】
- 直接用这个img启动,第一次启动,网络都无法启动。打命令
- 用
- 其他默认吧。
- 然后,网卡直通,抄一下之前的虚拟机样本中的直通代码。如装了
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支持,有认证的代理。
- 安装wget的https支持
- 为了安全,不建议对外网开放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 eth0
和iface eth0 inet dhcp
这两行。否则会分配两个IPv4。(如果是静态指定IP,则不影响) - 然后
/sbin/service NetworkManager restart
或systemctl restart NetworkManager
或service 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的时间还是不准。
- 有 qemu-guest-agent, 可以从kvm主机设置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
, 创建虚拟环境的命令是pyvenv
或python3 -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.vim
或runtime! defaults.vim
- 办法1,不创建
- 在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 ufw
或apt 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;105
为48;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类型。
- 如果使用的是 256colors 定义。比如,定义文件是
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
。
- centos支持
装 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的博客.