เชื่อมต่ออุปกรณ์กับ Mac localhost Server หรือไม่ [ปิด]


104

ฉันจะอนุญาตให้อุปกรณ์ใด ๆ เช่น iPhone เชื่อมต่อผ่าน WLAN กับเซิร์ฟเวอร์ localhost ของ Mac ได้อย่างไร

บน Mac ของฉันฉันทำงาน "Hello World" HTTP Node.jshttp://localhost:1337เซิร์ฟเวอร์ที่ให้บริการหน้าซึ่งเปิดซาฟารีประสบความสำเร็จที่ และทำงานในเอาท์พุทเทอร์ipconfig getifaddr en1192.168.1.9

แต่ซาฟารีทั้งบน iPhone และ Mac แสดง "ซาฟารีไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์" http://192.168.1.9:1337เมื่อมันพยายามที่จะเปิด

ฉันไม่คิดว่าสิ่งนี้ควรเกี่ยวข้องกับการส่งต่อพอร์ตเพราะฉันต้องการให้เซิร์ฟเวอร์ HTTP พร้อมใช้งานแบบส่วนตัวเท่านั้นไม่ใช่แบบสาธารณะ

ที่เกี่ยวข้อง:


1
ตอบคำถามที่นี่ stackoverflow.com/questions/9304058/…
Andreas Norman

ฉันแปลกใจที่ไม่เห็นคำตอบแบบนี้ซึ่งใช้ได้ผลกับฉัน: stackoverflow.com/a/41857012/470749
Ryan

คำตอบ:


58

ผมมีปัญหาเดียวกัน. ฉันปิด WI-FI บน Mac แล้วเปิดใหม่อีกครั้งซึ่งช่วยแก้ปัญหาได้ คลิกการตั้งค่า> ปิด WI-FI

ฉันทดสอบโดยไปที่ Safari บน iPhone และป้อนชื่อโฮสต์หรือที่อยู่ IP ตัวอย่างเช่น: http://<name>.localหรือhttp://10.0.1.5


แปลกพอสิ่งนี้ได้ผลสำหรับฉัน! ขอบคุณมาก. ฉันไม่เข้าใจว่าทำไม
Björn Grossmann

4
บวกหนึ่งสำหรับ<name>.local- ไม่มี IP แบบคงที่สำหรับการทดสอบอีกต่อไป!
Adam Carter

ฉันใช้เวลาทั้งวันในการพยายามคิดออก การเปิด / ปิด WiFi ของ Mac ของฉันได้รับการแก้ไขแล้ว แปลก.
oif_vet

การสลับ Mac wifi ยังแก้ไขให้ฉัน ฉันสงสัยว่านี่เป็นปัญหา Mac หรือปัญหาเราเตอร์หรือปัญหา nodejs ความคิดใด ๆ ?
neoneye

2
http: // <name> .local ทำงานให้ฉัน เพื่อขยายคำตอบ <name> ของ Mac ของคุณสามารถพบได้ในระบบการตั้งค่า> การใช้ร่วมกัน ภายใต้ชื่อคอมพิวเตอร์ของคุณ:คุณจะพบว่าคอมพิวเตอร์ในเครือข่ายท้องถิ่นของคุณสามารถเข้าถึงคอมพิวเตอร์ของคุณได้ที่: <ชื่อ> .local
John Lay

47

มีเซิร์ฟเวอร์ของคุณฟังบนแทน0.0.0.0localhost


1
อ่าขอบคุณที่สิ่งนี้ได้ผลสำหรับฉัน
aks

1
สำหรับใครที่มีปัญหากับคำตอบอื่น ๆ ลองดูสิ!
เทรน

5
หรือคุณสามารถระบุ '0.0.0.0' เพื่อเชื่อมโยงโดยตรงกับ local ip จะป้องกันปัญหาหากคุณเปลี่ยนเครือข่ายและไม่ได้กำหนด ip เดียวกัน
Cole Murray

ขออภัยคุณ "ให้เซิร์ฟเวอร์ของคุณฟัง" ได้อย่างไร
gmarais

@ColeMurray ขออภัยสำหรับการตอบกลับที่ล่าช้า ขอบคุณสำหรับคำแนะนำ ฉันเพิ่งอัปเดตคำตอบของฉัน
ma11hew28

31

ฉันสามารถเข้าถึง iPhone ของฉันโดยใช้http://name.local:1337ไฟล์. คุณต้องเพิ่ม ".local" คุณจะพบชื่อคอมพิวเตอร์ของคุณภายใต้ System Preferences / sharing / "Computer Name"


