Synology群晖NAS如何安装iperf3内网测速工具 非Docker运行模式

几经搜索,发现了群晖的Diagnosis Tool工具,里面有78个工具,其中就包括iperf3,方法很简单。

群晖NAS内网速度测试

  1. SSH登录群晖NAS,并切换到管理员权限
    $ sudo -i
  2. 安装Diagnosis Tool,
    $ sudo synogear install
  3. 运行
    $ /var/packages/DiagnosisTool/target/tool/iperf3 -c 192.168.188.1

群晖NAS外网速度测试

  • 运行:/var/packages/DiagnosisTool/target/tool/speedtest-cli.py
  • 会在结果可以找到Download: 138.89 Mbit/s;Upload: 63.01 Mbit/s(这是我千兆移动的测试结果)

如果不想使用synogear了, 一个命令就可移除:

$ sudo synogear remove

78个群晖的Diagnosis Tool工具命令行参考

/var/packages/DiagnosisTool/target/tool/addr2name
/var/packages/DiagnosisTool/target/tool/arping
/var/packages/DiagnosisTool/target/tool/ash
/var/packages/DiagnosisTool/target/tool/bash
/var/packages/DiagnosisTool/target/tool/cifsiostat
/var/packages/DiagnosisTool/target/tool/clockdiff
/var/packages/DiagnosisTool/target/tool/dig
/var/packages/DiagnosisTool/target/tool/domain_test.sh
/var/packages/DiagnosisTool/target/tool/file
/var/packages/DiagnosisTool/target/tool/fix_idmap.sh
/var/packages/DiagnosisTool/target/tool/free
/var/packages/DiagnosisTool/target/tool/gcore
/var/packages/DiagnosisTool/target/tool/gdb
/var/packages/DiagnosisTool/target/tool/gdbserver
/var/packages/DiagnosisTool/target/tool/iftop
/var/packages/DiagnosisTool/target/tool/iostat
/var/packages/DiagnosisTool/target/tool/iotop
/var/packages/DiagnosisTool/target/tool/iperf
/var/packages/DiagnosisTool/target/tool/iperf3
/var/packages/DiagnosisTool/target/tool/kill
/var/packages/DiagnosisTool/target/tool/killall
/var/packages/DiagnosisTool/target/tool/ldd
/var/packages/DiagnosisTool/target/tool/lsof
/var/packages/DiagnosisTool/target/tool/ltrace
/var/packages/DiagnosisTool/target/tool/mpstat
/var/packages/DiagnosisTool/target/tool/name2addr
/var/packages/DiagnosisTool/target/tool/ncat
/var/packages/DiagnosisTool/target/tool/ndisc6
/var/packages/DiagnosisTool/target/tool/nethogs
/var/packages/DiagnosisTool/target/tool/nfsiostat-sysstat
/var/packages/DiagnosisTool/target/tool/nmap
/var/packages/DiagnosisTool/target/tool/nping
/var/packages/DiagnosisTool/target/tool/nslookup
/var/packages/DiagnosisTool/target/tool/perf-check.py
/var/packages/DiagnosisTool/target/tool/pgrep
/var/packages/DiagnosisTool/target/tool/pidof
/var/packages/DiagnosisTool/target/tool/pidstat
/var/packages/DiagnosisTool/target/tool/ping6
/var/packages/DiagnosisTool/target/tool/ping
/var/packages/DiagnosisTool/target/tool/pkill
/var/packages/DiagnosisTool/target/tool/pmap
/var/packages/DiagnosisTool/target/tool/ps
/var/packages/DiagnosisTool/target/tool/pstree
/var/packages/DiagnosisTool/target/tool/pwdx
/var/packages/DiagnosisTool/target/tool/rarpd
/var/packages/DiagnosisTool/target/tool/rdisc6
/var/packages/DiagnosisTool/target/tool/rdisc
/var/packages/DiagnosisTool/target/tool/rltraceroute6
/var/packages/DiagnosisTool/target/tool/sa1
/var/packages/DiagnosisTool/target/tool/sa2
/var/packages/DiagnosisTool/target/tool/sadc
/var/packages/DiagnosisTool/target/tool/sadf
/var/packages/DiagnosisTool/target/tool/sar
/var/packages/DiagnosisTool/target/tool/sh
/var/packages/DiagnosisTool/target/tool/sid2ugid.sh
/var/packages/DiagnosisTool/target/tool/slabtop
/var/packages/DiagnosisTool/target/tool/sockstat
/var/packages/DiagnosisTool/target/tool/speedtest-cli.py
/var/packages/DiagnosisTool/target/tool/strace
/var/packages/DiagnosisTool/target/tool/sysctl
/var/packages/DiagnosisTool/target/tool/sysstat
/var/packages/DiagnosisTool/target/tool/tcpdump
/var/packages/DiagnosisTool/target/tool/tcpdump_wrapper
/var/packages/DiagnosisTool/target/tool/tcpspray6
/var/packages/DiagnosisTool/target/tool/tcptraceroute6
/var/packages/DiagnosisTool/target/tool/telnet
/var/packages/DiagnosisTool/target/tool/tload
/var/packages/DiagnosisTool/target/tool/top
/var/packages/DiagnosisTool/target/tool/tracepath
/var/packages/DiagnosisTool/target/tool/traceroute6
/var/packages/DiagnosisTool/target/tool/tracert6
/var/packages/DiagnosisTool/target/tool/uptime
/var/packages/DiagnosisTool/target/tool/vmstat
/var/packages/DiagnosisTool/target/tool/w
/var/packages/DiagnosisTool/target/tool/watch
/var/packages/DiagnosisTool/target/tool/zblacklist
/var/packages/DiagnosisTool/target/tool/zmap
/var/packages/DiagnosisTool/target/tool/ztee

