Score:1

ยังคงสับสนว่าทำไมนักเทียบท่าถึงทำงานเมื่อคุณทำให้กระบวนการฟังเป็น 0.0.0.0 แต่ไม่ใช่ 127.0.0.1

ธง ve
ชื่อโฮสต์ const = '0.0.0.0'; // << งงตรงนี้แหละ
พอร์ต const = 3000;

เซิร์ฟเวอร์ const = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('ประเภทเนื้อหา', 'ข้อความ/ธรรมดา');
  res.end ('สวัสดีชาวโลก');
});

server.listen (พอร์ต, ชื่อโฮสต์, () => {
  console.log(`เซิร์ฟเวอร์ทำงานที่ http://${hostname}:${port}/`);
});

เมื่อฉันเทียบท่าแอปนี้และเรียกใช้ในคอนเทนเนอร์ ชื่อโฮสต์ 0.0.0.0 ใช้งานได้ แต่ 127.0.0.1 ใช้งานไม่ได้ ฉันเข้าใจเหตุผลว่าทำไมเพราะคอนเทนเนอร์นักเทียบท่าค่อนข้างได้รับ IP ของตัวเอง

ดังนั้น เมื่อฉันสร้างและรันคอนเทนเนอร์เมื่อฉันตั้งค่าตัวแปรชื่อโฮสต์เป็น 127.0.0.1 แล้วไปที่ 127.0.0.1 บนเบราว์เซอร์ ฉันไม่ได้เชื่อมต่อกับที่อยู่ IP ของคอนเทนเนอร์ แต่เชื่อมต่อกับเครื่องของฉัน

แต่ทำไมเมื่อฉันเรียกใช้แอปคอนเทนเนอร์บน 0.0.0.0 และไปที่ 127.0.0.1 บนเบราว์เซอร์ของฉัน ตอนนี้แอปเชื่อมต่อกับคอนเทนเนอร์แทนเครื่องของฉัน

ขอขอบคุณ.

Score:2
ธง in

นักเทียบท่าคือ "เครื่องอื่น" และเครื่องของคุณได้รับการส่งต่อพอร์ตไปยังเครื่องนั้นบน localhost

ดังนั้นเมื่อแอปภายในนักเทียบท่าฟัง 127.0.0.1 ที่ใช้ได้ในเครื่องนั้นเท่านั้น หากต้องการเชื่อมต่อจาก "ภายนอก" คุณต้องฟัง ใดๆ ที่อยู่.

ดังนั้นจึงมี 2 ที่แตกต่างกัน 127.0.0.1.

ถ้าคุณฟัง ใดๆ (0.0.0.0) จึงมีอยู่ใน 127.0.0.1 และอินเทอร์เฟซ/IP อื่นๆ ทั้งหมดบนเครื่อง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา