- この
hosts
ファイルは、ホスト名解決専用です
- ブラウザポートを直接指定するの不在で、:つまり
<hostname>:<port>
、デフォルトポートへ80
典型的な問題シナリオ
- アプリケーションは通常、サーバーを同じデフォルトのIPアドレス
127.0.0.1
aka localhost
(hostsファイルで定義)に設定します。
おそらく他の既存/実行中のサーバー間の衝突を避けるために、アプリケーションは通常、IPアドレスではなくポートの変更を許可します。
2a。ループバックの予約済みアドレススペースでサーバーのIPアドレスを別のIPアドレスに変更できる場合は、おそらくhostsファイルでポートを設定しようとはしないでしょう。 127.0.0.0/8
可能な解決策
Windowsに含まれるネットワークツールnetsh
をポートプロキシとして使用すると、この問題を回避できます。
概要
example.app
| <--browser defaults to port 80
+--> example.app:80
| <--Hostname resolution by Hosts File
+--> 127.65.43.21:80
| <--Link by netsh Utility
+--> 127.0.0.1:8081
行動
- サーバーを起動します
localhost:8081
- hostsファイルに「ローカルDNS」を新しい行として
追加します
127.65.43.21 example.app
- ネットワーク内の任意の空きアドレスを
127.0.0.0/8
使用できます。
- 注:私は
127.65.43.21:80
、別のサービスに占有されていないことを前提としています。
- で確認できます
netstat -a -n -p TCP | grep "LISTENING"
- netshコマンドユーティリティを使用して次のネットワーク構成を追加します
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
- サーバーにアクセスします
http://example.app
注:
-これらのコマンド/ファイルの変更は、管理者権限で実行する必要があります
- netshをPortproxyのは、IPv6のライブラリを必要とするのみでも使用v4tov4に、通常、彼らはまた、そうでない場合は、次のコマンドを使用してインストール、デフォルトで含まれます:netsh interface ipv6 install
コマンドで追加したエントリを確認できます:
netsh interface portproxy show v4tov4
次のコマンドでエントリを削除できます。
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
リソースへのリンク:
注:この回答は、stackoverflowに関するこの同様の質問/回答で説明した私の回答の複製です。