参考链接


群晖DSM7通过Docker安装WordPress最新版

群晖DSM7通过Docker安装MySQL最新版(8.x)

搜索并下载镜像,如下:

注意:此处搜索MySQL,会出现两个MySQL镜像,很容易让人不知道该如何选择。其实这两个镜像一个是社区维护,一个是Oracle维护的版本。两者对于普通用户来说,差别不大,选择任意一个都可以。这里,我们选择社区维护的版本。

配置必要的参数信息:

存储位置配置如下:

存储位置(/var/lib/mysql)是镜像中MySQL的默认数据存储目录,位置(/etc/mysql/conf.d)是镜像中MySQL的配置文件目录,这两个目录位置不要变更,如果需要修改配置,则在主机的对应目录上进行调整。

MySQL 服务启动时会以 /etc/mysql/my.cnf 为配置文件,之后会导入 /etc/mysql/conf.d 目录中所有以 .cnf 为后缀的文件。这些文件会拓展或覆盖 /etc/mysql/my.cnf 文件中的配置。

因此可以在挂载至 MySQL 容器中的 /etc/mysql/conf.d 目录创建需要的配置文件。

比如如下:

[mysqld]
# 绑定地址禁止外网访问,安全性
bind-address = 127.0.0.1 

#设置server-id,必须唯一
server-id = 5

# 根据业务需要配置数据库只读
read_only = on
#super_read_only = on
#tx_read_only = on

log_bin = /var/logs/mysql/mysql-bin.log

relay-log = /var/logs/mysql/mysql-relay-bin

#如果日志开启了,最好把日志格式设置为row格式,这样如果主从数据不一致,可以尝试mysql flashback功能
binlog-format = row 

# 不同步哪些数据库  
binlog-ignore-db = mysql
  
binlog-ignore-db = test  

binlog-ignore-db = information_schema

# 缓冲区不足,可能会在还原数据的时候报错
# “ERROR 2006 (HY000) at line 241: MySQL server has gone away”
# 观察日志报告 Got a packet bigger than 'max_allowed_packet' bytes
# 这个缓冲区的大小必须大于或等于主库上设置的大小
max_allowed_packet = 256M

