openwrt.固件下载地址

1、lede
https://github.com/coolsnowwolf/lede

这里就不介绍了,比较出名,仓库有x64固件和最近折腾的rk3568固件(r5s、r68k、r68s、h68k等小机机)

2、iStoreOS
https://fw.koolcenter.com/iStoreOS/
iStoreOS系统是之前的koolshare团队基于OpenWrt定制的软路由系统,重点是做了很多很多的交互简化。

3、骷髅头
https://github.com/DHDAXCW

支持:x86_x64(推荐) NanoPi-R4S-R4SE NanoPi-R2S NanoPi-R2C-Plus

4、XiaoWanSM
https://pan.w2nn.ml/zh-CN/

支持:x86_64、NanoPi、小米、竞斗云(一直用这个)、华硕、极路由、网件等等

5、X-Wrt
https://downloads.x-wrt.com/rom/

支持:很多。。。很有名的作者

6、SuLingGG
https://openwrt.cc/releases/targets/

支持:x86_64、树莓派,应该是最早做树莓派固件的大佬

7、Snail
http://bbs.anmpserver.com/

收费固件,自建的iStore很不错,就是QQ群聊YYNJ

8、OpenWrt固件下载与在线定制编译
https://supes.top/

自定义添加软件包和修改部分系统参数,捐赠可以移除外链等(好用建议捐赠),支持的机型琳琅满目

9、esirPG
https://drive.google.com/drive/folders/1dqNUrMf9n7i3y1aSh68U5Yf44WQ3KCuh

其他固件
breed文件下载地址
https://breed.hackpascal.net/
Hiboy老毛子下载地址
http://opt.cn2qq.com/padavan/
潘多拉固件下载地址
http://pandorabox.tuuz.cc:8000/
OpenWrt官方下载地址
https://downloads.openwrt.org/
immortalwrt官方下载地址
https://downloads.immortalwrt.org/
merlin下载地址
https://www.asuswrt-merlin.net/
merlin【改版】下载地址
https://www.koolcenter.com/
其他项目
Openwrt 官方项目:

https://github.com/openwrt/openwrt

Lean 大的 Openwrt 项目:

https://github.com/coolsnowwolf/lede

immortalwrt 的 OpenWrt 项目:

https://github.com/immortalwrt/immortalwrt

P3TERX 大佬的 Actions-OpenWrt 项目:

https://github.com/P3TERX/Actions-OpenWrt

SuLingGG 大佬的 Actions 编译框架 项目:

https://github.com/SuLingGG/OpenWrt-Rpi

骷髅头项目:

https://github.com/P3TERX/Actions-OpenWrt
https://github.com/DHDAXCW

SuLingGG 大佬的 Actions 编译框架 项目:

https://github.com/SuLingGG/OpenWrt-Rpi

硬盘SMART信息参数详解

一、SMART概述

硬盘的故障一般分为两种:可预测的(predictable)和不可预测的(unpredictable)。后者偶而会发生,也没有办法去预防它,例如芯片突然失效,机械撞击等。但像电机轴承磨损、盘片磁介质性能下降等都属于可预测的情况,可以在在几天甚至几星期前就发现这种不正常的现象。如果发生这种问题,SMART功能会在开机时响起警报,至少让使用者有足够的时间把重要资料转移到其它储存设备上。

最早期的硬盘监控技术起源于1992年,IBM在AS/400计算机的IBM 0662 SCSI 2代硬盘驱动器中使用了后来被命名为Predictive Failure Analysis(故障预警分析技术)的监控技术,它是通过在固件中测量几个重要的硬盘安全参数和评估他们的情况,然后由监控软件得出两种结果:“硬盘安全”或“不久后会发生故障”。

不久,当时的微机制造商康柏和硬盘制造商希捷、昆腾以及康纳共同提出了名为IntelliSafe的类似技术。通过该技术,硬盘可以测量自身的健康指标并将参数值传送给操作系统和用户的监控软件中,每个硬盘生产商有权决定哪些指标需要被监控以及设定它们的安全阈值。

1995年,康柏公司将该技术方案提交到Small Form Factor(SFF)委员会进行标准化,该方案得到IBM、希捷、昆腾、康纳和西部数据的支持,1996年6月进行了1.3版的修正,正式更名为S.M.A.R.T.(Self-Monitoring Analysis And Reporting Technology),全称就是“自我检测分析与报告技术”,成为一种自动监控硬盘驱动器完好状况和报告潜在问题的技术标准。

作为行业规范,SMART规定了硬盘制造厂商应遵循的标准,满足SMART标准的条件主要包括:

1.在设备制造期间完成SMART需要的各项参数、属性的设定;

2.在特定系统平台下,能够正常使用SMART;通过BIOS检测,能够识别设备是否支持SMART并可显示相关信息,而且能辨别有效和失效的SMART信息;

3.允许用户自由开启和关闭SMART功能;

4.在用户使用过程中,能提供SMART的各项有效信息,确定设备的工作状态,并能发出相应的修正指令或警告。在硬盘及操作系统都支持SMART技术并且开启的情况下,若硬盘状态不良,SMART技术能够在屏幕上显示英文警告信息:“WARNING:IMMEDIATLY BACKUP YOUR DATA AND REPLACE YOUR HARD DISK DRIVE,A FAILURE MAY BE IMMINENT.”(警告:立刻备份你的数据并更换硬盘,硬盘可能失效。)

SMART功能不断从硬盘上的各个传感器收集信息,并把信息保存在硬盘的系统保留区(service area)内,这个区域一般位于硬盘0物理面的最前面几十个物理磁道,由厂商写入相关的内部管理程序。这里除了SMART信息表外还包括低级格式化程序、加密解密程序、自监控程序、自动修复程序等。用户使用的监测软件通过名为“SMART Return Status”的命令(命令代码为:B0h)对SMART信息进行读取,且不允许最终用户对信息进行修改。

二、SMART的ID代码

硬盘SMART检测的ID代码以两位十六进制数表示(括号里对应的是十进制数)硬盘的各项检测参数。目前,各硬盘制造商的绝大部分SMART ID代码所代表的参数含义是一致的,但厂商也可以根据需要使用不同的ID代码,或者根据检测项目的多少增减ID代码。一般来说,以下这些检测项是必需的:

01(001) 底层数据读取错误率 Raw Read Error Rate

04(004) 启动/停止计数 Start/Stop Count

05(005) 重映射扇区数 Relocated Sector Count

09(009) 通电时间累计 Power-On Time Count (POH)

0A(010) 主轴起旋重试次数(即硬盘主轴电机启动重试次数) Spin up Retry Count

0B(011) 磁盘校准重试次数 Calibration Retry Count

