2015-01-07 35 views
5

điều này có lẽ là một câu hỏi rất đơn giản, nhưng tôi không thể tìm thấy câu trả lời ở bất cứ đâu. Trên các bài báo trực tuyến về nó, họ đã không cho thấy quá trình chính xác để chia sẻ một thư mục bằng SimpleHTTPServer. Tôi đã chạy lệnh thành công và có máy chủ đang chạy, nhưng tôi chỉ có thể truy cập nó trên máy đã khởi động nó.Không thể kết nối với máy chủ python -m SimpleHTTPServer

192.168.1.2:8000 

Tôi đã thử trên máy tính Windows và iPad (mặc dù điều đó không thực sự tạo sự khác biệt) trên mạng cục bộ. Để truy cập vào nó, tôi đã sử dụng địa chỉ của tôi tại địa phương chỉ IP, mà tôi tìm thấy bằng cách chạy ifconfig | grep inet, mà trả về (trong số những trận đấu khác):

inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255

Và sau khi tìm kiếm một chút trên mạng, tôi thấy: .

Có chức năng được cho là mang đến cho bạn một url tiện dụng để chia sẻ với bạn bè, nhưng tôi đã cố gắng chạy tại địa phương, và tất cả những gì tôi có là "localhost.localdomain", mà rõ ràng là trả về 127.0.0.1

Làm thế nào tôi có thể làm công việc này?

+0

Bạn có IP công cộng không? Bởi vì bạn nên sử dụng nó thay thế. –

+0

Bạn đã giải quyết được sự cố này chưa? Nó làm tôi khốn khổ. – oarfish

Trả lời

5

Khi bạn bắt đầu SimpleHTTPServer nó nói mà địa chỉ IP nó được nghe:

python -m SimpleHTTPServer 
    Serving HTTP on 0.0.0.0 port 8000 ... 

Địa chỉ 0.0.0.0 nghĩa là nó nghe tất cả các địa chỉ IP có sẵn. Vì vậy, trong trường hợp này, bạn chỉ cần truy cập máy chủ bằng cách đi http://192.168.1.two:8000

Nếu nó không hoạt động thì rất có thể đó là sự cố mạng. Bạn có thể kiểm tra điều này với lệnh telnet (cả Windows và UNIX có sẵn): telnet sẽ mở kết nối TCP/IP trên một IP nhất định và một số cổng nhất định.

Ví dụ: trên UNIX bạn có thể làm:

telnet 192.168.1.2 8000 

Nếu bạn nhận được:

telnet 192.162.1.2 8000 
Trying 192.162.1.2... 
telnet: connect to address 192.162.1.2: Connection refused 
telnet: Unable to connect to remote host 

... nó có nghĩa SimpleHTTPServer đang chạy.

Nếu thời gian chờ đợi lâu, điều đó có nghĩa là bộ định tuyến/tường lửa của bạn đang chặn kết nối.

Nếu bạn nhận được một câu trả lời:

telnet localhost 8000 
Trying ::1... 
telnet: connect to address ::1: Connection refused 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 

... trình duyệt nên làm việc là tốt. Bạn có thể thoát telnet bằng cách tiếp tục nhấn enter (SimpleHTTPServer sẽ đóng kết nối).

+0

Cung cấp kết quả 'telnet' là kết quả sau nhưng người dùng vẫn không thể truy cập máy chủ từ một thiết bị khác, chẩn đoán sẽ là gì? Tôi đang cố gắng truy cập vào 'SimpleHTTPServer' chạy trên MBP của tôi trên cổng 8000 từ một iPad trên cùng một mạng. – oarfish

+0

Nếu telnet hoạt động nhưng trình duyệt không hoạt động thì điều đó có nghĩa là kết nối mạng vẫn ổn, nhưng trình duyệt không ổn. Thông thường, điều này có nghĩa là trình duyệt đang cố gắng sử dụng máy chủ proxy (ISP được cung cấp) cho mạng cục bộ. Đề xuất này là thử với một trình duyệt khác và kiểm tra cài đặt proxy trình duyệt của bạn. –

Các vấn đề liên quan