如何在 smb.conf 中指定 IPv6 链路本地绑定地址?

the*_*472 8 samba ipv6

使用 samba 4.1.17-Debian 我尝试了以下 smb.conf 条目来将 samba 绑定到链接本地 ipv6 地址

interfaces = fe80::d270:36a5:ac03:37ea%br0 fe80::/10 ::1
bind interfaces only = yes
Run Code Online (Sandbox Code Playgroud)

但使用 netstat 检查只显示 smbd 监听 ::1

该手册指出,除了可以指定接口名称地址或地址+掩码外,还可以指定任何一种方法。


更新配置:

# ip addr show dev br0 | grep -c fe80 
1

# smb.conf
bind interfaces only = yes
interfaces = 192.168.0.0/16 ::1 127.0.0.1 fe80::%br0/64

# smbd --version
Version 4.5.12-Debian

# netstat -lnp | grep smb
tcp        0      0 192.168.0.3:139         0.0.0.0:*               LISTEN      17048/smbd          
tcp        0      0 127.0.0.1:139           0.0.0.0:*               LISTEN      17048/smbd          
tcp        0      0 192.168.0.3:445         0.0.0.0:*               LISTEN      17048/smbd          
tcp        0      0 127.0.0.1:445           0.0.0.0:*               LISTEN      17048/smbd          
tcp6       0      0 ::1:139                 :::*                    LISTEN      17048/smbd          
tcp6       0      0 ::1:445                 :::*                    LISTEN      17048/smbd  
Run Code Online (Sandbox Code Playgroud)

Mar*_*mpf 7

经过数小时的努力,尝试、错误和阅读源代码。

一切正常,但您必须正确指定。使用 IPv6 LinkLocal 地址时,您必须使用“%”表示法和最后的前缀长度指定接口。

Interfaces = {Full-IPv6-address}%{interface}/{prefix length}
Run Code Online (Sandbox Code Playgroud)

smb.conf(示例):

interfaces = fe80::114%eth0/64
Run Code Online (Sandbox Code Playgroud)

  • @the8472_配置中网络掩码的要点不是您可以指定一个掩码并且它会选择属于该掩码的任何地址吗?_我同意你的观点。我也尝试过。也许我们应该问问 Samba 团队。 (2认同)