0C(012) 磁盘通电次数 Power Cycle Count

C2(194) 温度 Temperature

C7(199) ULTRA DMA奇偶校验错误率 ULTRA ATA CRC Error Rate

C8(200) 写错误率 Write Error Rate

三、SMART的描述(Description)

描述,即某一检测项目的名称,是ID代码的文字解释。对用户而言,不仅要了解描述的含义,重要的是要了解各参数的值如“临界值”、“最差值”的定义,“当前值”与“数据值”的区别等,才能对自己的硬盘状态有一个基本了解。

四、SMART的值

1、临界值(Threshold)

临界值是硬盘厂商指定的表示某一项目可靠性的门限值,也称阈值,它通过特定公式计算而得。如果某个参数的当前值接近了临界值,就意味着硬盘将变得不可靠,可能导致数据丢失或者硬盘故障。由于临界值是硬盘厂商根据自己产品特性而确定的,因此使用厂商提供的专用检测软件往往会跟Windows下检测软件的检测结果有较大出入。

以参数ID 01 Raw Read Error Rate(底层数据读取错误率)为例:某型硬盘对该参数的计算公式为“10×log10(主机和硬盘之间所传输数据的扇区数)×512×8/重读的扇区数”。其中“512×8”是把扇区数转化为所传输的数据位(bits),这个值只在所传输的数据位处于1010~1012范围时才作计算,而当Windows系统启动后,主机和硬盘之间所传输的数据扇区大于或等于1012时,此值将重新复位,所以有些值在不同的操作环境、不同检测程序下时会有较大的波动。

2、当前值(Normalized value)

当前值是各ID项在硬盘运行时根据实测数据通过公式计算的结果,计算公式由硬盘厂家自定。

硬盘出厂时各ID项目都有一个预设的最大正常值,也即出厂值,这个预设的依据及计算方法为硬盘厂家保密,不同型号的硬盘都不同,最大正常值通常为100或200或253,新硬盘刚开始使用时显示的当前值可以认为是预设的最大正常值(有些ID项如温度等除外)。随着使用损耗或出现错误,当前值会根据实测数据而不断刷新并逐渐减小。因此,当前值接近临界值就意味着硬盘寿命的减少,发生故障的可能性增大,所以当前值也是判定硬盘健康状态或推测寿命的依据之一。

3、最差值(Worst)

最差值是硬盘运行时各ID项曾出现过的最大的非正常值。

最差值是对硬盘运行中某项数据变劣的峰值统计,该数值也会不断刷新。通常,最差值与当前值是相等的,如果最差值出现较大的波动(小于当前值),表明硬盘曾出现错误或曾经历过恶劣的工作环境(如温度)。

4、数据值(Data或Raw value)

数据值是硬盘运行时各项参数的实测值,大部分SMART工具以十进制显示数据。

数据值代表的意义随参数而定,大致可以分为三类:

1)数据值并不直接反映硬盘状态,必须经过硬盘内置的计算公式换算成当前值才能得出结果;

2)数据值是直接累计的,如Start/Stop Count(启动/停止计数)的数据是50,即表示该硬盘从出厂到现在累计启停了50次;

3)有些参数的数据是即时数,如Temperature(温度)的数据值是44,表示硬盘的当前温度是44℃。

因此,有些参数直接查看数据也能大致了解硬盘目前的工作状态。

五、状态(Status)

硬盘的每项SMART信息中都有一个临界值(阈值),不同硬盘的临界值是不同的,SMART针对各项的当前值、最差值和临界值的比较结果以及数据值进行分析后,提供硬盘当前的评估状态,也是我们直观判断硬盘健康状态的重要信息。根据SMART的规定,状态一般有正常、警告、故障或错误三种状态。

SMART判定这三个状态与SMART的 Pre-failure/advisory BIT(预测错误/发现位)参数的赋值密切相关,当Pre-failure/advisory BIT=0,并且当前值、最差值远大于临界值的情况下,为正常标志。当Pre-failure/advisory BIT=0,并且当前值、最差值大于且接近临界值时,为警告标志;当Pre-failure/advisory BIT=1,并且当前值、最差值小于临界值时,为故障或错误标志。

六、SMART参数详解 一般情况下,用户只要观察当前值、最差值和临界值的关系,并注意状态提示信息即可大致了解硬盘的健康状况。下面简单介绍各参数的含义,01(001)底层数据读取错误率 Raw Read Error Rate数据为0或任意值,当前值应远大于与临界值。底层数据读取错误率是磁头从磁盘表面读取数据时出现的错误,对某些硬盘来说,大于0的数据表明磁盘表面或者读写磁头发生问题,如介质损伤、磁头污染、磁头共振等等。不过对希捷硬盘来说,许多硬盘的这一项会有很大的数据量,这不代表有任何问题,主要是看当前值下降的程度。在固态硬盘中,此项的数据值包含了可校正的错误与不可校正的RAISE错误(UECC+URAISE)。注:RAISE(Redundant Array of Independent Silicon Elements)意为独立硅元素冗余阵列,是固态硬盘特有的一种冗余恢复技术,保证内部有类似RAID阵列的数据安全性。

02(002)磁盘读写通量性能 Throughput Performance此参数表示硬盘的读写通量性能,数据值越大越好。当前值如果偏低或趋近临界值,表示硬盘存在严重的问题,但现在的硬盘通常显示数据值为0或根本不显示此项,一般在进行了人工脱机SMART测试后才会有数据量。

03(003)主轴起旋时间 Spin Up Time主轴起旋时间就是主轴电机从启动至达到额定转速所用的时间,数据值直接显示时间,单位为毫秒或者秒,因此数据值越小越好。不过对于正常硬盘来说,这一项仅仅是一个参考值,硬盘每次的启动时间都不相同,某次启动稍慢些也不表示就有问题。硬盘的主轴电机从启动至达到额定转速大致需要4秒~15秒左右,过长的启动时间说明电机驱动电路或者轴承机构有问题。但这一参数的数据值在某些型号的硬盘上总是为0,这就要看当前值和最差值来判断了。对于固态硬盘来说,所有的数据都是保存在半导体集成电路中,没有主轴电机,所以这项没有意义,数据固定为0,当前值固定为100。

