title: WSL, can not access node http server throught hostname mapped in hosts file
body: <p>I was using WSL2 to run a node server, when I only pass port to <code>listen</code>,</p>
  <pre><code>const https = require('https');
  https.createServer(***).listen(3001);
  </code></pre>
  <p>the <code>lsof -i</code> display something like this</p>
  <pre><code>node    13347 0t0  TCP *:3001 (LISTEN)
  </code></pre>
  <p>I can not access this server through the hostname mapped in the hostfile(/etc/hosts) somehow, Why?</p>
  <pre><code>127.0.0.1 local.test.com
  </code></pre>
  <p>when I change the node app code to this:</p>
  <pre><code>const https = require('https');
  https.createServer(***).listen(3001, '127.0.0.1');
  </code></pre>
  <p><code>lsof -i</code> shows:</p>
  <pre><code>node 0t0  TCP localhost:3001 (LISTEN)
  node 0t0  TCP localhost:3000 (LISTEN)
  </code></pre>
  <p>for now I can access the server through the hostname I mapped in the host file</p>
  <p>But if I changed the node app code to:</p>
  <pre><code>const https = require('https');
  https.createServer(***).listen(3001, 'localhost');
  </code></pre>
  <p>the <code>lsof -i</code> will show:</p>
  <pre><code>node  0t0  TCP kubernetes.docker.internal:3001 (LISTEN)
  node  0t0  TCP kubernetes.docker.internal:3000 (LISTEN)
  </code></pre>
  <p>why there had an address named kubernetes.docker.internal?
  I even not runing docker(I installed docker anyway).</p>