步骤
-
编辑 Samba 配置文件
bash
sudo nano /etc/samba/smb.conf
-
在 [global] 段中添加(或修改)以下两行
ini
interfaces = 10.168.1.4/24 enp3s0-ovs
bind interfaces only = yes
interfaces 可以指定 IP 段或网卡名,多个项用空格分隔。
bind interfaces only = yes 强制 Samba 只监听 interfaces 中列出的接口,避免它误回环到 127.0.0.1。
-
保存文件并重启 Samba 服务
bash
sudo systemctl restart smbd
-
验证监听状态
bash
sudo ss -tulpn | grep -E ':(139|445)'
此时应该看到类似以下输出,显示 10.168.1.4:445 和 10.168.1.4:139 处于监听状态:
text
tcp LISTEN 0 50 10.168.1.4:445 0.0.0.0:* users:(("smbd",pid=xxx,fd=xx))
tcp LISTEN 0 50 10.168.1.4:139 0.0.0.0:* users:(("smbd",pid=xxx,fd=xx))
-
从局域网其他设备测试
- Windows:在资源管理器地址栏输入
\\10.168.1.4 并回车。
- Mac:访达菜单栏“前往”→“连接服务器”,输入
smb://10.168.1.4。
2. 解决 Web 界面显示错误 IP 的问题
飞牛 NAS 管理界面显示的“连接方式”中 IP 地址为 172.17.0.1,这是 Docker 网桥 docker0 的 IP,而不是你的物理网卡 IP。出现这种情况通常是因为:
- 系统在获取本机 IP 时,默认选择了第一个非回环接口(
docker0 往往排在物理网卡前面)。
- 但 这只是一个显示问题,并不影响实际连接。只要 SMB 服务正确监听了物理 IP,你就可以使用物理 IP 访问,不必理会界面上显示的 IP。
如果你希望界面显示正确的物理 IP,可以尝试调整网络接口顺序或修改 Docker 网桥的 IP 段(使其不与物理网段相同,并让物理网卡成为第一个非回环接口)。不过这样做并非必须,且可能涉及 Docker 配置改动,请谨慎操作。
(可选)修改 Docker 网桥 IP 段
如果你的 Docker 网桥 172.17.0.1 干扰了界面的 IP 显示,可以将其改为其他不与物理网段冲突的私有网段(例如 192.168.100.1/24)。但请注意:修改 Docker 网桥 IP 会重启 Docker 服务,所有容器网络将短暂中断。
-
编辑 /etc/docker/daemon.json(如果文件不存在则新建):
bash
sudo nano /etc/docker/daemon.json
-
添加或修改 bip 参数:
json
{
"bip": "192.168.100.1/24"
}
确保 JSON 格式正确,如果有其他配置项,用逗号分隔。
-
重启 Docker:
bash
sudo systemctl restart docker
-
重启后,docker0 的 IP 会变成 192.168.100.1,飞牛 NAS 界面可能会自动刷新为物理 IP(因为 192.168.100.0/24 与物理网段不同,系统可能不再优先选择它)。但这不是绝对保证,不同版本的飞牛系统行为可能不同。
3. 防火墙检查(如需)
如果你的 NAS 启用了防火墙(如 ufw),请确保放行 SMB 端口:
bash
sudo ufw allow from 10.168.1.0/24 to any port 139,445 proto tcp
总结
- 核心问题:Samba 只监听
127.0.0.1,导致局域网无法访问 → 修改 /etc/samba/smb.conf,强制监听物理 IP。
- 次要问题:Web 界面显示错误的 IP 地址 → 不影响实际连接,直接使用物理 IP 访问即可。如介意,可尝试修改 Docker 网桥 IP 段。
- 操作完成后,局域网其他设备即可通过
10.168.1.4 正常访问 SMB 共享。
如果按上述步骤操作后仍有问题,请提供修改后的 /etc/samba/smb.conf 中 [global] 部分的内容,以及执行 sudo ss -tulpn | grep -E ':(139|445)' 的输出,以便进一步排查。