04(004)启停计数 Start/Stop Count这一参数的数据是累计值,表示硬盘主轴电机启动/停止的次数,新硬盘通常只有几次,以后会逐渐增加。系统的某些功能如空闲时关闭硬盘等会使硬盘启动/停止的次数大为增加,在排除定时功能的影响下,过高的启动/停止次数(远大于通电次数0C)暗示硬盘电机及其驱动电路可能有问题。这个参数的当前值是依据某种公式计算的结果,例如对希捷某硬盘来说临界值为20,当前值是通过公式“100-(启停计数/1024)”计算得出的。若新硬盘的启停计数为0,当前值为100-(0/1024)=100,随着启停次数的增加,该值不断下降,当启停次数达到81920次时,当前值为100-(81920/1024)=20,已达到临界值,表示从启停次数来看,该硬盘已达设计寿命,当然这只是个寿命参考值,并不具有确定的指标性。这一项对于固态硬盘同样没有意义,数据固定为0,当前值固定为100。

05(005)重映射扇区计数 Reallocated Sectors Count/ 退役块计数 Retired Block Count数据应为0,当前值应远大于临界值。当硬盘的某扇区持续出现读/写/校验错误时,硬盘固件程序会将这个扇区的物理地址加入缺陷表(G-list),将该地址重新定向到预先保留的备用扇区并将其中的数据一并转移,这就称为重映射。执行重映射操作后的硬盘在Windows常规检测中是无法发现不良扇区的,因其地址已被指向备用扇区,这等于屏蔽了不良扇区。这项参数的数据值直接表示已经被重映射扇区的数量,当前值则随着数据值的增加而持续下降。当发现此项的数据值不为零时,要密切注意其发展趋势,若能长期保持稳定,则硬盘还可以正常运行;若数据值不断上升,说明不良扇区不断增加,硬盘已处于不稳定状态,应当考虑更换了。如果当前值接近或已到达临界值(此时的数据值并不一定很大,因为不同硬盘保留的备用扇区数并不相同),表示缺陷表已满或备用扇区已用尽,已经失去了重映射功能,再出现不良扇区就会显现出来并直接导致数据丢失。这一项不仅是硬盘的寿命关键参数,而且重映射扇区的数量也直接影响硬盘的性能,例如某些硬盘会出现数据量很大,但当前值下降不明显的情况,这种硬盘尽管还可正常运行,但也不宜继续使用。因为备用扇区都是位于磁盘尾部(靠近盘片轴心处),大量的使用备用扇区会使寻道时间增加,硬盘性能明显下降。这个参数在机械硬盘上是非常敏感的,而对于固态硬盘来说同样具有重要意义。闪存的寿命是正态分布的,例如说MLC能写入一万次以上,实际上说的是写入一万次之前不会发生“批量损坏”,但某些单元可能写入几十次就损坏了。换言之,机械硬盘的盘片不会因读写而损坏,出现不良扇区大多与工艺质量相关,而闪存的读写次数则是有限的,因而损坏是正常的。所以固态硬盘在制造时也保留了一定的空间,当某个存储单元出现问题后即把损坏的部分隔离,用好的部分来顶替。这一替换方法和机械硬盘的扇区重映射是一个道理,只不过机械硬盘正常时极少有重映射操作,而对于固态硬盘是经常性的。在固态硬盘中这一项的数据会随着使用而不断增长,只要增长的速度保持稳定就可以。通常情况下,数据值=100-(100×被替换块/必需块总数),因此也可以估算出硬盘的剩余寿命。Intel固态硬盘型号的第十二个字母表示了两种规格,该字母为1表示第一代的50纳米技术的SSD,为2表示第二代的34纳米技术的SSD,如SSDSA2M160G2GN就表示是34nm的SSD。所以参数的查看也有两种情况:50nm的SSD(一代)要看当前值。这个值初始是100,当出现替换块的时候这个值并不会立即变化,一直到已替换四个块时这个值变为1,之后每增加四个块当前值就+1。也就是100对应0~3个块,1对应4~7个块,2对应8~11个块……34nm的SSD(二代)直接查看数据值,数据值直接表示有多少个被替换的块。

06(006)读取通道余量 Read Channel Margin这一项功能不明,现在的硬盘也不显示这一项。

07(007)寻道错误率 Seek Error Rate数据应为0,当前值应远大于与临界值。这一项表示磁头寻道时的错误率,有众多因素可导致寻道错误率上升,如磁头组件的机械系统、伺服电路有局部问题,盘片表面介质不良,硬盘温度过高等等。通常此项的数据应为0,但对希捷硬盘来说,即使是新硬盘,这一项也可能有很大的数据量,这不代表有任何问题,还是要看当前值是否下降。

08(008)寻道性能 Seek Time Performance此项表示硬盘寻道操作的平均性能(寻道速度),通常与前一项(寻道错误率)相关联。当前值持续下降标志着磁头组件、寻道电机或伺服电路出现问题,但现在许多硬盘并不显示这一项。

09(009)通电时间累计 Power-On Time Count (POH)这个参数的含义一目了然,表示硬盘通电的时间,数据值直接累计了设备通电的时长,新硬盘当然应该接近0,但不同硬盘的计数单位有所不同,有以小时计数的,也有以分、秒甚至30秒为单位的,这由磁盘制造商来定义。这一参数的临界值通常为0,当前值随着硬盘通电时间增加会逐渐下降,接近临界值表明硬盘已接近预计的设计寿命,当然这并不表明硬盘将出现故障或立即报废。参考磁盘制造商给出的该型号硬盘的MTBF(平均无故障时间)值,可以大致估计剩余寿命或故障概率。对于固态硬盘,要注意“设备优先电源管理功能(device initiated power management,DIPM)”会影响这个统计:如果启用了DIPM,持续通电计数里就不包括睡眠时间;如果关闭了DIPM功能,那么活动、空闲和睡眠三种状态的时间都会被统计在内。

0A(010)主轴起旋重试次数 Spin up Retry Count数据应为0,当前值应大于临界值。主轴起旋重试次数的数据值就是主轴电机尝试重新启动的计数,即主轴电机启动后在规定的时间里未能成功达到额定转速而尝试再次启动的次数。数据量的增加表示电机驱动电路或是机械子系统出现问题,整机供电不足也会导致这一问题。

0B(011)磁头校准重试计数 Calibration Retry Count数据应为0,当前值应远大于与临界值。硬盘在温度发生变化时,机械部件(特别是盘片)会因热胀冷缩出现形变,因此需要执行磁头校准操作消除误差,有的硬盘还内置了磁头定时校准功能。这一项记录了需要再次校准(通常因上次校准失败)的次数。这一项的数据量增加,表示电机驱动电路或是机械子系统出现问题,但有些型号的新硬盘也有一定的数据量,并不表示有问题,还要看当前值和最差值。

