localhostおよび127.0.0.1は機能していますが、wsl Windows 10のIPアドレスは機能していません

アブハス・ダウバンジャ

最近、Windows 10 で Linux から WSL2 (Ubuntu 20.04) に切り替えました。 NodeJs アプリケーションまたは Apache や Nginx などのサーバーを実行すると、localhost または 127.0.0.1 ではすべて正常に動作しますが、ローカル IP アドレスを使用すると動作しません ( 192.168.1.65)。

ノード js アプリケーションを実行している場合の netstat -tupln

Windows と wsl でファイアウォールをオフにしようとしましたが、機能しませんでした。

「プログラムと機能」から IIS を有効にしましたが、localhost と IP で正常に動作しているようです。ということで、ネットワークに問題はないと思いました。

テスト目的の IIS

私が読んだすべての投稿は、サイトが ip ではなく 127.0.0.1 からアクセスできる場合、Apache または Nginx のサーバー構成ファイルを構成できることを示唆しています。しかし、wsl を再インストールし、NodeJs / Express のみを介してホストしています。

Express アプリの server.js のコードは次のとおりです。

const express = require("express");
const next = require("next");

const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const handle = app.getRequestHandler();

app.prepare().then(() => {
  const server = express();
  server.use(express.static("public"));

  server.all("*", (req, res) => {
    return handle(req, res);
  });

  server.listen(port, "0.0.0.0", (err) => {
    if (err) throw err;
    console.log(`> Ready on http://localhost:${port}`);
  });
});

私がしたいことは、同じネットワーク上の自分の携帯電話からサイトにアクセスすることだけです。

/etc/hosts

Windows の ipconfig

NotTheDr01ds

ここでの主な問題は、WSL2 が独自の仮想 NIC を備えた Hyper-V VM で動作し、Windows ホストの背後で NAT を実行していることです。一方、WSL1 は Windows NIC でブリッジされて実行されました。

localhost、Windowsが自動マッピングを行うように見えるんが、ホストのIPアドレス(したがって、ローカルネットワーク上の)のために、それはしていません。

このGithub スレッドにはこの特定のトピックに関する多くの情報と、いくつかの回避策があります。

オプション 1: WSL1

まず、最も単純な方法は、この特定のアプリケーションで可能であれば WSL1 を使用することです。WSL2 インスタンスを WSL1 に変換するには、(PowerShell から) a を実行するwsl --set-version <distroname> 1か、既存のインスタンスを a で複製してwsl --export <distroname> <archivename>.tarからwsl --import <distroname> <installlocation) <archivename>.tar. バックアップが取れるので、私はクローンの方が好きです。

オプション 2: を使用した Windows ポート転送 netsh

ポートが使用してWindows上で転送するnetshごとにこのコメントそのスレッド上。WSL2 インスタンスの仮想 NIC は再起動のたびに新しいアドレスを取得するため、再起動のnetshたびにコマンドを繰り返すか、説明に従ってスクリプトで設定し、タスク マネージャーを介して起動のたびに実行するように設定する必要があることに注意してください。. Windows ファイアウォール ルールを変更する必要がないことにも注意してください。

オプション 3: WSL1 を介したポート転送 socat

  • WSL2 インスタンスとともに基本的な WSL1 インスタンスを設定する
  • socat両方にインストール
  • WSL1 インスタンスから を実行socat -d -d TCP-LISTEN:3000,reuseaddr,fork EXEC:'wsl.exe -d <WSL2DistroName> "socat -d -d TCP-CONNECT:127.0.0.1:3000 -"'し、正しい名前 (角括弧なし) に置き換えてください。

これは基本的に、WSL1 のポート 3000 から WSL2 の 3000 にポート転送します。WSL1 はとにかく「ブリッジ」で実行されるため、Windows ホストのポート 3000 への接続もそのルートを通過します。

