Windows2003/win2008R2/win2012/win2016/win2019批量添加IP的方法

本文介绍了一种通过批处理命令快速为本地连接分配连续或不连续IP地址的方法。对于连续IP,可通过FOR循环命令实现一键设置;对于不连续IP,则可通过导出、编辑并重新加载ip.txt文件来完成。

对于连续的IP

​首选方案:

FOR /L %i IN (起始IP尾数,1,末尾IP尾数) DO netsh interface ip add address “你的本地连接名字” 192.168.1.%i 255.255.255.0

一条命令搞定

对于不连续的IP,首先打开CMD窗口,开始 – 运行 cmd,输入
netsh -c int ip dump >c:\ip.txt

这样你将会在C盘根目录看到一个ip.txt的文件,里面包含着你当前网卡的设置信息。为了能更直观的看清楚IP的设置信息,建议在执行上面的命令之前,先添加2-3个IP。
然后编辑这个文件,把你想加的IP,根据相同的规则加在里面。然后执行
netsh -f c:\ip.txt

IP很多的话,时间会长一些,运行完毕如果没有什么错误提示的话,那就添加成功了,到控制面板里面看看是不是都有了。

<think>我们正在处理的是Windows Server 2012 R2的防火墙配置,目标是仅允许特定IP访问本机的445端口(SMB服务端口)。根据用户需求,我们需要创建两条规则: 1. 允许规则:允许特定IP(或IP范围)访问TCP 445端口。 2. 阻止规则:阻止所有其他IP访问TCP 445端口(注意:这条规则需要在允许规则之后,因为防火墙规则按顺序匹配,一旦匹配就不再继续)。 由于Windows防火墙规则是按照配置文件(域、专用、公用)分别设置的,请确保在正确的配置文件中设置(通常服务器使用域或专用配置文件)。 以下是具体步骤: ### 方法:使用Windows防火墙高级安全配置 #### 步骤1:打开“高级安全Windows防火墙” 1. 按`Win+R`,输入`wf.msc`,回车打开“高级安全Windows防火墙”。 2. 或者通过“服务器管理器”->“工具”->“高级安全Windows防火墙”。 #### 步骤2:创建允许特定IP访问445端口的入站规则 1. 在左侧选择“入站规则”,然后在右侧点击“新建规则...”。 2. **规则类型**:选择“端口”,下一步。 3. **协议和端口**:选择“TCP”,并输入“特定本地端口”为`445`,下一步。 4. **操作**:选择“允许连接”,下一步。 5. **配置文件**:根据你的网络环境选择(通常全选,即域、专用、公用),下一步。 6. **名称**:输入一个描述性名称,例如“允许特定IP访问SMB(445)”。 7. 点击“完成”(先不要关闭,我们还需要编辑作用域)。 #### 步骤3:配置允许规则的IP作用域(关键步骤) 1. 在入站规则列表中找到刚刚创建的规则(“允许特定IP访问SMB(445)”),右键选择“属性”。 2. 切换到“作用域”选项卡。 3. 在“远程IP地址”部分,选择“下列IP地址”,然后点击“添加...”。 - 输入允许访问的单个IP(如`192.168.1.100`)或子网(如`192.168.1.0/24`)。 - 可以添加多个IP或子网。 4. 点击“确定”保存。 #### 步骤4:创建阻止所有IP访问445端口的入站规则 1. 再次点击“新建规则...”。 2. **规则类型**:选择“端口”,下一步。 3. **协议和端口**:选择“TCP”,特定本地端口`445`,下一步。 4. **操作**:选择“阻止连接”,下一步。 5. **配置文件**:同样全选,下一步。 6. **名称**:输入“阻止所有其他IP访问SMB(445)”。 7. 点击“完成”。 #### 步骤5:调整规则顺序(重要) Windows防火墙规则按顺序匹配,因此必须确保允许规则在阻止规则之前。 1. 在入站规则列表中,找到我们创建的两条规则。 2. 通过右键点击规则选择“上移”或“下移”调整顺序,确保: - “允许特定IP访问SMB(445)”在“阻止所有其他IP访问SMB(445)”之上。 - 这样,当特定IP访问时,先匹配允许规则,放行;其他IP访问时,跳过允许规则(因为源IP不匹配)而匹配到阻止规则。 #### 验证方法: 1. 从允许的IP客户端测试连接(使用`telnet 服务器IP 445`或`Test-NetConnection 服务器IP -Port 445`(PowerShell))。 2. 从不允许的IP客户端测试,应无法连接。 #### 注意事项: 1. **规则作用域**:确保规则作用域(远程IP)设置正确,避免将自己锁在外面(如果通过远程桌面管理,确保远程桌面端口(默认3389)的规则没有同时被修改)。 2. **多IP配置**:如果需要允许多个IP,在允许规则的作用域中添加所有需要允许的IP地址或子网。 3. **规则优先级**:如果已有其他关于445端口的规则,请注意调整优先级(通过上移/下移),确保我们新建的规则在适当的位置。 #### 通过命令行配置(可选): 如果你需要批量部署,可以使用`netsh advfirewall`命令行工具: 创建允许规则(示例允许192.168.1.100): ```cmd netsh advfirewall firewall add rule name="允许特定IP访问SMB(445)" dir=in action=allow protocol=TCP localport=445 remoteip=192.168.1.100 ``` 创建阻止规则(阻止所有其他IP): ```cmd netsh advfirewall firewall add rule name="阻止所有其他IP访问SMB(445)" dir=in action=block protocol=TCP localport=445 ``` 注意:命令行创建的规则默认在三个配置文件中生效,且规则顺序可能不是我们期望的(通常新规则在列表底部)。因此,建议在图形界面调整顺序,或者确保允许规则的名称按字母排序在阻止规则之前(因为防火墙规则按名称排序?实际上不是,但我们可以通过指定更高的优先级来调整)。 在命令行中,我们可以通过设置优先级(priority)参数来控制匹配顺序(数值越小优先级越高): ```cmd netsh advfirewall firewall add rule ... priority=<数值> ``` 但是,在图形界面中调整顺序更直观。 ### 相关问题 1. 如何同时限制多个端口(如135-139和445)的访问? 2. 配置防火墙后SMB连接失败如何排查? 3. 如何设置防火墙规则定时生效(如仅工作时间开放)? 4. 除防火墙外,还有哪些方法可以加固SMB服务安全?</think>### Windows Server 2012 R2 防火墙配置:仅允许特定IP访问445端口 #### 步骤1:打开高级安全Windows防火墙 1. 按 `Win+R` 输入 `wf.msc` 回车 2. 或通过:控制面板 > 系统和安全 > Windows防火墙 > 高级设置 #### 步骤2:创建允许规则(特定IP) 1. 右击 **入站规则** > **新建规则** 2. 规则类型:选择 **端口** > 下一步 3. 协议和端口:选择 **TCP**,特定本地端口输入 `445` > 下一步 4. 操作:选择 **允许连接** > 下一步 5. 配置文件:全选(域/专用/公用)> 下一步 6. 名称:输入 `允许特定IP访问SMB(445)` 7. 完成前勾选 **编辑属性** > 点击 **完成** #### 步骤3:配置允许规则的IP范围(关键步骤) 1. 在规则列表中双击新建的 `允许特定IP访问SMB(445)` 2. 切换到 **作用域** 选项卡 3. 在 **远程IP地址** 部分: - 选择 **下列IP地址** - 点击 **添加** 输入允许的IP(如 `192.168.1.100`) - 支持格式:单个IP (`192.168.1.100`)、IP段 (`192.168.1.0/24`)、IP范围 (`192.168.1.50-192.168.1.60`) 4. 点击 **确定** 保存 #### 步骤4:创建阻止规则(所有其他IP) 1. 新建入站规则 > 选择 **端口** 2. 协议:**TCP**,端口 `445` > 下一步 3. 操作:选择 **阻止连接** > 下一步 4. 配置文件:全选 > 下一步 5. 名称:输入 `阻止所有IP访问SMB(445)` 6. 完成 #### 步骤5:调整规则优先级(重要!) 1. 在入站规则列表中: - 确保 **允许特定IP访问SMB(445)** 在 **阻止所有IP访问SMB(445)** 上方 - 通过右键菜单的 **上移/下移** 调整顺序 > 规则按从上到下顺序匹配,匹配即停止 #### 验证配置: ```powershell # 查看445端口规则 Get-NetFirewallRule | Where-Object {$_.LocalPort -eq 445} | Format-Table Name,Enabled,Action # 测试连接(从允许的IP执行) Test-NetConnection -ComputerName 本机IP -Port 445 # 从不允许的IP测试应失败 ``` #### 命令行配置(可选): ```powershell # 允许特定IP(示例:192.168.1.100) New-NetFirewallRule -DisplayName "Allow_SMB_445" -Direction Inbound ` -LocalPort 445 -Protocol TCP -Action Allow -RemoteAddress 192.168.1.100 # 阻止所有其他IP New-NetFirewallRule -DisplayName "Block_SMB_445" -Direction Inbound ` -LocalPort 445 -Protocol TCP -Action Block # 调整优先级(数字越小优先级越高) Set-NetFirewallRule -DisplayName "Allow_SMB_445" -Group "SMB" -Priority 100 Set-NetFirewallRule -DisplayName "Block_SMB_445" -Group "SMB" -Priority 200 ``` #### 配置要点: | 配置项 | 说明 | |--------|------| | 规则顺序 | 允许规则必须在阻止规则之上 | | 远程IP | 支持CIDR表示法(如`192.168.1.0/24`) | | 配置文件 | 根据服务器网络环境选择(域/专用/公用) | | 协议 | SMB使用TCP协议,端口445 | > ⚠️ **重要安全提示** > 1. 操作前确保当前管理IP已在允许列表中,避免被锁定[^1] > 2. 建议同时启用SMB签名:`Set-SmbServerConfiguration -RequireSecuritySignature $true` > 3. 定期审核规则:`Get-NetFirewallRule -DisplayName "*SMB*" | Select DisplayName,Enabled,Action` ### 相关问题 1. 如何同时限制多个端口(如135-139和445)的访问? 2. 配置后SMB连接失败应如何逐步排查? 3. 如何创建基于时间的防火墙规则(如仅工作日开放)? 4. 除了防火墙,还有哪些方法可以增强SMB服务的安全性? [^1]: Windows防火墙配置注意事项 [^2]: 端口访问控制实现原理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值