我是 FreeBSD 的新手,想通过 iSCSI 制作虚拟磁盘服务。我在同一磁盘上创建数据集的快照,但我想在不同的磁盘(例如 NVMe 驱动器)上创建克隆以加快写入速度。是否可以?
我担心在同一磁盘上发生读取(数据集)/写入(克隆)时可能会降低性能。
谢谢。
我是 FreeBSD 的新手,想通过 iSCSI 制作虚拟磁盘服务。我在同一磁盘上创建数据集的快照,但我想在不同的磁盘(例如 NVMe 驱动器)上创建克隆以加快写入速度。是否可以?
我担心在同一磁盘上发生读取(数据集)/写入(克隆)时可能会降低性能。
谢谢。
编辑:这最终成为一个清理过程。运行zpool status -v
并清楚地读取池的扫描状态。
我有一台运行 FreeBSD 的 TrueNAS 服务器,今天早上 12 点,磁盘开始不断被读取。我认为这是一些快照任务,因此我禁用了快照并重新启动服务器,但每次重新启动服务器时,它都会继续从我的存储池中读取。我也停止了所有正在运行的监狱,磁盘仍然显示 IO(下面的屏幕截图是监狱正在运行,但它们看起来与监狱停止时相同)。
我无法弄清楚哪个进程导致了这个问题。我尝试使用top -m io
,但这显示没有读/写活动。
根据这个资源,top -m io
在 FreeBSD 上不起作用,所以我无法找出哪个进程正在从我的磁盘读取数据:
顶级 io 模式无法正确显示统计信息
我尝试使用 检查是否有任何正在运行的快照任务ps -aux | grep rsync
,但除了我的 grep 命令之外没有任何显示。
这是我检查过的一些资源:
top
)iotop
FreeBSD上没有)是否可以让 top 命令工作?我只想知道哪个进程正在从我的磁盘读取数据并将其杀死。
尚不清楚在以下宏中还需要转义哪些内容才能使其在 FreeBSD 上与 awk 或 sed 一起使用。
define(`RELAY_MAILER_ARGS', `TCP $h 2525')dnl
SMART_HOST
这是一个 awk 命令,它试图在配置下方的第 90 行插入上述行。
awk 'NR==90 { print "define(\`RELAY_MAILER_ARGS\', \`TCP $h 2525\')dnl"}1' example.com.mc
该命令导致以下错误:
Unmatched '"'.
未来的编辑注意:反引号/单引号不是错字。这是用于编写 Sendmail 配置宏的 m4 语言的一个古老怪癖:“m4 使用单引号(左“`”和右“'”)来引用参数”
附加说明sed
:在 FreeBSD 上使用时,八进制转义符似乎不起作用。在那种情况下,在那种情况下使用xNN
转义的十六进制字符。
我有一个运行 3 个硬盘的 RAID 的 FreeBSD。我面临监控其 RAID 的挑战 - 如果硬盘出现故障或出现一些我需要知道的问题。
所以,我现在做的第一件事是尝试了解 SmartCTL 的工作原理……我目前使用的命令是:
smartctl --scan -j - To scan my devices and generated a JSON Structured list.
smartctl -i /dev/device_name - To list informations about a single device
smartctl -a /dev/your-device - More information like errors and etc (I think i can use this in some way to grep only errors sections...)
SmartCTL 是否还有其他参数可以检查磁盘是否可写、是否处于活动状态以及其健康状态是否正常?
这个理解的主要目的是主要使用 SmartCTL 来生成数据,这些数据将用于 pfSense RAID Monitoring with Low Level Discovery for Zabbix Monitoring Software 的模板中......
任何帮助都将不胜感激。
我有一个运行良好的 OpenSMTPD 配置,并在其中添加了 dkimproxy。
一切运行良好,邮件测试器等都报告说我有正确的 DKIM 签名,我的电子邮件分数是 10/10 等。
问题是 ...
如果我尝试从 [email protected] 向 [email protected] 发送电子邮件,则邮件服务器进入循环并且邮件永远不会发送。我看到这个maillog
:
Nov 15 08:34:13 mail dkimproxy.out[38686]: DKIM signing - signed; message-id=<[email protected]>, signer=<[email protected]>, from=<[email protected]>
Nov 15 08:34:13 mail smtpd[33463]: 4dea90938ef29e98 smtp message msgid=0b62ff80 size=104666 nrcpt=1 proto=ESMTP
Nov 15 08:34:13 mail smtpd[33463]: 4dea90938ef29e98 smtp envelope evpid=0b62ff80eb408785 from=<> to=<[email protected]>
Nov 15 08:34:13 mail smtpd[33463]: 4dea9092f4274d88 mta delivery evpid=6fe8c750a74f16ac from=<> to=<[email protected]> rcpt=<-> source="200.100.240.135" relay="200.100.240.135 (mail.mydomain.com)" delay=1s result="Ok" stat="250 2.0.0 0b62ff80 Message accepted for delivery"
...并且它可能会一遍又一遍地循环 50 次 - 最终它放弃了这个错误:
Nov 15 08:34:18 mail smtpd[33463]: warn: loop detected
Nov 15 08:34:18 mail smtpd[33463]: 4dea9097226c93aa smtp failed-command command="DATA" result="500 5.4.6 Routing loop detected: Loop detected"
Nov 15 08:34:18 mail smtpd[33463]: 4dea90969c6cf495 mta delivery evpid=49514d020281ac48 from=<> to=<[email protected]> rcpt=<-> source="200.100.240.135" relay="200.100.240.135 (mail.mydomain.com)" delay=1s result="PermFail" stat="500 5.4.6 Routing loop detected: Loop detected"
我不知道问题是什么。仅当我向自己或在此邮件服务器上托管的具有此域的其他用户发送电子邮件时,才会发生这种情况。
# cat dkimproxy_in.conf
# specify what address/port DKIMproxy should listen on
listen 200.100.240.135:10025
# specify what address/port DKIMproxy forwards mail to
relay 200.100.240.135:10026
# cat dkimproxy_out.conf
# specify what address/port DKIMproxy should listen on
listen 200.100.240.135:10027
# specify what address/port DKIMproxy forwards mail to
relay 200.100.240.135:10028
# specify what domains DKIMproxy can sign for (comma-separated, no spaces)
domain mydomain.com
# specify what signatures to add
signature dkim(c=relaxed)
signature domainkeys(c=nofws)
# specify location of the private key
keyfile /root/dkim.private.key
# specify the selector (i.e. the name of the key record put in DNS)
selector selector1
# control how many processes DKIMproxy uses
# - more information on these options (and others) can be found by
# running `perldoc Net::Server::PreFork'.
#min_servers 5
#min_spare_servers 2
......这就是一切......谢谢。
编辑 - 这是 opensmtpd.conf:
table aliases file:/usr/local/etc/mail/aliases
filter check_dyndns phase connect match rdns regex \
{ '.*\.dyn\..*', '.*\.dsl\..*' } \
disconnect "550 no residential connections"
filter check_rdns phase connect match !rdns \
disconnect "550 no rDNS"
filter check_fcrdns phase connect match !fcrdns \
disconnect "550 no FCrDNS"
listen on 200.100.240.135 filter { check_dyndns, check_rdns, check_fcrdns }
listen on 200.100.240.135 port 10028 tag DKIM
listen on 200.100.240.135 port submission
action "local_mail" mbox alias <aliases>
action "relay_dkim" relay host smtp://200.100.240.135:10027
action "outbound" relay helo mail.mydomain.com
match from any mail-from "[email protected]" action "local_mail"
match tag DKIM for any action "outbound"
match for any action "relay_dkim"
match from any for domain "mydomain.com" action "local_mail"
match for local action "local_mail"
match from any auth for any action "outbound"
match for any action "outbound"
我在新安装的 PfSense 系统中没有互联网连接。
脚步:
mfsbsd
图像。mfsbsd
也有网络问题。根本无法下载任何东西或ping。UFS BIOS option
.http://192.168.10.22/ --> https://pfsense.domain.com/
)在 nginx 上配置了反向代理。之后我可以通过pfsense.domain.com
URL 访问 GUI,但登录后出现错误,我无法在 UI 中执行任何操作:检测到 HTTP_REFERER 未在系统 > 高级 ( https://pfsense.domain.com/ ) 中定义。如果不需要,可以在系统 > 高级 > 管理员访问中禁用此检查。
[2.5.2-RELEASE][[email protected]]/root: ifconfig
vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=800b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LINKSTATE>
ether xx:xx:xx:xx:xx:xx
inet6 xxxx::xxxx:xxxx:xxxx:xxxx%vtnet0 prefixlen 64 scopeid 0x1
inet 123.123.123.123 netmask 0xffffffff broadcast 123.123.123.123
media: Ethernet 10Gbase-T <full-duplex>
status: active
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
vtnet1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=800b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LINKSTATE>
ether xx:xx:xx:xx:xx:xx
inet6 xxxx::xxxx:xxxx:xxxx:xxxx%vtnet1 prefixlen 64 scopeid 0x2
inet 192.168.10.22 netmask 0xffffff00 broadcast 192.168.10.255
media: Ethernet 10Gbase-T <full-duplex>
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
enc0: flags=0<> metric 0 mtu 1536
groups: enc
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet 127.0.0.1 netmask 0xff000000
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
pflog0: flags=100<PROMISC> metric 0 mtu 33160
groups: pflog
pfsync0: flags=0<> metric 0 mtu 1500
groups: pfsync
[2.5.2-RELEASE][[email protected]]/root: netstat -rn
Routing tables
Internet:
Destination Gateway Flags Netif Expire
123.123.123.123 link#1 UHS lo0
123.123.123.123/32 link#1 U vtnet0
127.0.0.1 link#4 UH lo0
192.168.10.0/24 link#2 U vtnet1
192.168.10.22 link#2 UHS lo0
213.186.33.99 xx:xx:xx:xx:xx:xx UHS vtnet0
Internet6:
Destination Gateway Flags Netif Expire
::1 link#4 UH lo0
fe80::%vtnet0/64 link#1 U vtnet0
fe80::xxxx:xxxx:xxxx:xxxx%vtnet0 link#1 UHS lo0
fe80::%vtnet1/64 link#2 U vtnet1
fe80::xxxx:xxxx:xxxx:xxxx%vtnet1 link#2 UHS lo0
fe80::%lo0/64 link#4 U lo0
fe80::1%lo0 link#4 UHS lo0
[2.5.2-RELEASE][[email protected]]/root: ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host
[2.5.2-RELEASE][[email protected]]/root: ping serverfault.com
ping: cannot resolve serverfault.com: Host name lookup failure
/etc/defaults/rc.conf
和选项defaultrouter
并gateway_enable
设置为NO
. 我将它们更改为YES
,但重新启动后没有帮助。将虚拟 FreeBSD 12.2 系统升级到 13.0-p3 后,监狱内的服务流量(通过 Apache 2.4 反向代理)被阻止。这是一个 Hyper-V 虚拟服务器,第二个显示相同的问题(另一个是商业 VPS,虚拟机管理程序类型未知)。
起初,我认为这将是一个 PF 问题,因为停止 PF 解决了这个问题。我在 PF 日志中查找被阻止的流量,但找不到任何东西。
后来,我注意到创建一个新的监狱(使用 ezjail)不起作用,因为没有创建软链接。此外,访问监狱中的服务也不起作用,因为这在 12.2 监狱中不是问题。
作为测试,我从头开始创建了一个新的物理 v13 服务器并将其配置为升级后的服务器。一切正常。其次,我创建了另一个 Hyper-V 虚拟系统(在同一主机上)并从头开始安装并将其配置为升级后的系统(复制 /etc/rc.conf 和 /usr/local/etc/pf_rules 包含我的防火墙规则和更改了 IP 地址)。所有这一切都按其应有的方式工作。
所以我被几个 v12.2 系统困住了,我想升级到 v13.0,但是在同一个问题上 2 次尝试都失败了:监狱中的服务不再可以访问。看起来它与 PF 有关(因为停止它可以解决问题)但又没有(因为新安装的系统上的相同配置可以正常工作)。由于设置和配置是相同的,我找不到任何导致这种情况的原因。
还有其他方法可以找出这里出了什么问题吗?(就像我可以启用的其他一些日志记录一样,以查看为什么创建新监狱没有错误但呈现非工作监狱,因为没有创建 /basejail/* 的链接)
将我的 FreeBSD 系统从 12.2 升级到 13.0-p3 后,PF 阻止了所有流向我的监狱的流量。禁用 PF 时,一切正常(除了不受保护;))
我试图通过设置'block in log all'来弄清楚是什么规则阻止了这个流量,但是除了一些明显的多播内容之外,没有任何东西可以解释为什么这个流量被阻止了。
同样,在 12.2 版本下一切正常之前。我确实找到了一些关于 v13 现在过滤 VLAN 而不是 lo0 的文章,但我不使用任何 VLAN。
我应该进一步寻求什么方向?
2021 年 7 月 15 日更新:
为清楚起见:这是我的 pf_rules 文件:
set block-policy return
set optimization aggressive
set skip on { lo0, lo1, lo2, lo3, lo4, lo5 }
ext_if=hn0
ext_address="{ 192.x.x.x, 2001:981:x.x::x }"
ext_services = "{ ssh, http, https, smtp, smtps }"
tcp_services = "{ ftp, ssh, domain, ntp, www, smtp, smtps, submission, http, https,nfs}"
udp_services = "{ domain, ntp, nfs }"
icmp6_types="{ 2, 128 }" # packet too big, echo request (ping6)
icmp6_types_ext_if="{ 128, 133, 134, 135, 136, 137 }"
jail_net = "192.168.1.0/24"
jail_services = "{ mysql, http, smtp, 587, 3000 }"
table <sshguard> persist
scrub in all
nat pass on $ext_if from $jail_net to any -> $ext_address
block in log on $ext_if proto tcp from <sshguard> to any port ssh label "ssh bruteforce"
block in log all
pass in quick from <pf_whitelist> flags S/SA synproxy state
pass out on $ext_if inet6 proto icmp6 all icmp6-type echoreq keep state
pass out on $ext_if inet proto udp to port 33433:33626
pass out on $ext_if inet6 proto udp to port 33433:33626
pass in on $ext_if inet6 proto ipv6-icmp icmp6-type $icmp6_types keep state
pass in on $ext_if inet6 proto ipv6-icmp from any to { ($ext_if ), ff02::1/16 } icmp6-type $i
cmp6_types_ext_if keep state
pass in on $ext_if proto tcp from any to $ext_address port $ext_services keep state
pass in on $ext_if inet6 proto tcp from any to $ext_address port $ext_services keep state
pass out on $ext_if inet proto tcp to any port $tcp_services keep state
pass out on $ext_if inet6 proto tcp to any port $tcp_services keep state
pass out on $ext_if inet6 proto udp to any port $udp_services
pass proto udp to any port $udp_services keep state
pass in proto tcp from any to $jail_net port $jail_services keep state
pass out proto tcp from $jail_net to any port $jail_services keep state
pass inet proto icmp from any to any
这已经工作了很多年,直到 FreeBSD 13
我已经在 FreeBSD 12 中成功安装了 perl5 和 apache24。然后我启用了 apache24/etc/rc.conf
并看到 index.html 放置在 path 中/usr/local/www/apache24/data
。然后在文件中/usr/local/etc/apache24/httpd.conf
我取消了该行的注释
AddHandler cgi-script .cgi
在里面<IfModule mime_module>
并且也在.pl
行尾添加。
然后我在同一个文件中添加了这一行
Options FollowSymLinks +ExecCGI
行后
Options Indexes FollowSymLink
并重新启动 Apache,但收到错误
要么所有选项都必须以 + 或 - 开头,要么没有选项可以
所以我在FollowSymLink
没有任何错误的情况下添加了这一行并重新启动了 Apache。但是,如果我点击链接,mydomain.com/test.pl
我仍然会看到我的 PERL 代码显示为纯文本而不是执行。
我的 PERL 代码是
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "Hello world!";
如果我通过命令在命令行中运行代码,perl /usr/local/www/apache24/data/test.pl
我会收到两行Content-type: text/html
,即Hello world!
. 该文件的权限为 755。
我还能做些什么来解决问题?
我们需要通过 WAN 接口启用 pfSense ssh(端口 22)访问,以使用 pfSense 的终端/控制台/shell 执行某些配置。
已经采取的行动...
14) Enable Secure Shell (sshd)
;easyrule pass wan tcp any any 22
以允许访问 ssh(端口 22)。12) PHP shell + pfSense tools
我们执行命令...$config['system']['ssh']['enable'] = "enabled";
write_config();
exec
…………
$config['system']['enablesshd'] = "true";
write_config();
exec
... 和...
playback enablesshd
;
情况...
pfctl -d
我们就可以正常访问ssh(22端口)了。重要提示:我们需要通过 pfSense 的终端/控制台/shell 启用对 sshd(端口 22)的访问。
PLUS:我们知道可以通过 gui (http/web gui) 允许访问,但我们需要通过 pfSense 终端/控制台/shell 允许此初始访问。
注意:我们知道不建议通过 WAN 接口上的 ssh(端口 22)进行访问,但最初对我们来说是必要的。
谢谢!=D