ฉันลองใช้ที่อยู่ IP ทั้งที่มีและไม่มีไฟร์วอลล์และโซลูชันอื่น ๆ อีกมากมายที่แนะนำและนี่เป็นวิธีเดียวที่ใช้ได้ ฉันกำลังเรียกใช้ไซต์ localhost บนพอร์ต 3000 ด้วย Express โดยใช้โหนด js
lostAtSeaJoshua

คุณยังสามารถค้นหา "ชื่อ" ของคุณได้โดยพิมพ์whoamiลงในคอนโซล
Jadam

2
@Jadam เทคนิคนี้ใช้ไม่ได้กับฉัน ฉันได้รับสองชื่อที่แตกต่างกัน สำหรับสถานการณ์เซิร์ฟเวอร์ภายใน "ชื่อคอมพิวเตอร์" คือชื่อที่ใช้งานได้
moeamaya

1
สำหรับฉันฉันไม่เคยใช้ name.local ที่ไหนเลยอย่างไรก็ตามการใช้ที่อยู่ IP จริงนั้นใช้งานได้ ฉันจะบอกว่าแก้ปัญหาโดยใช้ที่อยู่ IP จริงที่เฉพาะเจาะจงซึ่งตรงข้ามกับความสะดวกสบายของบางอย่างเช่น name.local ซึ่งเพิ่มความซับซ้อนอีกชั้นหนึ่ง
MarsAndBack

1
นี่ควรเป็นคำตอบที่ได้รับการยอมรับ ไม่จำเป็นต้องมีการตั้งค่าเพิ่มเติมหรือแก้ไขไฟล์เซิร์ฟเวอร์ Node.js ปัจจุบัน @ ma11hew28
BenS

15

ลองเปิดใช้งาน Internet Sharing:
เปิด System Preferences -> Sharing ตรวจสอบการแชร์อินเทอร์เน็ตเพื่อเปิดใช้งานระบบจะแจ้งให้คุณยืนยันการกระทำของคุณเลือกตกลง หาก iPhone ของคุณเชื่อมต่อโดยใช้ USB iPhone USB จะถูกตรวจสอบที่รายการ "การแบ่งปันการเชื่อมต่อของคุณ" ทางด้านขวา
หลังจากนี้ให้ลองเข้าถึงเซิร์ฟเวอร์ภายในของคุณโดยใช้ macs ip ของคุณบน wifi


10

ปัญหาของฉันก็เหมือนเดิม แต่วิธีแก้ปัญหาต้องเปลี่ยนการตั้งค่าไฟร์วอลล์ ปรากฎว่าโหนดถูกตั้งค่าให้บล็อกการรับส่งข้อมูลขาเข้า ฉันรู้ว่ามีบางอย่างเกิดขึ้นเพราะฉันเคยเข้าเซิร์ฟเวอร์ localhost จากโทรศัพท์ของฉัน

ไปที่การตั้งค่าระบบ -> การรักษาความปลอดภัยและความเป็นส่วนตัว -> Firewall -> ตัวเลือก Firewallแล้วเลื่อนลงมาจนกว่าคุณจะพบโหนดและให้แน่ใจว่าการตั้งค่าของโหนดถูกตั้งค่าอนุญาตให้เชื่อมต่อเข้ามา

หลังจากเปลี่ยนการตั้งค่าฉันสามารถเข้าถึงเซิร์ฟเวอร์ localhost (พอร์ต 3000) ที่ทำงานบน Mac ของฉันได้โดยไปที่http://192.168.1.11:3000


ไฟร์วอลล์เป็นผู้กระทำผิด แต่เพียงผู้เดียว อย่างอื่นก็ดี
mythicalcoder

โอ้ที่รักคุณช่วยฉันไว้! ขอบคุณ !!
GoOlga

7

ฉันแก้ปัญหาที่คล้ายกัน

  • เชื่อมต่อ Mac และ iPhone กับ Wi-Fi เดียวกัน
  • เปลี่ยนการตั้งค่า iPhone Wi-Fi ตั้งค่าพร็อกซี http เป็นแมนนวลและเปลี่ยนเซิร์ฟเวอร์เป็นที่อยู่ Mac ของคุณและตั้งค่าพอร์ต พอร์ตของฉันคือ 80

ภาพที่หนึ่ง

ภาพที่สอง

  • คุณสามารถป้อนข้อมูลhttp://<Mac ip>:<your customer server port>ในซาฟารีของ iPhone

5