0C(012)通电周期计数 Power Cycle Count通电周期计数的数据值表示了硬盘通电/断电的次数,即电源开关次数的累计,新硬盘通常只有几次。这一项与启停计数(04)是有区别的,一般来说,硬盘通电/断电意味着计算机的开机与关机,所以经历一次开关机数据才会加1;而启停计数(04)表示硬盘主轴电机的启动/停止(硬盘在运行时可能多次启停,如系统进入休眠或被设置为空闲多少时间而关闭)。所以大多情况下这个通电/断电的次数会小于启停计数(04)的次数。通常,硬盘设计的通电次数都很高,如至少5000次,因此这一计数只是寿命参考值,本身不具指标性。

0D(013)软件读取错误率 Soft Read Error Rate软件读取错误率也称为可校正的读取误码率,就是报告给操作系统的未经校正的读取错误。数据值越低越好,过高则可能暗示盘片磁介质有问题。

AA(170)坏块增长计数 Grown Failing Block Count(Micron 镁光)读写失败的块增长的总数。

AB(171)编程失败块计数 Program Fail Block CountFlash编程失败块的数量。

AC(172)擦写失败块计数 Erase Fail Block Count擦写失败块的数量。

AD(173)磨损平衡操作次数(平均擦写次数) / Wear Leveling Count(Micron 镁光)所有好块的平均擦写次数。Flash芯片有写入次数限制,当使用FAT文件系统时,需要频繁地更新文件分配表。如果闪存的某些区域读写过于频繁,就会比其它区域磨损的更快,这将明显缩短整个硬盘的寿命(即便其它区域的擦写次数还远小于最大限制)。所以,如果让整个区域具有均匀的写入量,就可明显延长芯片寿命,这称为磨损均衡措施。

AE(174)意外失电计数 Unexpected Power Loss Count硬盘自启用后发生意外断电事件的次数。

B1(177)磨损范围对比值 Wear Range Delta磨损最重的块与磨损最轻的块的磨损百分比之差。

B4(180)未用的备用块计数 Unused Reserved Block Count Total(惠普)固态硬盘会保留一些容量来准备替换损坏的存储单元,所以可用的预留空间数非常重要。这个参数的当前值表示的是尚未使用的预留的存储单元数量。

B5(181)编程失败计数 Program Fail Count用4个字节显示已编程失败的次数,与(AB)参数相似。

B5(181)非4KB对齐访问数 Non-4k Aligned Access(Micron 镁光)

B6(182)擦写失败计数 Erase Fail Count用4个字节显示硬盘自启用后数据块擦写失败的次数,与(AC)参数相似。

B7(183)串口降速错误计数 SATA Downshift Error Count这一项表示了SATA接口速率错误下降的次数。通常硬盘与主板之间的兼容问题会导致SATA传输级别降级运行。

B8(184)I/O错误检测与校正 I/O Error Detection and Correction(IOEDC)“I/O错误检测与校正”是惠普公司专有的SMART IV技术的一部分,与其他制造商的I/O错误检测和校正架构一样,它记录了数据通过驱动器内部高速缓存RAM传输到主机时的奇偶校验错误数量。

B8(184)点到点错误检测计数 End to End Error Detection CountIntel第二代的34nm固态硬盘有点到点错误检测计数这一项。固态硬盘里有一个LBA(logical block addressing,逻辑块地址)记录,这一项显示了SSD内部逻辑块地址与真实物理地址间映射的出错次数。

B9(185)磁头稳定性 Head Stability(西部数据)意义不明。

BA(186)感应运算振动检测 nduced Op-Vibration Detection(西部数据)意义不明。

BB(187)无法校正的错误 Reported Uncorrectable Errors(希捷)报告给操作系统的无法通过硬件ECC校正的错误。如果数据值不为零,就应该备份硬盘上的数据了。报告给操作系统的在所有存取命令中出现的无法校正的RAISE(URAISE)错误。

BC(188)命令超时 Command Timeout由于硬盘超时导致操作终止的次数。通常数据值应为0,如果远大于零,最有可能出现的是电源供电问题或者数据线氧化致使接触不良,也可能是硬盘出现严重问题。

BD(189)高飞写入 High Fly Writes磁头飞行高度监视装置可以提高读写的可靠性,这一装置时刻监测磁头的飞行高度是否在正常范围来保证可靠的写入数据。如果磁头的飞行高度出现偏差,写入操作就会停止,然后尝试重新写入或者换一个位置写入。这种持续的监测过程提高了写入数据的可靠性,同时也降低了读取错误率。这一项的数据值就统计了写入时磁头飞行高度出现偏差的次数。

BD(189)出厂坏块计数 Factory Bad Block Count(Micron 镁光芯片)

BE(190)气流温度 Airflow Temperature这一项表示的是硬盘内部盘片表面的气流温度。在希捷公司的某些硬盘中,当前值=(100-当前温度),因此气流温度越高,当前值就越低,最差值则是当前值曾经到达过的最低点,临界值由制造商定义的最高允许温度来确定,而数据值不具实际意义。许多硬盘也没有这一项参数。

BF(191)冲击错误率 G-sense error rate这一项的数据值记录了硬盘受到机械冲击导致出错的频度。

C0(192)断电返回计数 Power-Off Retract Count当计算机关机或意外断电时,硬盘的磁头都要返回停靠区,不能停留在盘片的数据区里。正常关机时电源会给硬盘一个通知,即Standby Immediate,就是说主机要求将缓存数据写入硬盘,然后就准备关机断电了(休眠、待机也是如此);意外断电则表示硬盘在未收到关机通知时就失电,此时磁头会自动复位,迅速离开盘片。这个参数的数据值累计了磁头返回的次数。但要注意这个参数对某些硬盘来说仅记录意外断电时磁头的返回动作;而某些硬盘记录了所有(包括休眠、待机,但不包括关机时)的磁头返回动作;还有些硬盘这一项没有记录。因此这一参数的数据值在某些硬盘上持续为0或稍大于0,但在另外的硬盘上则会大于通电周期计数(0C)或启停计数(04)的数据。在一些新型节能硬盘中,这一参数的数据量还与硬盘的节能设计相关,可能会远大于通电周期计数(0C)或启停计数(04)的数据,但又远小于磁头加载/卸载计数(C1)的数据量。对于固态硬盘来说,虽然没有磁头的加载/卸载操作,但这一项的数据量仍然代表了不安全关机,即发生意外断电的次数。