# 对于WordPress的情况,我们可能需要兼容低于 MySQL 5.x的数据库
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

对于MySQL的日志目录,需要进行特殊授权,否则没办法启动成功。

权限授权方式如下:

配置MySQL的默认登陆密码:

MYSQL_ROOT_PASSWORD 为手工添加,其它是安装 MySQL 自带的。MYSQL_ROOT_PASSWORD 用于设置 root 的密码。

查看系统运行状态:

设置登录的SHELL

如果想替换掉群晖自带的MariaDB,实现主从同步,可以参考家里ADSL上网无固定外网IP的群晖NAS安全实现与公网MySQL服务器主从同步

$ mysql -u root -p -e "CHANGE MASTER TO MASTER_HOST='10.8.0.1',MASTER_USER='repl1',MASTER_PASSWORD='slavepass',MASTER_LOG_FILE='mysql-bin.001558',MASTER_LOG_POS=8071938,master_ssl=1,master_ssl_ca='/etc/mysql/conf.d/ssl/ca.pem',master_ssl_capath='/etc/mysql/conf.d/ssl',master_ssl_cert='/etc/mysql/conf.d/ssl/client-cert.pem',master_ssl_key='/etc/mysql/conf.d/ssl/client-key.pem';"

默认Docker创建出来的MySQL是外部网络都可以访问的,这样不安全,我们可以通过群晖自带的防火墙禁止特定的端口访问来阻止外部IP的访问请求。

操作步骤如下:

参考链接


利用Ubuntu 18.04恢复群晖(Synology)NAS Raid1(DSM 6.x)硬盘数据

如果 Synology NAS 出现故障,则可以使用计算机和 Ubuntu live CD 轻松恢复其硬盘上存储的数据。确保 Synology NAS 硬盘上运行的文件系统是 EXT4 或 Btrfs,然后按照以下步骤恢复数据。此处我们以 Ubuntu 18.04 版本为例。

继续阅读利用Ubuntu 18.04恢复群晖(Synology)NAS Raid1(DSM 6.x)硬盘数据

群晖(Synology) DS718+希捷酷狼(Seagate IronWolf)12TB空闲发出持续噪声

群晖(Synology) DS718+ 使用希捷酷狼(Seagate IronWolf) 双12TB组成RAID1阵列,结果每隔几秒就会发出一阵子咳咳咳的噪声(有人说是炒豆子声音),尤其是夜深人静的时候,简直无法容忍。

网上查询了很久,发现这个问题非常普遍。

【硬盘噪音的由来】 
噪音虽然不是直接衡量硬盘性能的标准,但是经常听到一阵阵硬盘乱响毕竟不是一件让人舒心的事。纵观硬盘的发展历史,可以发现硬盘的噪音实际上和硬盘的转速是成正比的:转速每提高一个档次,噪音等级都会相应提高。 
尽管现在7200转的硬盘已经改进不少,成为了市场的主流,但噪音仍然是要高于5400转的硬盘。通常硬盘内部有两个电机,一个是驱动硬盘旋转的主轴电机,该电机过去是主要的噪音和热量源,但是现在有很多厂家开始使用液态轴承电机,它使用的是黏膜液油轴承,以油膜代替滚珠,可有效的降低因金属磨擦而产生的噪声和发热问题。 
同时液油轴承也可有效的吸收震动,使硬盘的抗震能力得到提高,由此硬盘的寿命与可靠性也可以得到提高。
但是另外还有一寻道电机,由于技术和成本上的原因,该电机还没有采用液态轴承电机,我们平时听到硬盘发出的“答,答”声,就是由它发出的。 

如果是DSM 6.2之前的系统,存在一个磁头反复复位唤醒的BUG,导致磁盘寿命明显缩短。这个原因是由于磁头的复位次数是有上限的,超过上限就容易故障。这个问题的表现就是SMART信息中的Load_Cycle_Count(Load/Unload_Count)异常增高。噪声的一个原因也就是磁头的复位声。

