ฉันจะเข้าถึงเครื่องโฮสต์จากเครื่องแขกได้อย่างไร? [ปิด]


124

ฉันเพิ่งสร้าง Windows XP VM ใหม่บน Mac โดยใช้ VMware Fusion VM กำลังใช้ NAT เพื่อแชร์การเชื่อมต่ออินเทอร์เน็ตของโฮสต์

ฉันจะเข้าถึงแอปพลิเคชั่น Rails ซึ่งสามารถเข้าถึงได้บน Mac โดยใช้http://localhost:3000?

คำตอบ:


134

บนเครื่อง XP ที่หาที่อยู่ IP ipconfigของคุณได้โดยไปที่คำสั่งที่รวดเร็วและการพิมพ์ ลองเปลี่ยนหมายเลขสุดท้ายที่มี 1 หรือ 2 ตัวอย่างเช่นถ้าอยู่ IP ของคุณคือ 192.168.78.128 ใช้http://192.168.78.1:3000


3
ช่วยฉันได้หลายชั่วโมง - ตบหลังตัวเอง!
iancrowther

ฉันใช้ Lion เป็นโฮสต์และ Win7 ในฐานะแขก แต่ไม่สามารถเยี่ยมชมแอปรางบนเครื่อง Mac โดยใช้สิ่งนี้ได้ ทำไม?
larryzhao

1
หากที่อยู่ IP ของเครือข่ายท้องถิ่นของคุณคือ 192.168.1.122 คุณควรใช้192.168.1.122:3000และควรใช้งานได้
dbslone

6
หมายเหตุสำคัญ: โซลูชันเหล่านี้จะไม่ทำงานหากคุณเชื่อมต่อโดยใช้ VPN
Harshay Buradkar

80

คุณสามารถใช้ Mac โฮสต์ของคุณ (หรือ Mac เครื่องอื่นบนเครือข่าย) ชื่อ 'local':

http: //macname.local: 3000 /

โดยที่ macname คือชื่อเครือข่ายของโฮสต์ของคุณ (หรืออื่น ๆ ที่ต้องการ) Mac


1
ดีเยี่ยม ฉันไม่รู้เกี่ยวกับบิต. local ขอบคุณ!
ย้อนกลับ

จะใช้ได้เฉพาะเมื่อกำหนดค่า VM บน Mac เครื่องนั้นหรือไม่ ฉันย้าย VM อื่นจากที่อื่นและ computername.local ใช้งานไม่ได้สำหรับฉัน
spankmaster79

7
".local" เป็นสิ่งที่ Mac เท่านั้น เมื่อคุณเปิด System Preferences / Sharing มันจะแสดงชื่อคอมพิวเตอร์ให้คุณเห็นจริง ๆ และด้านล่างจะมีข้อสังเกตว่าในการเข้าถึงบนเครือข่ายท้องถิ่นคุณควรใช้ computername.local ซึ่งใช้สำหรับการเชื่อมต่อกับการแชร์ไฟล์การแชร์เว็บ ฯลฯ
Johnus

1
ดูเหมือนว่าจะต้องมีการกำหนดค่าเครือข่าย VMWare ให้เป็น NATted (หรืออาจเป็น bridged); การกำหนดค่า "โฮสต์เท่านั้น" ส่งผลให้หมดเวลาการเชื่อมต่อเครือข่าย ไม่ชัดเจนสำหรับฉันว่าทำไมถึงเป็นเช่นนั้น แต่ ...
Norman Gray

ฉันเคยใช้วิธีนี้และได้ผลดีมาก! แต่เมื่อเร็ว ๆ นี้มันหยุดทำงานและฉันไม่แน่ใจว่าทำไม บางทีอาจหยุดลงด้วยการอัปเดต Snow Leopard หรืออาจหยุดลงด้วยการอัปเดต Fusion ตอนนี้ machostname.local ของฉันแก้ไขเป็นที่อยู่สาธารณะบนอินเทอร์เน็ต
Jason

14

สำหรับผู้เยี่ยมชมในอนาคต: เมื่อคุณทราบที่อยู่ IP แล้วคุณสามารถเพิ่มรายการไปยังไฟล์โฮสต์ของ Windows ซึ่งอยู่ที่ C: \ Windows \ system32 \ drivers \ etc \ hosts เพื่อแมปที่อยู่ IP กับ (เสมือน) ชื่อเซิร์ฟเวอร์ เพิ่มบรรทัดดังนี้:

192.168.78.1   myrubyapp

ตอนนี้คุณสามารถเข้าถึงไซต์ใน IE ได้ตามที่อยู่http: // myrubyapp: 3000

หากคุณใช้โฮสต์เสมือนภายใต้ Apache คุณจะต้องใช้สิ่งนี้เพื่อระบุชื่อเซิร์ฟเวอร์ที่ถูกต้อง


IP ควรได้รับการแก้ไขตลอดเซสชันบน NAT หรือไม่ ฉันสงสัย.
Lothar

10

เนื่องจากคำถามนี้ค่อนข้างเก่าและอ้างถึง XP นี่เป็นทางเลือกสำหรับ OS ใหม่


หากคุณใช้VistaหรือWindows 7เป็น Guest OS และคุณมีการตั้งค่า Virtual Hosts ในโฮสต์ผ่าน Apache วิธีการตั้งค่ามีดังนี้