これには、コマンドのnetshstdout 上で機能するため、起動ごとに WSL2 IP が変更されることを心配する必要がないというオプションよりも利点がありますwsl.exe

オプション 4: ブリッジ モード

Windows 10 Pro 以降を実行している場合は、WSL2 NIC をブリッジ モードで実行する方法について、そのスレッドに指示があります。他の 3 つの方法を使用できたので、私はこのルートを行ったことはありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

ip-ruleは、0x10より大きいToSでは機能しません

単一の入力に対してコードを機能させようとしています。たとえば、1を入力すると、0時間1分ではなく0時間1分が返されます。

Sudoが機能しません:「/ etc / sudoersはuid1000によって所有されています。0である必要があります。

特定の列を分割するawkフィールド区切り文字が期待どおりに機能しません。$ 0は分割されていないレコードを返しますか?

APIへのAuth0アクセストークンはpostmanで機能しますが、Vueから呼び出す場合は機能しません

NodeJS-正規表現が期待どおりに機能していません。\ 0は\ u0000として解釈されます

ニスは機能しているように見えますが、max-age = 0

minmax(0、1fr)は長い要素に対して機能しますが、1frは機能しませんか?

0を列挙型に自動キャストするにはどうすればよいですか?(| =機能しますが、機能しません=)

「DirectX 11 をサポートしていますが、機能レベルは 10_0 のみです。これは、多くの DirectX 11 および DirectX 12 タイトルで問題になる可能性があります」

1対1および0対多くの関係Laravelが機能しない

$ {0 ## * /}と$ {0%/ *}はどのように機能しますか?

%0 |%0はどのように機能しますか?

平方根用の私のc#プログラムは、判別式が0または0未満の場合にのみ機能しますが、0より大きい場合は機能しません。

カルマカバレッジは100%機能していませんが(0/0)

私は2つのUSBBluetoothアダプターを持っていますが、1つは機能しません(hci1)が、デフォルトのようです。もう一方(hci0)を使用できるように、無効にするにはどうすればよいですか?

cmpl $ 741354545、(%esi)は、「1,0」と比較して文字列としてどのように機能しますか?

view.setColumnHidden(0、True)が機能していません

「eth0は構成されていません」が、以前は機能していました

文字列の反転:string [::-1]は機能しますが、string [0 ::-1]などは機能しません

corePoolSize = 0はThreadPoolExecutorに対してどのように機能しますか?

windows.Environ()文字列[0]および[1]

GNU find "or"関数が-print0で機能していません| xargs -0 tar

彩度と明度は機能しないので0ですが、hsl / hslaでは0%が機能しますか?

postgressqlのascii32〜127およびascii 0、13、27を除くすべての文字を置き換えます

$( "#hover" + item)は機能しませんが、$( "#hover0")は機能します

COALESCE(SUM(...)、0)COALESCE(COUNT(...)、0)が私のコードで機能していません

ファイルはWindowsでは削除および名前変更されていませんが、Macでは機能しています

wpfコンボボックスselectedIndex = 0が機能していません

TOP 一覧

  1. 1

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  2. 2

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  3. 3

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    Ansibleで複数行のシェルスクリプトを実行する方法

  7. 7

    Python / SciPyのピーク検出アルゴリズム

  8. 8

    画像変更コードを実行してもボタンの画像が変更されない

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  11. 11

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  12. 12

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  13. 13

    二次導関数を数値計算するときの大きな誤差

  14. 14

    値間の一致を見つける最も簡単な方法は何ですか

  15. 15

    androidsoongビルドシステムによるネイティブコードカバレッジ

  16. 16

    Reactでclsxを使用する方法

  17. 17

    How to access json value by key value in freemarker?

  18. 18

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  19. 19

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  20. 20

    Using Angular's UI-router, how can we make sure the new version of the html partial views are used, rather than the cached version?

  21. 21

    symfonyエラーサーバーが404NotFoundを返しました

ホットタグ

アーカイブ