通常,硬盘制造商规定的Load_Cycle_Count(Load/Unload_Count)数目上限是600,000次,要是超过300,000次就会影响到正常的读写,再多的话就差不多要报废了。

参考群晖论坛的讨论 Seagate NAS drives constant clicking noises when idle

但是我的系统是DSM 6.2.2-24922 Update 4,这个问题已经被修复了,目前观察了一下,这个数字已经不再增长了。

这个噪声其实是读写频率低的情况下,磁头默认会回到一个安全区,在这个安全区,即使由于硬盘的意外震动,磁头发生磕碰,也不会磕碰到磁盘区域,提升震动安全。但是带来的问题是磁头进入或者离开安全区的时候,会发出一阵噪声。这个声音非常吵。这也就是为什么官方网站在回应 对于噪声很大的磁盘驱动器我应该怎么办? 说这个问题没办法解决的原因。

上述故障的典型表现是 当磁盘负载很高的时候,噪声低很多,低负载的时候,每隔几秒就会发出非常高的噪声

当年,迈拓的硬盘存在一个名为AMM的技术,可以通过一些指令如ATA指令或专用软件对它进行操作,使得寻道时的噪音跟空闲时差不多。但是,AMM降低了硬盘在速度变化瞬间的启动速度,在突发数据传输率上会对硬盘造成一定影响,使得硬盘的性能出现短暂下降。不过,从平均工作性能来说,由于持续传输率并不受启动速度的唯一影响,因此在整体性能上来说问题不大。 迈拓的Acoustic Management(声音管理)设置工具。

可惜,希捷酷狼(Seagate IronWolf)12TB已经不支持这个功能了。

亚马逊有个回答

Short answer: No Seagate Ironwolf Pro HDD's do not support the obsolete AAM protocols. They have rotational vibration sensors and dampers which make the drive quiet.

Long answer: Automatic Acoustic Management (AAM) was a feature popularized by WD in which the spin up rate of the disks in a HDD was slowed down to reduce vibration and noise. This feature was declared obsolete in the 2010 ATA protocols because it made the drive spin up slowly and increased access times. Seagate Ironwolf Pro NAS drives are made to run 24/7/365 @ 7200 rpm. These drives spin up as quickly as any HDD that I ever tried including 15,000 rpm drives. They are not "green drives" which spin down and back up to conserve energy. The drives have rotational vibration sensors and self correct for drive eccentricities. The result is that the Ironwolf and Ironwolf Pro HDD's are very quiet. I have WD Reds, HGST's, and Toshiba drives along with Seagate Ironwolf and Ironwolf Pro 4TB, 6TB, 8TB, 10TB and 12 TB drives. The Seagate Ironwolf and Ironwolf Pro drives are the quietest drives of all the drives I own.

虽然发出评论的人否认自己是托,但是从我一张12TB的WD红盘跟Ironwolf的对比来看,WD红盘安静的根本听不到噪声,Ironwolf吵得很。

虽然不支持AMM,但是官方提供的控制工具SeaChestUtilities (本站链接 SeaChestUtilities)中的SeaChest_Configure工具(这个工具解压缩到群晖chmod +x后就可以执行)提供了一个名为 --lowCurrentSpinup 的参数,这个参数的说明如下:

Low Current SpinUP  
     
     After System Up,
     Each time they go StandBy, it stop spinning the plates, and park its heads..

     But the problem is,
     Each time you request access, they will need to start spinning the plates, and moving heads to read/write..
 
     This start process, is painful, for power Consumption, and creates more vibration( it pushs several Amps in spikes for that.. )..

     So to minimise it,
     Seagate Disks have a Feature, to start spinning in a progressive way, instead of abrupt way.

看上去这个参数可以实现降噪功能,实际上没什么效果!执行命令如下:

$ sudo ./SeaChest_Configure_1170_11923_64 -d /dev/sg0 --lowCurrentSpinup low
==========================================================================================
 SeaChest_Configure - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2019 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_Configure Version: 1.17.0-1_19_23 X86_64
 Build Date: Jun 10 2019
 Today: Sun May 17 22:26:50 2020