C1(193)磁头加载/卸载计数 Load/Unload Cycle Count对于过去的硬盘来说,盘片停止旋转时磁头臂停靠于盘片中心轴处的停泊区,磁头与盘片接触,只有当盘片旋转到一定转速时,磁头才开始飘浮于盘片之上并开始向外侧移动至数据区。这使得磁头在硬盘启停时都与盘片发生摩擦,虽然盘片的停泊区不存储数据,但无疑启停一个循环,就使磁头经历两次磨损。所以对以前的硬盘来说,磁头起降(加载/卸载)次数是一项重要的寿命关键参数。而在现代硬盘中,平时磁头臂是停靠于盘片之外的一个专门设计的停靠架上,远离盘片。只有当盘片旋转达到额定转速后,磁头臂才开始向内(盘片轴心)转动使磁头移至盘片区域(加载),磁头臂向外转动返回至停靠架即卸载。这样就彻底杜绝了硬盘启停时磁头与盘片接触的现象,西部数据公司将其称为“斜坡加载技术”。由于磁头在加载/卸载过程中始终不与盘片接触,不存在磁头的磨损,使得这一参数的重要性已经大大下降。这个参数的数据值就是磁头执行加载/卸载操作的累计次数。从原理上讲,这个加载/卸载次数应当与硬盘的启停次数相当,但对于笔记本内置硬盘以及台式机新型节能硬盘来说,这一项的数据量会很大。这是因为磁头臂组件设计有一个固定的返回力矩,保证在意外断电时磁头能靠弹簧力自动离开盘片半径范围,迅速返回停靠架。所以要让硬盘运行时磁头保持在盘片的半径之内,就要使磁头臂驱动电机(寻道电机)持续通以电流。而让磁头臂在硬盘空闲几分钟后就立即执行卸载动作,返回到停靠架上,既有利于节能,又降低了硬盘受外力冲击导致磁头与盘片接触的概率。虽然再次加载会增加一点寻道时间,但毕竟弊大于利,所以在这类硬盘中磁头的加载/卸载次数会远远大于通电周期计数(0C)或启停计数(04)的数据量。不过这种加载/卸载方式已经没有了磁头与盘片的接触,所以设计值也已大大增加,通常笔记本内置硬盘的磁头加载/卸载额定值在30~60万次,而台式机新型节能硬盘的磁头加载/卸载设计值可达一百万次。

C2(194)温度 Temperature温度的数据值直接表示了硬盘内部的当前温度。硬盘运行时最好不要超过45℃,温度过高虽不会导致数据丢失,但引起的机械变形会导致寻道与读写错误率上升,降低硬盘性能。硬盘的最高允许运行温度可查看硬盘厂商给出的数据,一般不会超过60℃。不同厂家对温度参数的当前值、最差值和临界值有不同的表示方法:希捷公司某些硬盘的当前值就是实际温度(摄氏)值,最差值则是曾经达到过的最高温度,临界值不具意义;而西部数据公司一些硬盘的最差值是温度上升到某值后的时间函数,每次升温后的持续时间都将导致最差值逐渐下降,当前值则与当前温度成反比,即当前温度越高,当前值越低,随实际温度波动。

C3(195)硬件ECC校正 Hardware ECC RecoveredECC(Error Correcting Code)的意思是“错误检查和纠正”,这个技术能够容许错误,并可以将错误更正,使读写操作得以持续进行,不致因错误而中断。这一项的数据值记录了磁头在盘片上读写时通过ECC技术校正错误的次数,不过许多硬盘有其制造商特定的数据结构,因此数据量的大小并不能直接说明问题。

C3(195)实时无法校正错误计数 On the fly ECC Uncorrectable Error Count这一参数记录了无法校正(UECC)的错误数量。

C4(196)重映射事件计数 Reallocetion Events Count数据应为0,当前值应远大于临界值。这个参数的数据值记录了将重映射扇区的数据转移到备用扇区的尝试次数,是重映射操作的累计值,成功的转移和不成功的转移都会被计数。因此这一参数与重映射扇区计数(05)相似,都是反映硬盘已经存在不良扇区。C4(196)擦除错误块计数 Erase Failure block Count(Indilinx芯片)在固态硬盘中,这一参数记录了被重映射的块编程失败的数量。C5(197)当前待映射扇区计数 Current Pending Sector Count数据应为0,当前值应远大于临界值。这个参数的数据表示了“不稳定的”扇区数,即等待被映射的扇区(也称“被挂起的扇区”)数量。如果不稳定的扇区随后被读写成功,该扇区就不再列入等待范围,数据值就会下降。仅仅读取时出错的扇区并不会导致重映射,只是被列入“等待”,也许以后读取就没有问题,所以只有在写入失败时才会发生重映射。下次对该扇区写入时如果继续出错,就会产生一次重映射操作,此时重映射扇区计数(05)与重映射事件计数(C4)的数据值增加,此参数的数据值下降。

C6(198)脱机无法校正的扇区计数 Offline Uncorrectable Sector Count数据应为0,当前值应远大于临界值。这个参数的数据累计了读写扇区时发生的无法校正的错误总数。数据值上升表明盘片表面介质或机械子系统出现问题,有些扇区肯定已经不能读取,如果有文件正在使用这些扇区,操作系统会返回读盘错误的信息。下一次写操作时会对该扇区执行重映射。

C7(199)Ultra ATA访问校验错误率 Ultra ATA CRC Error Rate这个参数的数据值累计了通过接口循环冗余校验(Interface Cyclic Redundancy Check,ICRC)发现的数据线传输错误的次数。如果数据值不为0且持续增长,表示硬盘控制器→数据线→硬盘接口出现错误,劣质的数据线、接口接触不良都可能导致此现象。由于这一项的数据值不会复零,所以某些新硬盘也会出现一定的数据量,只要更换数据线后数据值不再继续增长,即表示问题已得到解决。

C8(200)写入错误率 Write Error Rate / 多区域错误率 Multi-Zone Error Rate(西部数据)数据应为0,当前值应远大于临界值。这个参数的数据累计了向扇区写入数据时出现错误的总数。有的新硬盘也会有一定的数据量,若数据值持续快速升高(当前值偏低),表示盘片、磁头组件可能有问题。

C9(201)脱道错误率 Off Track Error Rate / 逻辑读取错误率 Soft Read Error Rate数据值累积了读取时脱轨的错误数量,如果数据值不为0,最好备份硬盘上的资料。C9(201)TA Counter Detected(意义不明)

CA(202)数据地址标记错误 Data Address Mark errors此项的数据值越低越好(或者由制造商定义)。

CA(202)TA Counter Increased(意义不明)

CA(202)剩余寿命 Percentage Of The Rated Lifetime Used(Micron 镁光芯片)当前值从100开始下降至0,表示所有块的擦写余量统计。计算方法是以MLC擦写次数除以50,SLC擦写次数除以1000,结果取整数,将其与100的差值作为当前值(MLC预计擦写次数为5000,SLC预计擦写次数为100000)。

CB(203)软件ECC错误数 Run Out Cancel错误检查和纠正(ECC)出错的频度。

CC(204)软件ECC校正 Soft ECC Correction通过软件ECC纠正错误的计数。

