%20%E3%81%A7%E3%83%9D%E3%83%BC%E3%83%88%E8%BB%A2%E9%80%81%E3%81%AE%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%92%E8%A1%8C%E3%81%86%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
インターネット ゲートウェイ マシンでいくつかのポート (Perforce の場合は 1666、Hudson の場合は 8081) を転送したいと考えています。このマシンは Windows 7 (64 ビット、正規、ユーザー アカウント) を実行しており、ケーブル モデム (ルーターではありません) 経由でインターネットに接続されています。Windows マシンは ICS 経由でインターネット接続を共有しており、接続されているすべてのコンピューターで正常に動作しています。
ゲートウェイ マシン自体でサービスが実行されている場合は、指定されたポートでゲートウェイのパブリック IP (95.xxx) を介してサービスにアクセスできます。インターネット ネットワーク アダプタの [詳細設定] ダイアログ ([共有] タブ) にポートと宛先 IP アドレス (192.168.0.18) を追加しました。これは、HTTP、FTP、その他の受信サービスなどの事前構成済みサービスのリストがあるダイアログと同じです。これを実行すると、サービスに接続できなくなります。何らかの理由でポート転送が機能していません。
ファイアウォールが干渉するかどうか確認したかったので、Bitdefender をアンインストールしました。また、Windows ファイアウォールと Defender を無効にしましたが、効果はありませんでした。ポート転送の設定に役立つフリーウェア ツールを試しましたが、これも機能しませんでした。
ターゲット マシンは、ファイアウォールが無効になっている Mac OS X コンピュータです。IP は静的です。ゲートウェイ コンピュータを含む 2 台の異なるマシンから、ローカル IP アドレス (192.168.0.18) を使用してサービスに正常に接続できます。したがって、内部的にも外部的にもポートは開いていてブロックされていないように見えますが、問題はポート転送自体にあります。
私の理解では、ファイアウォールが干渉していない場合にポート転送を有効にするには、[詳細設定] ダイアログにエントリを追加するだけで十分なはずです。ポート転送が機能しない原因をトラブルシューティングするにはどうすればいいですか? 問題を軽減するにはどのような手順に従う必要がありますか?
PS: コマンドラインソリューションも喜んで受け入れます。
私が試した他のこと:
- Windowsファイアウォールに1666、8081ポートの受信規則を追加する
- Windowsファイアウォールを有効または無効にして試す
- ネットワークアダプタの無効化/有効化
- IPアドレスが正しいことを再確認しました
- 異なる受信ポートをサービスの実際のポートにマッピングする
- この記事のその他のヒントに従ったり確認したりしました
まだ挑戦していないこと(試してみる価値があるかどうか教えてください):
- ICS を無効/有効にする
- すべてのネットワークアダプタを削除し(コントロールパネル経由)、再インストールして再構成します。
答え1
解決しました。
Windowsファイアウォールをデフォルト設定にリセットし、ICSを無効にして再度有効にした後、ポート転送が機能するようになりましたが、パスポートツールこれにより、ポート転送が Windows サービスとしてインストールされます (管理者権限で実行する必要があります)。
Passport の優れた点は、IP アドレスだけでなく DNS アドレスもポート転送できることです。そのため、Passport のインターフェースを通じて次のようなことが可能になります。
myserver.no-ip.org:8081 --> 192.168.0.18:8081
答え2
Windows 7 では、次のようにしてコマンド ラインからポート転送を手動で設定できます。
netsh interface portproxy add v4tov4 listenport=1666 listenaddress=95.x.x.x connectport=1666 connectaddress=192.168.0.18 protocol=tcp
- IPv4 のみを使用している場合でも、これを機能させるには IPv6 がインストールされていることを確認する必要があります。
- UDPも転送する必要がある場合は、この素晴らしい小さなオープンソースユーティリティは
netsh int portproxy
TCPでのみ動作します
答え3
Windows 7 でのポート転送は、接続共有タブのチェックボックスで非常に簡単です。[設定] ボタンが 1 つあります。そのボタンをクリックすると、すでにリストされているサービスが編集できます。また、新しいサービスを追加することもできます。サービス名 (例: http) を入力できます。
サービスをホストしているコンピュータのアドレス/名前(例:192.168.1.100、ポート 80、プロトコル [tcp/udp])
このように、任意の数のサービスを追加し、任意の数のポートを転送できます。これは非常に簡単です。netshや他のサイトで提供されるポート転送プログラムは使用しないでください。