==========================================================================================

/dev/sg0 - ST12000VN0008-2JH101 - ZHZ4XKKY - ATA
Set Low Current Spinup
Successfully Enabled Ultra Low Current Spinup!
A power cycle is required to complete this change.

low ,ultra两个参数都试过,没明显感觉到不同。

接下来,想在电源管理上看一下是不是能解决问题,比如降低转速等,结果依旧没用。老的Advanced Power Management (APM)被新的Extended Power Controls (EPC)功能取代了,具体解释如下:

There are, roughly, three general frameworks for disk drive power management.
The earlier specification is part of Advanced Power Management (APM) which
provided controls over many devices in a system, including disk drives.  APM
has since been replaced by a new framework called Extended Power Controls
(EPC).  Seagate's implementation of EPC began to phase in starting in 2010 and
is named by the marketing term "PowerChoice".  Seagate PowerChoice
technology'specifically developed for enterprise environments'offers more
energy efficiency and control over the amount of power hard drives consume.

尝试用工具中的电源管理模块,结果依旧根本设置不了,如下:

$ sudo ./SeaChest_PowerControl_1100__11923_64  -d /dev/sg0 --EPCfeature disable
==========================================================================================
 SeaChest_PowerControl - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2019 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_PowerControl Version: 1.10.0-1_19_23 X86_64
 Build Date: Jun 10 2019
 Today: Sat May 16 23:05:56 2020
==========================================================================================

/dev/sg1 - ST12000VN0008-2JH101 - ZHZ54BTB - ATA
Failed to send EPC command to /dev/sg1.
EPC Feature set might not be supported.
Or EPC Feature might already be in the desired state.

工具的功能挺全的,能查到硬盘的很多信息,如下:

$ sudo ./SeaChest_Configure_1170_11923_64 -d /dev/sg1 -i
==========================================================================================
 SeaChest_Configure - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2019 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_Configure Version: 1.17.0-1_19_23 X86_64
 Build Date: Jun 10 2019
 Today: Sun May 17 22:25:00 2020
==========================================================================================

/dev/sg1 - ST12000VN0008-2JH101 - ZHZ54BTB - ATA
	Model Number: ST12000VN0008-2JH101
	Serial Number: ZHZ54BTB
	Firmware Revision: SC60
	World Wide Name: 5000C500C3DDC97B
	Drive Capacity (TB/TiB): 12.00/10.91
	Native Drive Capacity (TB/TiB): 12.00/10.91
	Temperature Data:
		Current Temperature (C): 38
		Highest Temperature (C): 48
		Lowest Temperature (C): 31
	Power On Time:  5 days 2 hours 
	Power On Hours: 122.00
	MaxLBA: 23437770751
	Native MaxLBA: 23437770751
	Logical Sector Size (B): 512
	Physical Sector Size (B): 4096
	Sector Alignment: 0
	Rotation Rate (RPM): 7200
	Form Factor: 3.5"
	Last DST information:
		Time since last DST (hours): 22.00
		DST Status/Result: 0x0
		DST Test run: 0x2
	Long Drive Self Test Time:  19 hours 14 minutes 
	Interface speed:
		Max Speed (Gb/s): 6.0
		Negotiated Speed (Gb/s): 6.0
	Annualized Workload Rate (TB/yr): 2018.24
	Total Bytes Read (TB): 15.98
	Total Bytes Written (TB): 12.13
	Encryption Support: Not Supported
	Cache Size (MiB): 256.00
	Read Look-Ahead: Enabled
	Write Cache: Enabled
	Low Current Spinup: Ultra Low Enabled
	SMART Status: Unknown or Not Supported
	ATA Security Information: Supported
	Firmware Download Support: Full, Segmented, Deferred
	Specifications Supported:
		ACS-4
		ACS-3
		ACS-2
		ATA8-ACS
		ATA/ATAPI-7
		ATA/ATAPI-6
		ATA/ATAPI-5
		SATA 3.2
		SATA 3.1
		SATA 3.0
		SATA 2.6
		SATA 2.5
		SATA II: Extensions
		SATA 1.0a
		ATA8-AST
	Features Supported:
		Sanitize
		SATA NCQ
		SATA Rebuild Assist
		SATA Software Settings Preservation [Enabled]
		SATA Device Initiated Power Management
		Power Management
		Security
		SMART [Enabled]
		48bit Address
		PUIS
		GPL
		Streaming
		SMART Self-Test
		SMART Error Logging
		Write-Read-Verify
		DSN
		AMAC
		EPC
		Sense Data Reporting
		SCT Write Same
		SCT Error Recovery Control
		SCT Feature Control
		SCT Data Tables
		Host Logging
		Set Sector Configuration
		Storage Element Depopulation
		Seagate In Drive Diagnostics (IDD)