CD(205)热骚动错误率 Thermal Asperity Rate (TAR)由超温导致的错误。数据值应为0。

CE(206)磁头飞行高度 Flying Height磁头距离盘片表面的垂直距离。高度过低则增加了磁头与盘片接触导致损坏的可能性;高度偏高则增大了读写错误率。不过准确地说,硬盘中并没有任何装置可以直接测出磁头的飞行高度,制造商也只是根据磁头读取的信号强度来推算磁头飞行高度。CE(206)底层数据写入出错率 Write Error Rate

CF(207)主轴过电流 Spin High Current数据值记录了主轴电机运行时出现浪涌电流的次数,数据量的增加意味着轴承或电机可能有问题。

D0(208)主轴电机重启次数 Spin Buzz数据值记录了主轴电机反复尝试启动的次数,这通常是由于电源供电不足引起的。

D1(209)脱机寻道性能 Offline Seek Performance这一项表示驱动器在脱机状态下的寻道性能,通常用于工厂内部测试。

D2(210)斜坡加载值 Ramp Load Value这一项仅见于几年前迈拓制造的部分硬盘。通常数据值为0,意义不明。

D3(211)写入时振动 Vibration During Write写入数据时受到外部振动的记录。

D4(212)写入时冲击 Shock During Write写入数据时受到受到外部机械冲击的记录。

DC(220)盘片偏移量 Disk Shift硬盘中的盘片相对主轴的偏移量(通常是受外力冲击或温度变化所致),单位未知,数据值越小越好。

DD(221)冲击错误率 G-sense error rate与(BF)相同,数据值记录了硬盘受到外部机械冲击或振动导致出错的频度。

DE(222)磁头寻道时间累计 Loaded Hours磁头臂组件运行的小时数,即寻道电机运行时间累计。

DF(223)磁头加载/卸载重试计数 Load/Unload Retry Count这一项与(C1)项类似,数据值累积了磁头尝试重新加载/卸载的次数。

E0(224)磁头阻力 Load Friction磁头工作时受到的机械部件的阻力。

E1(225)主机写入数据量 Host Writes由于闪存的擦写次数是有限的,所以这项是固态硬盘特有的统计。Intel的SSD是每当向硬盘写入了65536个扇区,这一项的数据就+1。如果用HDTune等软件查看SMART时可以自己计算,Intel SSD Toolbox已经为你算好了,直接就显示了曾向SSD中写入过的数据量。

E2(226)磁头加载时间累计 Load ‘In’-time磁头组件运行时间的累积数,即磁头臂不在停靠区的时间,与(DE)项相似。

E3(227)扭矩放大计数 Torque Amplification Count主轴电机试图提高扭矩来补偿盘片转速变化的次数。当主轴轴承存在问题时,主轴电机会尝试增加驱动力使盘片稳定旋转。这个参数的当前值下降,说明硬盘的机械子系统出现了严重的问题。

E4(228)断电返回计数 Power-Off Retract Cycle数据值累计了磁头因设备意外断电而自动返回的次数,与(C0)项相似。

E6(230)GMR磁头振幅 GMR Head Amplitude磁头“抖动”,即正向/反向往复运动的距离。

E7(231)温度 Temperature温度的数据值直接表示了硬盘内部的当前温度,与(C2)项相同。

E7(231)剩余寿命 SSD Life Left剩余寿命是基于P/E周期与可用的备用块作出的预测。新硬盘为100;10表示PE周期已到设计值,但尚有足够的保留块;0表示保留块不足,硬盘将处于只读方式以便备份数据。

E8(232)寿命余量 Endurance Remaining寿命余量是指硬盘已擦写次数与设计最大可擦写次数的百分比,与(CA)项相似。

E8(232)预留空间剩余量 Available Reserved Space(Intel芯片)对于Intel的SSD来说,前边05项提到会保留一些容量来准备替换损坏的存储单元,所以可用的预留空间数非常重要。当保留的空间用尽,再出现损坏的单元就将出现数据丢失,这个SSD的寿命就结束了。所以仅看05项意义并不大,这一项才最重要。这项参数可以看当前值,新的SSD里所有的预留空间都在,所以是100。随着预留空间的消耗,当前值将不断下降,减小到接近临界值(一般是10)时,就说明只剩下10%的预留空间了,SSD的寿命将要结束。这个与(B4)项相似。

E9(233)通电时间累计 Power-On Hours对于普通硬盘来说,这一项与(09)相同。

E9(233)介质磨耗指数 Media Wareout Indicator(Intel芯片)由于固态硬盘的擦写次数是有限的,当到达一定次数的时候,就会出现大量的单元同时损坏,这时候预留空间也顶不住了,所以这项参数实际上表示的是硬盘设计寿命。Intel的SSD要看当前值,随着NAND的平均擦写次数从0增长到最大的设计值,这一参数的当前值从开始的100逐渐下降至1为止。这表示SSD的设计寿命已经终结。当然到达设计寿命也不一定意味着SSD就立即报废,这与闪存芯片的品质有着很大的关系。注:Total Erase Count全擦写计数是指固态硬盘中所有块的擦写次数的总和,不同规格的NAND芯片以及不同容量的SSD,其最大全擦写次数均有所不同。

F0(240)磁头飞行时间 Head Flying Hours / 传输错误率 Transfer Error Rate(富士通)磁头位于工作位置的时间。富士通硬盘表示在数据传输时连接被重置的次数。

F1(241)LBA写入总数 Total LBAs WrittenLBA写入数的累计。

F1(241)写入剩余寿命 Lifetime Writes from Host自硬盘启用后主机向硬盘写入的数据总量,以4个字节表示,每写入64GB字节作为一个单位。

F2(242)LBA读取总数 Total LBAs ReadLBA读取数的累计。某些SMART读取工具会显示负的数据值,是因为采用了48位LBA,而不是32位LBA。

F2(242)读取剩余寿命 Lifetime Reads from Host自硬盘启用后主机从硬盘读取的数据总量,以4个字节表示,每读取64GB字节作为一个单位。

FA(250)读取错误重试率 Read Error Retry Rate从磁盘上读取时出错的次数。

FE(254)自由坠落保护 Free Fall Protection现在有些笔记本硬盘具有自由坠落保护功能,当硬盘内置的加速度探测装置检测到硬盘位移时,会立即停止读写操作,将磁头臂复位。这个措施防止了磁头与盘片之间发生摩擦撞击,提高了硬盘的抗震性能。这个参数的数据里记录了这一保护装置动作的次数。

免费磁盘数据恢复软件 Recuva 推荐

CF卡,不小心误删了视频和照片,还覆盖了几G,找了好多个软件,N多的软件说免费,但是最后恢复基本上都要钱冲会员或者购买软件,扫描还那么慢,试了都找不到文件。还有一些免费的不好用,