ใน Host OS คุณต้องตรวจสอบให้แน่ใจว่าการเชื่อมต่อเครือข่ายเสร็จสิ้นผ่าน NAT

  1. คลิกขวาที่ไอคอนเครือข่ายในหน้าต่าง VM (ขวาล่าง)
  2. เลือก "NAT"
  3. เลือก "เชื่อมต่อ"
  4. รอให้ระบบปฏิบัติการของแขกเชื่อมต่อกับเครือข่ายอีกครั้ง

จากนั้นใน Guest OS;

  1. คลิก Start> Network> Network & Sharing Center
  2. คลิก "ดูสถานะ" ถัดจากการเชื่อมต่อเครือข่าย
  3. คลิก "รายละเอียด"
  4. ค้นหา "IPv4 Default Gateway"
  5. เปิด Wordpad
  6. แก้ไข C: \ Windows \ System32 \ drivers \ etc \ hosts
  7. เพิ่มบรรทัดในไฟล์เช่น:

    [default-gateway-IP] www.example.com
    [default-gateway-IP] example.com
    
  8. บันทึก

  9. ลองเปิดhttp://www.example.comหรือhttp://example.comใน IE


มันแปลกมาก แต่ฉันต้องแทนที่ 1 จากเกตเวย์ ip จริงๆแล้วมันได้ผลสำหรับฉันที่จะค้นหาโดยการ ping โฮสต์: ping <my-mac-host>.localและวาง ip นั้นในไฟล์โฮสต์
Cristian

1
แทนขั้นตอนที่ 1-4 ใน Guest OS คุณยังสามารถเปิด Run Dialogue พิมพ์cmd+ <enter> จากนั้นพิมพ์: ipconfig /all+ <enter> และค้นหา "Default Gateway" ที่นั่น
Jess Telford

ขอบคุณ Jess!. ipconfig /allเร็วขึ้นด้วย
Emerson Rocha

9
  1. บนเครื่อง XP ให้เริ่ม -> เชื่อมต่อกับ -> แสดงการเชื่อมต่อทั้งหมด
  2. ดับเบิลคลิก Local Area Connection
  3. คลิกแท็บการสนับสนุน
  4. ใช้ Default Gateway IP <gateway-ip> และกด http: // <gateway-ip>: 3000 ในเบราว์เซอร์ของคุณ

Gotcha: คุณต้องมี http: // ในที่อยู่มิฉะนั้น IE จะให้คุณ "ไม่สามารถแสดงหน้าเว็บได้"


6

สำหรับ Django สิ่งสำคัญคือต้องทำสิ่งต่อไปนี้:

./manage.py รันเนอร์เวอร์ [default-gateway-IP]: 8000

เพราะ

https://docs.djangoproject.com/en/dev/ref/django-admin/

โปรดทราบว่าที่อยู่ IP เริ่มต้น 127.0.0.1 ไม่สามารถเข้าถึงได้จากเครื่องอื่นบนเครือข่ายของคุณ ในการทำให้เซิร์ฟเวอร์การพัฒนาของคุณสามารถดูได้กับเครื่องอื่น ๆ บนเครือข่ายให้ใช้ที่อยู่ IP ของตัวเอง (เช่น 192.168.2.1) หรือ 0.0.0.0 หรือ :: (ที่เปิดใช้งาน IPv6)


5

ฉันใช้เวลาเพียงหนึ่งชั่วโมงในการพยายามทำให้สิ่งนี้ทำงานตามขั้นตอนใน SO แต่ของฉันกลับแตกต่างออกไปเล็กน้อย

การตั้งค่า VMWare

1. ) ตั้งค่าการเชื่อมต่อ VMWare เป็น NAT
2. ) เรียกใช้> cmd> ipconfig> คัดลอกค่าเกตเวย์เริ่มต้น
3. ) แก้ไขไฟล์โฮสต์ (c: / Windows / System32 / drivers / etc / hosts)

  • เพิ่มสิ่งนี้ลงในไฟล์โฮสต์ของคุณ:

<gateway-ip> yourserver.local

การตั้งค่า OS X

1. ) แก้ไข Apache config (เช่น sudo vim /etc/apache2/httpd.conf)

  • เพิ่มรายการ vhost นี้ในไฟล์ httpd.conf ของคุณ:
ชื่อ VirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
    DocumentRoot "/ path / to / your / project"
    ServerName yourserver.local

    <ไดเรกทอรี "/ path / to / your / project">
        AllowOverride ทั้งหมด
        ตัวเลือกทั้งหมด
    </ ไดเรกทอรี>
</ VirtualHost>
  • บันทึกและออก (: wq)

2. ) แก้ไขไฟล์โฮสต์ของคุณ (sudo vim / etc / hosts)

  • เพิ่มบรรทัดนี้ในไฟล์โฮสต์ของคุณ

127.0.0.1 yourserver.local

3. ) รีสตาร์ท Apache (เริ่มต้น sudo apachectl)

ฉันพบว่าฉันต้องเปลี่ยนการตั้งค่าการเชื่อมต่อบน VMWare เพื่อเริ่มการเชื่อมต่อใหม่ก่อนที่การตั้งค่าเหล่านี้จะทำงานให้ฉัน ฉันหวังว่านี่จะช่วยได้.

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