Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windowsでのポートフォワーディングの構成

ネットワークポート転送を構成できます サードパーティのツールを使用せずにすべてのWindowsバージョンで。ポート転送ルールを使用すると、着信TCP接続(IPv4またはIPv6)をローカルTCPポートから他のポート番号にリダイレクトしたり、リモートコンピューターのポートにリダイレクトしたりできます。さらに、Windowsが特定のTCPポートでリッスンするサービスを持っている必要はありません。 Windowsポート転送は、ファイアウォールをバイパスするため、または内部ホストまたはサービスを外部ネットワーク(NAT / PAT)から隠すために最も一般的に使用されます。

Linuxの世界では、ポート転送はiptablesまたはfirewalldを使用して非常に簡単に構成されます。 。 Windows Serverシステムでは、ルーティングとリモートアクセスサービス(RRAS)は通常、ポートのリダイレクトを構成するために使用されます。ただし、ポート転送を構成する簡単な方法があります。これは、どのWindowsバージョンでもうまく機能します。

NetshPortproxyを使用してWindows10でポートフォワーディングを構成するにはどうすればよいですか?

ポートプロキシを使用して、Windowsでポート転送を構成できます Netshのモード 指図。コマンド構文は次のとおりです。

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
どこ

  • リッスンアドレス –着信接続をリッスンするローカルIPアドレスです(1つのインターフェイスに複数のNICまたは複数のIPアドレスがある場合に便利です)。
  • リッスンポート –ローカルリスニングTCPポート番号(接続が待機中)
  • connectaddress –着信接続をリダイレクトするローカルまたはリモートのIPアドレス(またはDNS名)です。
  • 接続ポート –は、listenportからの接続先のTCPポートです。 に転送されます。
netsh interface portproxy addを使用する v4tov6 / v6tov4 / v6tov6 オプションを使用すると、IPv4アドレスとIPv6アドレスの間にポート転送ルールを作成できます。

タスクiが非標準ポート(たとえば3340)で応答するようにRDPサービスを作成することであると仮定します(ポートはリモートデスクトップサービスの設定で変更できますが、ポートのデモンストレーションを容易にするためにRDPを使用しています転送)。これを行うには、着信トラフィックをTCPポート3340から別のローカルポート(3389)にリダイレクトする必要があります(これはデフォルトのRDPポート番号です)。

listenportで指定したローカルポート番号は、他のサービスまたはプロセスによってリッスン(使用)されるべきではないことに注意してください。ポート番号が使用されていないことを確認してください:

netstat -na|find "3340"

または、PowerShellコマンドレットTest-NetConnectionを使用して、ポートがローカルでリッスンしていないことを確認できます:

Test-NetConnection -ComputerName localhost -Port 3340

Windowsでのポートフォワーディングの構成

Windows 10でポート転送ルールを作成するには、管理者としてコマンドプロンプトを実行し、次のコマンドを実行します。

netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110

Windowsでのポートフォワーディングの構成

ここで、10.10.1.110 –このコンピューターの現在のIPアドレス。

次に、netstatツールを使用して、Windowsがローカルポート3340でリッスンしていることを確認します。

netstat -ano | findstr :3340

Windowsでのポートフォワーディングの構成

。このコマンドが何も返さず、netshインターフェースportproxyを介したポート転送が機能しない場合は、 iphlpsvcがあることを確認してください。 (IPヘルパー)コンピューターで実行されているサービス。

Windowsでのポートフォワーディングの構成

ポート転送ルールが作成されたネットワークインターフェイスでIPv6サポートを有効にする必要があります。

Windowsでのポートフォワーディングの構成

これらは、ポートフォワーディングが正しく動作するための前提条件です。 IPヘルパーサービスがなく、IPv6サポートが有効になっていないと、ポートリダイレクトは機能しません。

Windows Server 2003 / XPでポート転送を機能させるには、 IPEnableRouterを追加で設定する必要があります。 1へのパラメータ レジストリキーHKLM\SYSTEM \ ControlSet001 \ Services \ Tcpip\Parametersにあります。

