Windows 上使用 PowerShell 设置防火墙规则和端口转发; Windows 上配置端口转发,将 3389 端口的流量重定向到自定义端口;

在 PowerShell 中配置 Windows 防火墙的端口转发涉及几个步骤。首先,你需要确保你有足够的权限来进行这些操作(通常需要管理员权限)。以下是如何在 PowerShell 中配置端口转发的示例步骤:

1. 打开 PowerShell

以管理员身份运行 PowerShell。你可以右键点击 PowerShell 图标,选择“以管理员身份运行”。

2. 配置防火墙规则

你可以使用 New-NetFirewallRule cmdlet 来创建新的防火墙规则。首先,你需要定义规则来允许通过防火墙的流量。以下是一个示例,创建一个允许特定端口的规则:

powershellCopy Code
New-NetFirewallRule -DisplayName "Allow Port 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow

这个命令创建了一个新的防火墙规则,允许通过 TCP 协议的 8080 端口的入站流量。

3. 配置端口转发

Windows 防火墙本身不直接支持端口转发。为了实现端口转发,你通常需要依赖其他工具或设置,例如使用 netsh 命令。

使用 netsh 命令

在 PowerShell 中,你可以使用 netsh 命令来配置端口转发。以下是一个示例:

powershellCopy Code
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.1.100

这个命令的作用是将所有到达本地端口 8080 的流量转发到 IP 地址为 192.168.1.100 的机器的端口 80。

4. 查看现有的端口转发规则

你可以使用以下命令查看现有的端口转发规则:

powershellCopy Code
netsh interface portproxy show all

5. 删除端口转发规则

如果你需要删除之前设置的端口转发规则,可以使用:

powershellCopy Code
netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=0.0.0.0

注意事项

  • 确保你要转发的端口在目标机器上也有相应的服务在运行,否则流量将无法正确处理。
  • 根据你的网络设置和防火墙策略,可能还需要配置其他网络设备(如路由器)上的端口转发。

这些步骤应该可以帮助你在 Windows 上使用 PowerShell 设置防火墙规则和端口转发。


Windows 上使用 PowerShell 将 3389 端口转发到自定义端口,你可以通过以下步骤来实现。这个过程包括创建防火墙规则以允许流量通过端口,并设置端口转发规则来将流量重定向到新的端口。

1. 打开 PowerShell

以管理员身份运行 PowerShell。可以在开始菜单中找到 PowerShell,右键单击并选择“以管理员身份运行”。

2. 创建防火墙规则

首先,确保防火墙允许通过 3389 端口的流量。你可以使用以下 PowerShell 命令来添加防火墙规则:

powershellCopy Code
New-NetFirewallRule -DisplayName "Allow RDP" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow

3. 设置端口转发

Windows 自带的 netsh 命令可以用来配置端口转发。假设你想将本地 3389 端口的流量转发到自定义端口(比如 9999),可以使用以下命令:

powershellCopy Code
netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=9999 connectaddress=127.0.0.1
  • listenport=3389:你希望监听的本地端口。
  • listenaddress=0.0.0.0:指定所有可用的网络接口。
  • connectport=9999:自定义的目标端口(你希望将流量转发到此端口)。
  • connectaddress=127.0.0.1:目标 IP 地址(在本地机器上转发,所以使用 127.0.0.1)。

4. 确认端口转发设置

你可以查看现有的端口转发规则以确保配置正确:

powershellCopy Code
netsh interface portproxy show all

5. 删除端口转发规则

如果你需要删除某个端口转发规则,可以使用以下命令:

powershellCopy Code
netsh interface portproxy delete v4tov4 listenport=3389 listenaddress=0.0.0.0

注意事项

  • 目标端口设置:确保目标端口(在此示例中为 9999)正在监听并可以接受连接。如果你使用的是远程桌面协议(RDP),则需要在目标端口上运行相应的服务。
  • 网络配置:确保你的网络配置和防火墙规则允许流量通过自定义端口(如 9999)。
  • 安全性:使用端口转发时请确保网络安全,避免将不必要的端口暴露给外部网络。

这些步骤将帮助你在 Windows 上配置端口转发,将 3389 端口的流量重定向到自定义端口。


PowerShell 脚本用于更改 RDP 端口并配置 Windows 防火墙规则,整体思路是正确的,但有几个地方需要调整。下面是改进后的版本:

powershellCopy Code
# 设置 RDP 端口
$portvalue = 9989
# 修改 RDP 端口号
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'PortNumber' -Value $portvalue

# 创建 TCP 端口规则
New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile 'Public,Private,Domain' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue

# 创建 UDP 端口规则
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile 'Public,Private,Domain' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue

关键点:

  1. 脚本注释:添加了注释以便更容易理解每个步骤的作用。
  2. PowerShell 字符串:修正了原脚本中的 HTML 实体字符(例如 ')为 PowerShell 支持的标准单引号 ' 和双引号 "
  3. 确保准确:请确认你有权限修改注册表和防火墙规则,并且此更改不会导致连接问题。

说明:

  • Set-ItemProperty:修改 RDP 端口号。这将改变远程桌面的端口设置。
  • New-NetFirewallRule:创建新的防火墙规则,允许指定端口的 TCP 和 UDP 流量通过。

重要提示:

  • 更改 RDP 端口之后,需要重新启动计算机或远程桌面服务,以使更改生效。
  • 修改注册表和防火墙设置可能会影响系统的安全性和可访问性,请确保了解这些操作的影响。

使用这个脚本时,请确保测试环境中没有其他冲突,并备份相关设置。


 

posted @ 2024-08-20 22:49  suv789  阅读(31)  评论(0编辑  收藏  举报