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