PID(この例では、PIDは636)を使用して、指定されたポートでリッスンしているプロセスを確認できます。

tasklist | findstr 636

RDPクライアントを使用して、リモートコンピューターからこのポートに接続してみましょう。ポート3340はRDPポート番号として指定する必要があります。 RDPサーバーアドレスに続くコロンの後に指定されます。例:10.10.1.110:3340

Windowsでのポートフォワーディングの構成

RDP接続が正常に確立されている必要があります。

着信TCP接続をリモートコンピューターに転送する場合は、次のコマンドを使用します。

netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.100.101

このルールは、すべての着信RDPトラフィック(ローカルTCPポート3389から)をこのコンピューターからIPアドレス192.168.1.100のリモートホストにリダイレクトします。

また、Windows SSHトンネルを使用して、ローカルポートをリモートサーバーに転送することもできます。 Windowsでのポート転送ルールの管理 重要 。ファイアウォール(Microsoft Windows Defenderファイアウォールまたはウイルス対策ソフトウェアに含まれていることが多いサードパーティのファイアウォール)が新しいポートへの着信接続を許可していることを確認してください。次のコマンドを使用して、新しい許可ルールをWindowsDefenderFirewallに追加できます。

netsh advfirewall firewall add rule name=”forwarded_RDPport_3340” protocol=TCP dir=in localip=10.1.1.110  localport=3340 action=allow

または、New-NetFirewallRule PowerShellコマンドレットを使用します:
New-NetFirewallRule -DisplayName "forwarder_RDP_3340" -Direction Inbound -Protocol TCP –LocalPort 3340 -Action Allow

Windows Defender Firewallのグラフィカルインターフェイスを介してポート3340の着信ファイアウォールルールを作成する場合、プログラムを関連付ける必要はありません。このポートは、ネットワークドライバによってのみリッスンされます。

Windowsポート転送ルールはいくつでも作成できます。すべてのnetshインターフェースのポートプロキシルールは永続的であり、Windowsの再起動後にシステムに保存されます。

また、Windows Server 2012 R2では、サーバーの再起動後にポート転送ルールがリセットされる場合がありました。この場合、ネットワークインターフェイスが定期的に切断されているかどうか、およびOSの起動時にIPアドレスが変更されているかどうかを確認する必要があります(動的DHCPではなく静的IPを使用することをお勧めします)。回避策として、システムの起動時に実行されるnetshインターフェイスのポートプロキシルールを使用して、Windowsタスクスケジューラにバッチスクリプトを追加する必要がありました。

WindowsでアクティブなすべてのTCPポート転送ルールのリストを表示するには、次のコマンドを実行します。

netsh interface portproxy show all

この場合、ローカルポート3340から3389への転送ルールは1つだけです。

Listen on ipv4:             Connect to ipv4:
Address         Port        Address         Port
--------------- ----------  --------------- ----------
10.1.1.110     3340        10.1.1.110     3389

Windowsでのポートフォワーディングの構成

ヒント 。次のように、portproxyでポート転送設定を一覧表示することもできます。

netsh interface portproxy dump

#========================
# Port Proxy configuration
#========================
pushd interface portproxy
reset
add v4tov4 listenport=3340 connectaddress=10.1.1.110 connectport=3389
popd
# End of Port Proxy configuration

Windowsでのポートフォワーディングの構成

特定のポート転送ルールを削除するには:

netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.1.1.110

既存のマッピングルールをすべて削除し、ポート転送ルールテーブルを完全にクリアするには:

netsh interface portproxy reset

重要 。この転送スキームは、TCPポートに対してのみ機能します。この方法でUDPポートを転送することはできません。また、ループバックインターフェース127.0.0.1をconnectaddressとして使用することはできません。 。

RRASおよびNATの役割がインストールされたWindowsServerを使用して、UDPトラフィックのポート転送を構成できます。グラフィカルスナップイン(rrasmgmt.msc)を使用して、サーバーインターフェイス間のポート転送を構成できます。 )またはコマンドを使用して:

netsh routing ip nat add portmapping Ethernet1 udp 0.0.0.0 53 192.168.100.100 53

もう1つのポートプロキシ機能は、リモートネットワークサービスがローカルで実行されているように見せかける機会です。

たとえば、接続をローカルポート5555からIPアドレス157.166.226.25(CNN Webサイト)のリモートHTTPサーバーにリダイレクトしてみましょう。

netsh interface portproxy add v4tov4 listenport=5555 connectport=80 connectaddress= 157.166.226.25 protocol=tcp

ブラウザでhttp:// localhost:5555 /にアクセスすると、CNNのスタートページが開きます。そのため、ブラウザはローカルコンピュータにアクセスしているにもかかわらず、外部Webサーバーからページを開きます。

Windowsでのポートフォワーディングの構成

ポート転送ルールを使用して、物理NICの外部IPアドレスから同じホストで実行されている仮想マシンのポートにポートを転送することもできます。 Hyper-Vでは、仮想スイッチレベルでポート転送を構成できます(以下を参照)。

Windowsは、TCPポートの範囲を転送できません。複数のポートを転送する必要がある場合は、複数のポートプロキシ転送ルールを手動で作成する必要があります。最も簡単な方法は、netsh interface portproxy addのリストを生成することです。 メモ帳でポート番号が異なるコマンドをコマンドプロンプトに貼り付けて実行します。

Hyper-Vサーバーでのポート転送

コンピューターでHyper-Vの役割を使用する場合(Windows10とWindowsServerの両方にインストールすることも、無料のHyper-Vサーバーとしてインストールすることもできます)、PowerShellを使用してDNATポート転送ルールを構成できます。 Hyper-Vホストが受信するすべてのhttpsトラフィックを、ホストで実行されている仮想マシンのIPアドレスにリダイレクトするとします。これを行うには、Hyper-VStaticMappingコマンドを使用します。

まず、NATを使用して仮想スイッチを作成する必要があります:

New-VMSwitch -Name "HTTPS-NAT" -SwitchType NAT -NATSubnetAddress 192.168.100.0/24

次に、必要なVMを指定されたvswitchに接続し、このHyper-V仮想スイッチを介して接続されたすべての仮想マシンのアドレス変換ルールを有効にする必要があります。

New-NetNat -Name HTTPS-NAT -InternalIPInterfaceAddressPrefix 192.168.100.0/24
Add-NetNatStaticMapping -ExternalIPAddress "0.0.0.0/24" -ExternalPort 443 -Protocol TCP -InternalIPAddress "192.168.100.77" -InternalPort 443 -NatName HTTPS-NAT

これらのPowerShellコマンドを実行した後、Hyper-Vホストのポート443に到達するすべてのHTTPSトラフィックは、仮想マシンのプライベートIPアドレスに転送されます。


  1. Windows 10 でリモート デスクトップ ポート (RDP) を変更する

    Windows ユーザーの多くは、リモート デスクトップを認識しています。ほとんどのユーザーはリモート デスクトップ機能を使用して、別のコンピューター (職場または自宅) にリモートでアクセスします。職場のコンピューターから作業ファイルに緊急にアクセスする必要がある場合があります。そのような場合、リモート デスクトップが命の恩人になります。このように、コンピューターにリモート アクセスする必要がある理由は他にもいくつか考えられます。 ルーターにポート転送ルールを設定するだけで、簡単にリモート デスクトップを使用できます。しかし、インターネットへのアクセスにルーターを使用しないとどうなりますか?

  2. Windows 10 PC でポート転送を構成する方法

    Windows 10 にはポート フォワーディングのサポートが組み込まれていますが、設定インターフェイスには公開されていません。ポート フォワーディングを使用すると、ローカル マシンでホストされているかのようにネットワーク リソースにアクセスできます。これは、LAN (ローカル エリア ネットワーク) で作業している場合や Web サーバーで開発している場合に役立ちます。 このガイドでは、独自のポート フォワーディング ルールを追加する方法について説明します。このガイドでは、アドレス「https://127.0.0.1:9000」を「https://192.168.0.10:80」にルーティング