有个缩写简单记录一下

AMAC(Accessible Max Address Configuration feature set) 

根据论坛上 教你一招解决NAS噪音及速度问题!的经验,第1盘位是默认的系统盘,这导致硬盘不停的发出咳咳咳的寻道声。为了解决这个问题,(918+)遂决定在1、2盘位安装两块SSD,并将两块酷狼8TB转移到3、4盘位,这样一来,HDD不再是系统盘,在闲置状态下,便可启动休眠功能,大大降低噪音。

可惜718+只有两个盘位,918+的解决方法显然是行不通的。

我自己的群晖的噪声来源主要有如下几个

  • MariaDB 10开启了主从复制,主服务器上数据更新,会被自动同步到群晖上的MariaDB 10,导致磁盘被频繁唤醒,而磁盘寻道噪声很大!!
  • 群晖开启了SMB服务,局域网内的机器会自动连接导致磁盘被唤醒,虽然没有写入,但是网络请求会导致磁盘唤醒,依旧出现寻道声。
  • 系统盘安装在硬盘上,系统会定期唤醒磁盘执行读写操作。目前测试发现,关闭MariaDB 10, SMB 之后,硬盘可顺利休眠。

按理说,上面的问题,可以通过群晖的 SSD 缓存加速功能缓解,结果718+没有M.2插口,918+有两个内置的M.2插口。而外置通过eSata的接口挂载硬盘,是不能作为SSD 缓存加速的。具体信息参考 Synology’s DS718+ SSD caching is crippled/Which Synology NAS models support SSD cache?

目前能想到的办法是

继续阅读群晖(Synology) DS718+希捷酷狼(Seagate IronWolf)12TB空闲发出持续噪声

Synology(群晖)常见的配置项以及命令项

Apache2.2 相关配置与常见命令

# 目录相同链接位置 /usr/local/etc/apache22/conf/httpd22.conf
$ sudo vim /volume1/@appstore/Apache2.2/usr/local/etc/apache22/conf/httpd22.conf

# 重启 Apache2.2,有时候重启无效,此时请重启服务器
$ sudo /usr/syno/bin/synopkg restart httpd2.2

# 查看访问日志
$ sudo tail -f /var/log/httpd/apache22-access_log

# 查看错误日志
$ sudo tail -f /var/log/httpd/apache22-error_log

# DSM 7.x 查看错误日志
$ sudo tail -f /var/packages/Apache2.2/var/log/apache22-error_log

Apache2.4 相关配置与常见命令

# 目录相同链接位置 /usr/local/etc/apache24/conf/httpd24.conf
$ sudo vim /volume1/@appstore/Apache2.4/usr/local/etc/apache24/conf/httpd24.conf

# 重启 Apache2.4,有时候重启无效,此时请重启服务器
$ sudo /usr/syno/bin/synopkg restart httpd2.4

# 查看访问日志
$ sudo tail -f /var/log/httpd/apache24-access_log

# 查看错误日志
$ sudo tail -f /var/log/httpd/apache24-error_log

# DSM 7.x 查看错误日志
$ sudo tail -f /var/packages/Apache2.4/var/log/apache24-error_log

Nginx 相关配置与常见命令