ผู้ใช้ MacOS Sierra สามารถค้นหา vanity URL ที่สร้างขึ้นโดยอัตโนมัติได้โดยไปที่System Preferences > Sharingและตรวจสอบใต้การป้อนข้อความชื่อคอมพิวเตอร์ ในการเข้าถึงให้ป้อน URL นี้พร้อมหมายเลขพอร์ตของคุณ (เช่น your-name.local: 8000) บน iPhone ของคุณผ่านการเชื่อมต่อ Wi-Fi เดียวกับคอมพิวเตอร์ของคุณ


5
  1. เชื่อมต่อ iPhone ของคุณกับ Mac ผ่าน USB

  2. ไปที่ Network Utility (cmd + space แล้วพิมพ์ "network utility")

  3. ไปที่แท็บ "ข้อมูล"

  4. คลิกเมนูแบบเลื่อนลงที่ระบุว่า "Wi-Fi" และเลือก "iPhone USB" ดังที่แสดงไว้ที่นี่:

    รูปภาพสำหรับขั้นตอนที่ 4

  5. คุณจะพบที่อยู่ IP เช่น "xxx.xxx.xx.xx" หรือที่คล้ายกัน เปิดเบราว์เซอร์ Safari บน iPhone ของคุณแล้วป้อน IP_address: port_number

    ตัวอย่าง: 169.254.72.86:3000

[หมายเหตุ: หากฟิลด์ที่อยู่ IP ว่างเปล่าตรวจสอบให้แน่ใจว่า iPhone ของคุณเชื่อมต่อผ่าน USB ออกจากยูทิลิตี้เครือข่ายเปิดอีกครั้งและตรวจสอบที่อยู่ IP]


3

ฉันขอแนะนำให้ใช้ชื่อของคอมพิวเตอร์เช่นhttp://mymac:1337/. ทำงานให้ฉันสมบูรณ์แบบโดยไม่ต้องกำหนดค่าใด ๆ และฉันไม่ต้องกังวลเกี่ยวกับการเปลี่ยนที่อยู่ IP เนื่องจาก DHCP


3

ตามที่โพสต์ไว้ฉันติดตามคำตอบของ moeamaya แต่จำเป็นต้องแก้ไขเพียงเล็กน้อยเพื่อดูงานของฉันในไดเรกทอรี Sites

http://[name].local.~[username]/

[ชื่อ]เป็นไปตามที่ระบุไว้แล้ว (System Preferences / sharing / "Computer Name")

[ชื่อผู้ใช้]อยู่ที่:

/etc/apache2/users/username.conf

หวังว่านี่จะช่วยได้!


ฉันจะพบไฟล์ username.conf บนเครื่อง Mac ได้ที่ไหน
มันฝรั่ง

1
ดูในโฟลเดอร์ / Users ของคุณในรูท @brumbrum
Alfred

1
คุณยังสามารถเขียนwhoamiในเทอร์มินัล
Alfred

3

ตรวจสอบให้แน่ใจว่าทั้งโทรศัพท์และเครื่อง Mac เชื่อมต่อกับ wifi เดียวกันและคุณพร้อมที่จะใช้งาน http://<machine-name>.local


1

พยายามทุกอย่างในหน้านี้ แต่http://<name>.local:<PORT>ใช้ได้เฉพาะบน iPhone ของฉันหลังจากที่ฉันออกและรีสตาร์ท Safari ...


1

ใช้ IP ที่แสดงในการตั้งค่าเครือข่ายของคุณเสมอ มันจะเปลี่ยนไปเมื่อคุณเปลี่ยนตำแหน่งและคุณใช้การเชื่อมต่อไร้สายอื่น

ตัวอย่างเช่นในกรณีของฉันตอนนี้คือ10.0.0.5


คุณสามารถลองได้ แต่จะไม่ได้ผลในทุกสถานการณ์ คุณตั้งสมมติฐานว่าฉันไม่เห็นในคำถามเกี่ยวกับการกำหนดค่าเครือข่าย
benc

สมมติฐานนี้ช่วยฉันแก้ปัญหาที่คล้ายกันเมื่อวานนี้ ฉันไม่พบ IP ที่จะเชื่อมต่อ คำสั่ง Terminal ไม่ทำงาน สิ่งที่ได้ผลคือ IP ในการตั้งค่าเครือข่าย (ฉันใช้ apache local server บน mac)
edgarascom

-1

ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์กำลังฟังอุปกรณ์เคลื่อนที่ของคุณอยู่! ตัวอย่างเช่นโดยค่าเริ่มต้น jekyll จะตอบเฉพาะคำขอที่ทำโดยเครื่องโฮสต์เท่านั้น สิ่งนี้ช่วยแก้ปัญหาของฉัน:

เชื่อมต่อกับเซิร์ฟเวอร์ Jekyll ที่สร้างขึ้นภายในเครื่องโดยใช้อุปกรณ์มือถือใน LAN

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