在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
然後,如果您想再次停用它,只需將“啟用”替換為“停用”即可。
並記住啟用路由和遠端存取服務(預設為停用)透過運行:
Set-Service RemoteAccess -StartupType Automatic; Start-Service RemoteAccess