在Linux系统中,我们可以使用下面的命令来启用数据包转发:
~ # sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
但是如何在Windows中实现同样的功能呢?
我用Windows Server 2008 R2
。
答案1
尝试转到注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
。如果还不存在,请创建一个REG_DWORD
名为的新值IPEnableRouter
。设置IPEnableRouter
为1
并重新启动。现在应该启用数据包转发。
要添加静态路由,请使用route
命令。
答案2
如果要为特定接口或所有接口启用转发,您可以通过 PowerShell 轻松完成,无需重新启动。(注意:如果要更改设置,请务必以管理员身份运行)
要查看所有接口的转发状态,可以执行以下操作:
Get-NetIPInterface | select ifIndex,InterfaceAlias,AddressFamily,ConnectionState,Forwarding | Sort-Object -Property IfIndex | Format-Table
这将提供一个漂亮的表格,显示所有接口及其当前的转发配置。
然后,如果您想启用转发,您可以运行:
Set-NetIPInterface -ifindex <required interface index from table> -Forwarding Enabled
如果您想为所有接口启用它,只需运行:
Set-NetIPInterface -Forwarding Enabled
然后,如果您想再次禁用它,只需将“Enabled”替换为“Disabled”即可。
记得启用路由和远程访问服务(默认情况下是禁用的)通过运行:
Set-Service RemoteAccess -StartupType Automatic; Start-Service RemoteAccess