我的办公室里有几台运行 Windows XP 的计算机。它们都连接到大楼提供的 WAN(墙上插座)(DHCP,掩码 255.255.252.0)。我在计算机上设置了一个共享文件夹,以便同一组中的所有其他计算机都可以访问它。我已经使用这个配置很长时间了。
最近,我试图设置路由器。我将路由器的 WAN 端口连接到墙上插座,将 NIC 连接到路由器的 LAN 端口,将路由器设置为 DHCP 模式(192.168.0.100/255.255.255.0 到 192.168.0.110 /255.255.255.0)。
我关闭了所有防火墙(Windows 防火墙和路由器内置防火墙),网卡的 IP 设置为 DHCP。如果我ipconfig /all
,我会看到网卡分配了 IP 192.168.0.100。
我可以访问互联网、电子邮件等。但是,同一组中的其他计算机无法再访问共享文件夹。我认为这是 IP 的问题。
但真正奇怪的是,如果我关闭路由器中的 DHCP 功能,它ipconfig /all
总是给出 0.0.0.0/255.255.255.255,我无法访问互联网。我不知道发生了什么。有人知道如何修复它并允许路由器应用程序中的共享文件夹吗?
答案1
我会将您的所有计算机连接到新路由器。
当一些计算机连接到墙上而其他计算机连接到路由器时,您的 Samba 请求(共享文件夹数据)需要在两个路由器之间路由。这需要配置/允许。
答案2
你的路由器似乎正在进行 NAT(网络地址解读)。这意味着您的路由器具有一个使用 DHCP 学习的 WAN IP(例如 172.16.12.34)和一个完整的内部网络。对于内部网络,您配置了 IP 192.168.0.100-192.168.0.110。当您的计算机将数据包发送到 WAN 时,路由器将转发该数据包并用其自己的 WAN 地址替换发送方地址。数据包的接收者将看不到数据包来自您的计算机,他会看到来自路由器的数据包并认为他正在与路由器通信。如果接收者发送了应答,那么路由器将查看 NAT 表,看到这个应答数据包是发给您的计算机的,然后将数据包转发给您。这对于传出连接很有效,因为路由器将在其 NAT 表中找到数据包目的地。对于传入连接,路由器将无法在 NAT 表中找到连接并丢弃传入数据包,因为它不知道将数据包转发到哪里。
关于您无法再访问计算机上的文件共享的观察:从路由器的角度来看,访问文件共享是一种传入连接。如上所述,这不起作用。
关于您观察到的如果您在路由器上禁用了 DHCP,您的计算机就不会获得 IP:当您在路由器上启用 DHCP 时,您会从路由器获得一个 IP,并且该 IP 用于内部网络。如果您在路由器上禁用了 DHCP,则路由器不会再为您提供 IP 地址。您不会从 WAN 获取 IP 地址,因为这被路由器上的 NAT 阻止了。路由器知道 WAN 和内部网络是不同的网络,因此它必须阻止 DHCP。
这不是防火墙问题,关闭路由器的防火墙也无济于事。您需要执行以下任一操作:
- 配置路由器,使您的计算机成为暴露主机。这意味着路由器会将没有匹配的 NAT 表条目的任何数据包转发到暴露主机。
- 配置路由器,使其进行端口转发。这类似于暴露主机,但不是针对所有端口,而只针对必要的端口。这比暴露主机更安全。
- 将路由器配置为不执行 NAT,而是以桥接模式/桥接模式运行。在桥接模式下,路由器将仅充当 HUB 或交换机,而不会执行 DHCP、NAT、过滤和其他魔法。
- 正如 historystamp 所说,您可以将房间中的所有计算机放在路由器后面。在这种情况下,您的房间将拥有自己网络的完全访问权限,但 WAN 中的计算机无法访问您的本地网络。
最后但并非最不重要的一点:如果您的网络知识很少,请考虑在将路由器添加到网络之前咨询当地管理员。如果您做错了,并且路由器的 DHCP 服务器连接到 WAN,那么您将破坏 WAN 上的 IP。