试了N多个,最后发现还是Recuva好用,力荐,扫码超快,直接恢复,个人使用还免费不要钱。支持U盘,机械硬盘,固态硬盘等等。

好东西要分享,   下载,rcsetup153

 

Cisco anyconnect 服务器搭建(服务器软件采用ocserv)注意本项目是基于Centos7操作系统

Cisco anyconnect 服务器搭建(服务器软件采用ocserv)注意本项目是基于Centos7操作系统

安装步骤

安装ocserv 服务器,请使用下面的脚本文件进行安装
https://raw.githubusercontent.com/chendong12/ocserv/master/ocserv_quick.sh

;

使用Radius来管理ocserv 服务器中的账号,即OCSERV对接Radius,请使用下面的脚本文件进行安装
https://github.com/chendong12/ocserv/blob/master/ocserv_radius_quickinstall.sh

;

服务器操作常用方法

  • 启动服务器方法: systemctl start ocserv
  • 停止服务器方法: systemctl stop ocserv
  • 重启服务器方法: systemctl restart ocserv

增加客户端账号的方法

  • /root/anyconnect/user_add.sh 通过脚本文件直接增加账号密码和证书文件
  • ocpasswd -c /etc/ocserv/ocpasswd user_name 增加用户名为user_name的账号,如果已经存在则修改其密码
  • cd /root/anyconnect ; mkdir user_name ; cd user_name ; ../gen-client-cert.sh user_name /root/anyconnect 只增加用户证书
  • ocpasswd -d user_name 删除user_name账号

配置 v2ray + WebSocket + TLS

安装配置 v2ray

v2ray 的安装很简单,安装脚本来自 fhs-install-v2ray,如要移除,请参考 README

// 安裝執行檔和 .dat 資料檔
# bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
Bash

安装好之后我们可以用 systemctl start v2ray 和 systemctl stop v2ray 来开启和关闭 v2ray

该脚本安装的 v2ray 的配置文件路径是 /usr/local/etc/v2ray/config.json,如果忘记了可以用 systemctl status v2ray 来查看。下面我们编写配置文件

