หลาม simpleHTTPServer เพียงแค่ปลุกด้วยเครื่องโลคอล [ปิด]


2

ฉันรันคำสั่งต่อไปนี้เพื่อเรียกใช้เซิร์ฟเวอร์ http

python -m SimpleHTTPServer

และรับข้อความต่อไปนี้

Serving HTTP on 0.0.0.0 port 8000 ...

แต่ฉันไม่สามารถเข้าถึงบนเครื่องอื่น / มือถือในเครือข่าย wifi ท้องถิ่นฉันพยายามเข้าถึงจากเครื่องท้องถิ่นของฉันและสามารถเข้าถึงได้

โปรดเข้าใจว่าถ้าใครสามารถคิดได้ว่ามีปัญหาอะไร ขอบคุณล่วงหน้า.


port 80มักจะทำงานบนเว็บเซิร์ฟเวอร์ เซิร์ฟเวอร์ http ของคุณใช้งานได้port 8000เนื่องจากเบราว์เซอร์พยายามเข้าถึงด้วยที่อยู่http://ip_address:8000
2707974

นั่นคือสิ่งที่ฉันพยายามผู้ชาย แต่มันบอกว่าไม่สามารถเชื่อมต่อได้
piyushmandovra

คำตอบ:


4

SimpleHTTPServer0.0.0.0โดยค่าเริ่มต้นผูกกับที่อยู่ IP นี่คือความหมายที่อยู่พิเศษที่มีผลบังคับใช้ "ที่อยู่ใด ๆ " หากคุณต้องการเชื่อมโยงlocalhostหรือ127.0.0.1คุณสามารถเชื่อมต่อได้จากเครื่องโลคอลเนื่องจาก127.0.0.1เป็นอุปกรณ์ลูปแบ็ค แต่ด้วย0.0.0.0เซิร์ฟเวอร์ของผูกพันกับlo, eth0และอุปกรณ์เครือข่ายอื่น ๆ ที่คุณอาจจะมี

ดังนั้นเซิร์ฟเวอร์ขนาดเล็กของคุณควรเข้าถึงได้จากเครื่องอื่น ๆ ในเครือข่ายของคุณ ไม่ได้ระบุว่ามีบางสิ่ง (นอกเหนือจากเซิร์ฟเวอร์ตัวน้อยของคุณ) ห้ามมิให้มีไฟร์วอลล์ คุณสามารถตรวจสอบสถานะของพอร์ต 8000 ด้วยnmapจากเครื่องอื่น (คุณอาจต้องติดตั้งnmap) สมมติว่าเซิร์ฟเวอร์ตัวน้อยของคุณทำงานบน ip 192.168.0.1 เครื่องอื่น ๆ คือ 192.168.2.101 จากนั้นคุณจะทำจาก 192.168.2.101

nmap -p 8000 192.168.0.1

ผลลัพธ์ควรมีลักษณะดังนี้

PORT     STATE SERVICE
8000/tcp open  http-alt

หากสถานะเป็น "เปิด" แสดงว่าพอร์ตสามารถเข้าถึงได้และมีบางอย่างกำลังฟังอยู่ดังนั้นเซิร์ฟเวอร์ขนาดเล็กของคุณจึงควรเข้าถึงได้

หากสถานะเป็น "ปิด" แสดงว่าสามารถเข้าถึงพอร์ตได้ แต่ไม่มีอะไรฟัง ในกรณีนั้นเซิร์ฟเวอร์ของคุณอาจยุติหรือคุณรวมหมายเลขไอพีหรือพอร์ต

หากสถานะเป็น "filtered" แสดงว่ามีการกรอง ip firewall ที่ทำให้คุณไม่สามารถเข้าถึงเซิร์ฟเวอร์ตัวเล็ก ๆ ของคุณได้


สถานะเปิดอยู่ แต่ฉันไม่สามารถเข้าถึงได้จากโทรศัพท์ของฉัน
piyushmandovra

คุณตรวจสอบกับnmapโทรศัพท์ของคุณแล้วหรือยัง? โทรศัพท์ของคุณเป็นส่วนหนึ่งของเครือข่ายท้องถิ่น (เช่นผ่าน WiFi) หรือไม่? หรือว่าเท่าที่เครือข่ายในพื้นที่ของคุณเกี่ยวข้องโทรศัพท์ของคุณ "อยู่ข้างนอก" อาจจะอยู่ในเครือข่ายของผู้ให้บริการโทรศัพท์ของคุณ? คุณสามารถเข้าถึงเซิร์ฟเวอร์จากเครื่องอื่นในเครือข่ายของคุณนอกเหนือจากโทรศัพท์ของคุณได้หรือไม่? ดูเหมือนปัญหาเครือข่ายสำหรับฉัน
Henning Kockerbeck

เพื่อนฉันยังลองจากเครื่องอื่น ๆ ภายในเครือข่ายท้องถิ่น แต่ฉันไม่สามารถเข้าถึงได้
piyushmandovra

ฉันสามารถสันนิษฐานได้ว่ามีบางสิ่งในเครือข่ายของคุณบล็อกการเข้าถึงของคุณ ไฟร์วอลล์พร็อกซีตัวกรองเนื้อหาบางประเภทมีอะไรบ้าง แต่ฉันเดาได้แค่ว่ามันจะเป็นอะไร คำสั่งเซิร์ฟเวอร์ทำงานได้ดีบนเซิร์ฟเวอร์ทดสอบของฉัน
Henning Kockerbeck

3

หลังจากคุณเริ่ม SimpleHTTPServer ด้วย: python -m SimpleHTTPServer 8000,

คุณจำเป็นต้องค้นหาที่อยู่ ip ของเซิร์ฟเวอร์ของคุณภายในเครือข่ายท้องถิ่นของคุณบนเทอร์มินัลโดยใช้:
linux / mac: ifconfig
windows:ipconfig

แล้วบนอุปกรณ์มือถือของคุณพยายามที่จะเข้าถึงip_address:PORT,
เช่น:192:168.1.5:8000

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