我有一个 nbd 服务器设置,其配置如下
[generic]
user = nbd
group = nbd
port = 98745
[export]
exportname = /dev/ubuntu-vg/lv0
authfile = /etc/nbd-server/allow
没有允许文件,这也可以完美运行。
添加以下允许文件后
10.0.0.0/24
我得到的 IP 是 10.0.0.10
Negotiation: ..Error: Connection not allowed by server policy. Server said: Access denied by server configuration
并在服务器上
Spawned a child process
virtstyle ipliteral
connect from 10.0.0.10, assigned file is /dev/ubuntu-vg/nfs-lv
client address does not match 2/10: address family mismatch (IPv4 vs IPv6?)
message repeated 2 times: [ client address does not match 2/10: address family mismatch (IPv4 vs IPv6?)]
Client '10.0.0.10' is not authorized to access
Negotiation failed: Connection reset by peer
有什么想法吗?根据文档,我被难住了这里这应该按原样工作。为了彻底起见,我还将 127.0.0.1 和 10.0.0.10 添加到允许文件中并收到相同的结果,并且分别尝试了每一行。
我知道 IP 检查并不完全安全,但如果它能让恶意行为者的工作变得更加困难,我愿意启用它。请确保建议使用新样式格式。
答案1
这刚刚发生在我身上,经过反复尝试后我发现了一些新手错误:
- 配置文档上说的是字符串,但不要把它放在引号中,那样不行。
- Authfile =(= 右侧没有任何内容)将开放给所有人访问。
- “服务器策略不允许连接”——这实际上意味着它没有文件的读取权限,或者导出的文件名/路径不正确。
- 如果您在命令行上使用 -d 启动服务器,则调试服务器会更容易,
nbd-server -d -C /etc/nbd.conf
这样您就可以看到任何错误。
我注意到您导出的文件“/dev/ubuntu-vg/lv0”与日志“/dev/ubuntu-vg/nfs-lv”中分配的文件不匹配
这是我正在使用的 nbd.conf,不需要 auth 文件,因为我将其定义为空。我使用的是 3.21 版本
[generic]
allowlist = true
listenaddr = your.ip.add.ress
[archiso]
exportname = /z/systemrescue-9.00-i686.iso
authfile =
readonly = true
port = 10809
祝你好运!