{
  "inbounds": [
    {
      "port": 10000, # 该端口需要与后面 nginx 配置的端口一致
      "listen":"127.0.0.1", # 只监听 127.0.0.1,避免除本机外的机器探测到开放了 10000 端口
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "b831381d-6324-4d53-ad4f-8cda48b30811", # 此处填写生成的 uuid
            "alterId": 64
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
        "path": "/ray"
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}
Bash

直接赋值这个内容粘贴到 v2ray 的配置文件中即可,只有两个地方时要修改的,一个的端口(也可以不修改),一个是 idid 的生成可以到 https://www.uuidgenerator.net

证书的生成和自动续签

TLS 是需要证书的,这里我们使用 certbot 来帮我们申请免费的 Let's Encrypt 证书,Let's Encrypt 是一家免费,开放,自动化的证书颁发机构,官方文档参考 Let’s Encrypt 快速入门Let's Encrypt 官方建议使用 certbot 来进行证书的获取。安装 certbot 需要先安装 epel 仓库,命令如下:

$ sudo yum install epel-release

$ sudo yum install certbot
Bash

由于我们的 VPS 上并没有一个真实运行的网站(只是用来进行流量的伪装),所以我们需要用 certbot 的 standalone 参数来运行一个独立的网页服务器进行身份验证(certbot 需要确定你拥有域名指向的服务器的所有权),该网页服务器会使用 VPS 的 80 端口,所以你需要关闭 VPS 上的 web 服务器(比如 nginx)。申请证书的命令如下

# 添加免费SSL证书,example.com改为你购买的域名
certbot certonly --standalone -d example.com # 生成证书的时候会让你填一个邮箱,在证书快到期的时候会发邮件给你

# 安装成功后的证书路径
/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/privkey.pem

# 查看已经生成的证书
certbot certificates
Bash

这里注意,如果出现红字说生成失败,那么要检查一下域名解析填的 IP 是否正确,也可以在 VPS 中 ping 一下你的域名看看能不能 ping 通,并且指向的 IP 是不是当前 VPS 的 IP

vps-2021-certbot

如果你的域名解析正确并且能够在 VPS 上 ping 通,但是还是一直红字提示失败,那么你需要检查一下 VPS 的防火墙,可以用 systemctl status firewalld 来查看是否开启了防火墙。一般来说出现这种情况都是因为防火墙的开启,比较简单的解决方法就是关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld
Bash

如果你不想关闭防火墙可以试一试让防火墙开放指定端口(我是直接关闭防火墙的,该方法没有实际测试),以下命令均来自 Linux CentOS7 开启80,443端口外网访问权限

# 检查防火墙状态
firewall-cmd --state # running 表示启动 not running 表示未启动

# 开启端口外网访问 返回 success 表示开启成功 --permanent 表示永久生效,不加该参数则重启后失效
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent

# 开放多个端口
firewall-cmd --zone=public --add-port=80-85/tcp --permanent

# 关闭端口 返回 success 代表成功
firewall-cmd --zone=public --remove-port=80/tcp --permanent

# 重新载入 返回 success 代表成功
firewall-cmd --reload

# 查看端口是否成功开启 返回 yes 代表开启成功
firewall-cmd --zone=public --query-port=80/tcp
Bash

Let's Encrypt 的证书是免费的,但是每次证书的有效期只有 90 天,也就是我们至少在 90 天以内更新一次我们的证书,你可以到 VPS 上手动更新,命令时 certbot renew,还是要注意更新证书的时候需要关闭 nginx,否则会报 80 端口被占用。你用可以先用 certbot renew --dry-run 来检验是否能够成功更新,该命令只是检测,不会真的生成证书。

还有一个需要注意的点就是默认情况下只有证书有效期小于 30 天的时候才能进行更新,如果有效期超过 30 天则会更新失败。

如果每次手动更新太麻烦了,我们可以使用 crond 帮我们定期执行更新命令,首先进行安装并启动(vultr 的 VPS 默认已经安装了)

yum -y install vixie-cron
yum -y install crontabs
service crond start
Bash

crontab 可以用 cron 表达式帮我们定期执行一些命令,输入 crontab -e 就可以输入我们要定期执行的表达式了:

1 0 15 * * /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
Bash

表达式的前五个 * 或者数字是 cron 表达式,分别代表 分 时 日 月 年* 就代表  的意思,比如上面的 1 0 15 * * 表示每年每月的 15 号的 00 : 01 执行后面的命令。--pre-hook 和 --post-hook 则是 certbot 的两个参数表示在执行 renew 之前和之后的两个命令钩子,此处表示我们先关闭 nginx 在执行 renewrenew 完成后再启动 nginx

安装配置 nginx

配置了 TLS 需要一个 web 服务器,这里可以选择 nginxapache 或者 caddy,我使用的是 nginx

# 安装 nginx
yum -y install nginx

# 设置nginx的开机启动
systemctl enable nginx
Bash

nginx 的配置文件默认是 /etc/nginx/nginx.conf,不过我建议是在 /etc/nginx/conf.d 中创建一个独立的配置文件 v2ray.conf,方便管理。nginx.conf 会读取 conf.d 中的所有 conf 文件。创建好配置文件后写入如下配置

server {
  listen 443 ssl;
  listen [::]:443 ssl;

  ssl_certificate       /etc/letsencrypt/live/example.com/fullchain.pem; # 此处的路径写你生成的证书路径
  ssl_certificate_key   /etc/letsencrypt/live/example.com/privkey.pem; # 此处的路径写你生成的证书路径
  ssl_session_timeout 1d;
  ssl_session_cache shared:MozSSL:10m;
  ssl_session_tickets off;

  ssl_protocols         TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers           ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
  ssl_prefer_server_ciphers off;

  server_name           your.domain; # 你的域名
    location /ray { # 与 V2Ray 配置中的 path 保持一致
      if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
          return 404;
      }
      proxy_redirect off;
      proxy_pass http://127.0.0.1:14400; # 这里的端口写你在 v2ray 中配置的端口
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
      # Show real IP in v2ray access.log
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
Bash

需要修改的地方我已经在注释中表名,请仔细修改,注意分号。编写完成后我们用 nginx -t 来测试配置文件是否有语法错误,一般如果显示如下命令则表示语法没问题,我们可以重启 nginx

nginx: the configuration file /opt/homebrew/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /opt/homebrew/etc/nginx/nginx.conf test is successful

systemctl restart nginx
Bash

caddy 是一个比较新的用 golang 实现的 web 服务器,我不是很熟悉,不过它可以自动签发 https 证书,这一点来说比较方便,如果你不想自己配置证书可以使用 caddycaddy 的配置参考 新 V2Ray 白话文指南

SELinux

上面的步骤都执行完了,一般来说我们的配置就已经完成了,此时在客户端上正确配置就能够访问 Google 了。如果此时你的 v2ray 客户端显示服务器连接正常,但是你还是不能访问 Google,很可能是 SELinux 的问题,此时我们只要去 /var/log/nginx/ 查看 access.log 可以看到很多的 Permission Denied,说明 VPS 收到了我们的请求但是由于 SELinux 无法转发给 v2ray,此时我们可以关闭 SELinux,也可以直接执行 setsebool -P httpd_can_network_connect 1 来开启内网转发的权限。

关于 SELinux 的介绍可以参考 阿里云

clash

我原来在 Mac 上一直用的是 V2rayU 作为客户端的图形界面代理工具,这个工具一直都用的挺好。最近看了看 clash 相关的图形界面代理工具,包括 Clash for WindowsClashX 和 ClashX Pro,其中 ClashX 是开源的,其他都是闭源的,clash 有个 premium-core 也是闭源的。我当时就是觉得界面比较好看所以试了试 ClashX Pro,不过使用后遇到了不少问题,首先是没有文档,全部靠 clash 自身的文档,ClashX 的 Github 仓库也不能提 issueClashX Pro 更是仓库都没有,只是在微软的 App Center 里面有下载和 release note,遇到问题只能到 Github 仓库中提一个 discussion 里面提一个,大概率没人管。

ClashX Pro 支持 clash premium-core,主要是支持一个 tun mode,可以代理电脑中所有的 tcp 和 udp 流量。这个我使用需求不大,需要代理的软件单独设置就可以。另一个功能就是支持一个 rule provider 功能,这个比较有用,之前用 V2rayU 的时候有 pac 模式,有一个默认的 GFW list ,基本上我们配置完 vmess 就可以使用了。在 clash 这里基本每个规则都得自己配置,rule provider 让我们可以用一些别人配置好的 rule-set,这样就比较方便,有些 rule-set 是可以自己更新的(SS-Rule-Snippet 和 clash rules 是两个比较好的 rule 配置)。但是在使用 ClashX Pro 的时候还遇到两个比较严重的问题,一个就是切换有线和无限会由于 fake id 的原因无法上网,还有就是内存占用非常高,刚开就 180m 的内存占用,后面还会一直增加,不知道为什么一个代理工具这么高的内存你占用。使用 ClashX 则相对较低只有几十兆,V2rayU 只有十几兆。目前我使用的是 ClashX ,比较麻烦的就是 rule,得自己手填一堆。M1 芯片的电脑还有个方法就是安装手机上用的 shadowrocket,必须用美服 apple id 才能下载。

最后就是配置终端代理,原来我都是用 curl cip.cc 进行测试,其实这个测试结果完全就是看你 curl 这个地址是否走了代理,如果在代理工具中配置了这个地址直连,那么得到的结果肯定还是真实的 IP 而不是代理服务器 IP,可以参考 请问clashx怎么设置终端代理呢? 这个 issue,用 curl -vv https://www.google.com 来进行测试。

总结

这个新版本的 v2ray 的配置总结了我最近配置时候遇到的一些问题,按照这一套走下来应该是没有什么问题,如果你还有其他疑问,欢迎评论或者给我邮件。

Nextcloud使用OCC命令重置密码

OCC命令的用法
occ命令是ownCloud/Nextcloud的命令行界面。您可以使用occ执行许多常见的服务器操作,例如安装和升级ownCloud/Nextcloud,管理用户,加密,密码,LDAP设置等。

一般格式是这样的:

sudo -u www-data php occ [options] [arguments]

 

重置密码

user相关命令:

 user
  user:add                            添加一个用户
  user:delete                         删除特定用户
  user:disable                        禁用特定用户
  user:enable                         激活特定用户
  user:info                           显示用户信息
  user:lastseen                       显示用户最后登陆了时间
  user:list                           列出所有用户
  user:report                         显示有多少用户访问
  user:resetpassword                  为一个用户重置密码
  user:setting                        读取和修改用户设置

我们需要用的是user:reserpassword。

命令格式为为下

sudo -u www-data php occ user:resetpassword 用户名

实例

要重置密码之前,我们要先知道要给哪个用户重置密码。

sudo -u www-data php occ user:list

重置用户admin的密码

sudo -u www-data php occ user:resetpassword admin

然后会提示输入新密码(输入的密码不会显示)按回车确认密码。

如果输入的密码比较简单,你会得到以下提示,那么你需要换一个更复杂的密码。

重置成功: