NETSH PORTPROXYコマンドを使用して、ポート8001のXP PC(IP 192.168.0.10
)]に送信されたパケットをポート80に転送しようとしています(XAMPP Apacheサーバーがリッスンしているポート80)。
以下を発行しました:
netsh interface portproxy add v4tov4 listenport=8001 listenaddress=192.168.0.10 connectport=80 connectaddress=192.168.0.10
すべて表示は、すべてが正しく構成されていることを確認します。
netsh interface portproxy show all
Listen on IPv4: Connect to IPv4:
Address Port Address Port
--------------- ---------- --------------- ----------
192.168.0.10 8001 192.168.0.10 80
ただし、http://localhost:8001
からApache Webサイトにアクセスすることはできません。以下に示すように、http://localhost
のダイレクトポート経由でアクセスできます。
さらに、次のことも試しました。1.リンクを使用して、リモートPCからApache Webサイトにアクセスします:http://192.168.0.10:8001
。ファイアウォールがオフになりました。 2. listenaddressおよびconnectaddressを127.0.0.1
に変更します。
さらに情報がなければ、問題を解決する方法を見つけることができません。 NETSH PORTPROXYをデバッグする方法はありますか?
注:ちなみに、なぜ私がこれを行っているのか疑問に思っている場合は、実際にカスタムのポートからデフォルトのMySQLサーバーポート3306にリモートMySQLクライアント接続をマッピングしたい
私は次のコマンドを発行することで機能させることができました。
netsh interface ipv6 install
また、私の目的のために、listenaddressを設定する必要はなく、connectaddress = 127.0.0.1、たとえば.
netsh interface portproxy add v4tov4 listenport=8001 connectport=80 connectaddress=127.0.0.1
問題があります。私は今それを解決しました。機能トンネル接続を提供する「IP Helper」という名前のWindowsサービスがあります。開始されていることを確認する必要があります。
コマンドプロンプトアイコンを右クリックし、管理者として実行を選択して、最初に管理者としてCommand.exeを実行する必要があります。確認を求められます。
Command.exeウィンドウにnetsh
コマンドを貼り付け、Enterを押します。
エラーメッセージが表示されない場合、コマンドは機能しました。
Webブラウザでhttp://your-up:8001
動作確認します。
Windowsイベントログには、障害の原因を見つけるのに役立つ情報が含まれている場合があります。
netsh
のポートプロキシが期待どおりに動作しない場合は、次のことを確認する必要があります(できればその順序で)。
これはささいなことのように思えるかもしれませんが、念のため、先に進む前に構成を確認する時間を取ってください。
コマンドプロンプトまたはPowerShellプロンプトから、次のコマンドを実行します。
netsh interface portproxy show all
結果は次のようになります。
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
24.12.12.24 3306 192.168.0.100 3306
24.12.12.24 8080 192.168.0.100 80
これらの設定を慎重に確認してください。ローカルコンピューターから、そのリストの右側にあるアドレスに実際に接続できることを確認してください。たとえば、ローカルでWebブラウザを開いて192.168.0.100:80
?プロトコルがHTTPでない場合は、telnetを使用します:telnet 192.168.0.100 3306
(WindowsにTelnetクライアントをインストールする方法については、 here を参照してください)。
次に、左側の値は正しいですか? IPアドレスはマシンで有効ですか?外部マシンから接続しようとしているポート番号ですか?
Windowsの最新バージョンでは、netsh
のポートプロキシは、「IP Helper」または「iphlpsvc」という名前のWindowsサービスによって処理されます。そのサービスが停止している場合、プロキシは明らかに機能しません。また、そのサービスを再起動することで解決されることが判明した状況にも直面しています。
Windowsの最新バージョンでそれを行うには:
以前のバージョンのWindowsでは、Administrative Tools内のServicesを探します。コントロールパネル。
IPv6プロトコルのサポートは、requiredで、IPv4からIPv4へのプロキシを含む、netsh
のポートプロキシを有効にします(Microsoftのサポート記事を参照してください- ここ )。
コマンドプロンプトまたはPowerShellプロンプトから、次のコマンドを実行します。
netsh interface ipv6 install
ローカルファイアウォールは、IPヘルパーサービスに到達する前にポートをブロックする可能性があります。この仮説を検証するには、ローカルファイアウォール(Windowsのネイティブファイアウォールを含む)を一時的に無効にしてから再テストします。それが機能する場合は、ファイアウォール構成にポート除外を追加するだけです。