# nginx 配置文件
$ sudo vim /etc/nginx/nginx.conf

# nginx 配置信息存储位置
$ sudo ls /usr/local/etc/nginx/conf.d

# 重启nginx
$ sudo synoservicecfg --restart nginx

# 查看日志
$ sudo tail -f /var/log/nginx/error.log

Web Station 相关配置与常见命令

# 默认网页服务器根目录

/volume1/web

继续阅读Synology(群晖)常见的配置项以及命令项

OpenMediaVault SMB/CIFS报错,无法连接,日志输出错误NT_STATUS_ACCESS_DENIED

OpenMediaVault SMB/CIFS配置完成之后,打开某些目录提示错误"找不到链接",其他目录正常。

修改配置文件"/etc/samba/smb.conf"中的"log level = 3",然后观察日志"tail -f /var/log/syslog",

观察到如下日志输出:

Aug 31 23:54:34 openmediavault smbd[2389]: [2019/08/31 23:54:34.006550,  3] ../source3/smbd/service.c:102(set_current_service)
Aug 31 23:54:34 openmediavault smbd[2389]:   chdir (/media/6357625f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/MyCloud) failed, reason: 权限不够
Aug 31 23:54:34 openmediavault smbd[2389]: [2019/08/31 23:54:34.006667,  3] ../source3/smbd/smb2_server.c:3097(smbd_smb2_request_error_ex)
Aug 31 23:54:34 openmediavault smbd[2389]:   smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_ACCESS_DENIED] || at ../source3/smbd/smb2_server.c:2449
Aug 31 23:54:34 openmediavault smbd[2389]: [2019/08/31 23:54:34.012733,  3] ../source3/smbd/service.c:1098(close_cnum)
Aug 31 23:54:34 openmediavault smbd[2389]:   longskys-mbp (ipv4:10.10.10.116:54656) closed connection to service IPC$
Aug 31 23:54:34 openmediavault smbd[2389]: [2019/08/31 23:54:34.014028,  3] ../source3/smbd/service.c:102(set_current_service)
Aug 31 23:54:34 openmediavault smbd[2389]:   chdir (/media/6357625f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/MyCloud) failed, reason: 权限不够
Aug 31 23:54:34 openmediavault smbd[2389]: [2019/08/31 23:54:34.014151,  3] ../source3/smbd/smb2_server.c:3097(smbd_smb2_request_error_ex)
Aug 31 23:54:34 openmediavault smbd[2389]:   smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_ACCESS_DENIED] || at ../source3/smbd/smb2_server.c:2449
Aug 31 23:54:34 openmediavault smbd[2389]: [2019/08/31 23:54:34.017951,  2] ../source3/smbd/service.c:1098(close_cnum)
Aug 31 23:54:34 openmediavault smbd[2389]:   longskys-mbp (ipv4:10.10.10.116:54656) closed connection to service MainBackup

不管如何修改,都搞不定,观察目录权限以及所有者信息,如下:

root@openmediavault:~# ls -la /media/
总用量 20
drwxr-xr-x   6 root root  4096 8月  25 00:03 .
drwxr-xr-x  24 root root  4096 8月  30 23:23 ..
drwxrwx---   1 root  1000  164 6月   2 14:37 6357625f-xxxx-xxxx-xxxx-xxxxxxxxxxxx
drwxrwsr-x+  4 root users 4096 8月  15  2017 9b5fcef5-xxxx-xxxx-xxxx-xxxxxxxxxxxx
drwxr-xr-x   2 root root  4096 5月  26  2015 cdrom
lrwxrwxrwx   1 root root     4 5月  26  2015 usb -> usb0
drwxr-xr-x   2 root root  4096 5月  26  2015 usb0

观察到正常的目录的权限是 root:users 而不正常的目录权限是 root:1000,于是执行权限修改,如下:

