ชื่อโฮสต์ไปยัง Localhost with Port - OSX [ปิด]


14

ฉันพยายามเรียกใช้Node.jsเว็บเซิร์ฟเวอร์หลายเครื่องในเครื่องของฉัน

เพราะรหัสผมเขียนความต้องการเพื่อการอ้างอิงชื่อโดเมนฉันต้องการที่จะให้การประชุมของdev.myHost.comและชี้ไปที่ไม่ใช่พอร์ต-80 วิ่งให้บริการจาก Node (เทคนิคผมทำงานอย่างใดอย่างหนึ่งในHarp.js และหนึ่งในSails.js)

  • ดังนั้นdev.hostOne.comควรชี้ไปที่localhost:123
  • และdev.hostTwo.comควรชี้ไปที่localhost:456

เป็นไปได้ไหม ถ้าเป็นเช่นนั้นได้อย่างไร

คำตอบ:


23

จากความเข้าใจของฉันดูเหมือนว่าคุณจะใช้เครื่อง dev เพียงเครื่องเดียวเท่านั้นหมายความว่าไม่ได้เชื่อมต่อกับเครือข่ายใด ๆ ที่มี DNS

หากฉันถูกต้องฉันขอแนะนำให้ตั้งค่าสิ่งต่าง ๆ ตามที่อธิบายไว้ด้านล่าง:

ขั้นตอนที่ 1:กำหนดที่อยู่ IP อย่างน้อยสองรายการให้กับ MAC OS ของคุณ (หนึ่งรายการต่อโดเมน) สมมติว่า:

192.168.0.10
192.168.0.11

ในการตั้งค่า IP ที่สองคุณจะต้องเพิ่มอีเธอร์เน็ตอะแดปเตอร์ตัวที่สอง (ตรรกะไม่ใช่แบบฟิสิคัล)

ขั้นตอนที่ 2:เนื่องจากคุณไม่มีเซิร์ฟเวอร์ DNS คุณสามารถตั้งค่า/etc/hostsไฟล์โดยเพิ่ม:

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

ขั้นตอนที่ 3:กำหนดนามแฝงให้กับส่วนต่อประสานย้อนกลับของคุณ:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

ขั้นตอนที่ 4:ตั้งค่าipfwเพื่อส่งต่อแพ็คเก็ต:

sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

คุณทำเสร็จแล้ว!

ตอนนี้

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่


ฉันได้ตั้งค่าNode.jsเว็บเซิร์ฟเวอร์สองเครื่องเพื่อทดสอบเคสของคุณ:

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

สำคัญ:โปรดทราบว่าipfwนามแฝงของกฎและส่วนต่อประสานวนกลับไม่คงอยู่และจะไม่มีอยู่อีกต่อไปหลังจากรีบูต ดังนั้นให้พิจารณาเพิ่มสคริปต์เริ่มต้น


1
ทำงานได้อย่างสวยงาม นี่คือสิ่งที่ฉันต้องการ
mondo

1
ดีใจที่มันใช้งานได้! ฉันค่อนข้างแน่ใจว่ามันไม่ใช่ "ซ้ำซ้อน";)
krisFR

บน Mac os sierra ได้รับ sudo: ipfw: ไม่พบคำสั่ง
ClintM

3
@ClintM: ได้ถูกแทนที่ด้วยipfw pfctlสำหรับตัวอย่างของวิธีการเปิดพอร์ต: gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger

มันจะดีจริง ๆ ในการปรับปรุงคำตอบในรูปแบบ pfctl ที่คาดไว้
Simon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.