CIFS/SMB 操作所需的 TCP/IP 端口

CIFS/SMB 操作所需的 TCP/IP 端口

如果我想在两台受防火墙保护的计算机之间允许 Windows 网络驱动器,我需要打开端口 137-139 吗?还是端口 445 就足够了?我必须提交表单并获得批准才能打开防火墙端口,而且我不想要求打开比我需要的更多的端口。这里的所有机器都是 Windows XP 或更高版本。

注意:当我说“Windows 网络驱动器”时,我不完全确定我指的是 SMB 还是 CIFS,并且我不完全清楚这两种协议之间的区别。

答案1

端口 137-139 用于 NetBios/名称解析。如果没有它,您将不得不通过 IP 地址而不是 NetBIOS 名称来访问计算机。示例\\192.168.1.100\share_name反对\\my_file_server\share_name

因此,如果您只能使用 IP 地址,则端口 445 就足够了。

答案2

此配置对我有用:137/UDP、138/UDP、139/TCP 和 445/TCP。来源和其他信息位于:http://www.icir.org/gregor/tools/ms-smb-protocols.html

这些是我的 Samba 服务器的 iptables 规则:

# The router doesn't need SMB access.
-A INPUT -s 192.168.1.1 -p udp --dport 137 -j REJECT
-A INPUT -s 192.168.1.1 -p udp --dport 138 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 139 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 445 -j REJECT

# Actual Samba ports
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT

相关内容