root@openmediavault:~# sudo chown root:users /media/6357625f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/
root@openmediavault:~# ls -la /media/
总用量 20
drwxr-xr-x   6 root root  4096 8月  25 00:03 .
drwxr-xr-x  24 root root  4096 8月  30 23:23 ..
drwxrwx---   1 root users  164 6月   2 14:37 6357625f-xxxx-xxxx-xxxx-xxxxxxxxxxxx
drwxrwsr-x+  4 root users 4096 8月  15  2017 9b5fcef5-xxxx-xxxx-xxxx-xxxxxxxxxxxx
drwxr-xr-x   2 root root  4096 5月  26  2015 cdrom
lrwxrwxrwx   1 root root     4 5月  26  2015 usb -> usb0
drwxr-xr-x   2 root root  4096 5月  26  2015 usb0

之后就可以正常访问了。

参考链接


家里ADSL上网无固定外网IP的群晖NAS安全实现与公网MySQL服务器主从同步

家里 `ADSL` 上网,没有办法分配固定外网 `IP` ,现在想使用群晖自带的`MariaDB` 安全实现与公网 `MySQL` 服务器主从同步。

最大的问题实际上是如果暴漏 `MySQL` 服务器的端口,但是不限制来源 `IP` 地址的话,会造成非常大的安全隐患。

但是, `ADSL` 恰恰不能提供固定的 `IP` 地址,我们需要解决这个问题。如果通过在公网数据库服务器上搭建 `OpenVPN` 服务器的方式,我们恰恰可以把内外网的设备影射到同一个子网中,而且 `OpenVPN` 提供的加密服务支持,刚刚好满足我们的安全需求。

注意一旦配置主从同步,磁盘的休眠会被MySQL的同步写入打断,导致磁盘不能正常休眠,毕竟正常情况下数据库是持续写入的,不存在很长时间的停顿。这样会导致磁盘周期性的咔咔寻道声,尤其是晚上。

噪声问题,参考 群晖(Synology) DS718+希捷酷狼(Seagate IronWolf)12TB空闲发出持续噪声

1. 参考 Ubuntu架设OpenVPN实现内网穿透 搭建整个的 `OpenVPN` 服务器。映射完成后,设备上会新增一个名为 `tun0` 的网卡设备。同时所有连接到 `VPN` 服务器的设备都被被影射到 `10.8.0.X` 的网段。 公网服务器的地址默认是 `10.8.0.1`,本文中, 群晖NAS的地址被设定为 `10.8.0.7`。

2. 配置防火墙规则,许可来自指定网卡指定地址的设备的访问。注意,此处一定要指定网卡为 `OpenVPN` 创建的虚拟网卡,否则造成安全隐患。

$ export slave_ip=10.8.0.7

#删除可能已经存在的配置,避免出现多条重复记录
$ sudo iptables -D INPUT -i tun0 -p tcp -s $slave_ip --dport 3306 -j ACCEPT
 
#增加配置,只允许特定地址访问数据库端口
$ sudo iptables -I INPUT -i tun0 -p tcp -s $slave_ip --dport 3306 -j ACCEPT

$ sudo iptables -L -n -v
 
#保存配置
$ sudo apt-get install iptables-persistent

#注意,iptables-persistent 与 ufw 冲突, 
#现象就是系统重启后执行 sudo ufw status 显示 inactive,
#但是sudo systemctrl ufw status 或sudo service ufw status 显示服务正常,
#实际上ufw并没有正常工作。
#如果两者同时安装,需要参考 https://www.mobibrw.com?p=29330 进行配置
 
$ sudo netfilter-persistent save
 
#配置被保存到/etc/iptables/rules.v4 /etc/iptables/rules.v6这两个文件下面,
#最好确认一下实际保存的内容,尤其是安装了denyhosts等其他安全软件的情况下,
#可能会记录了多余的规则,需要手工删除

3. 参照 ubuntu 16.04配置基于SSL的MySQL主从同步 配置服务器

4. 接下来是群晖NAS的配置

首先是群晖服务器上没有 `MySQL`,需要安装 `MariaDB` ,如下图:
继续阅读家里ADSL上网无固定外网IP的群晖NAS安全实现与公网MySQL服务器主从同步