2016-04-13 25 views
3

Masaüstü bilgisayarımda internette halka açık olan bir flask sunucusunu çalıştırmaya çalışıyorum. Aşağıdaki yaptık:Flask sunucusu herkese açık ip adresimden görünür değil

Ben bir test web sunucusu

from flask import Flask, request, redirect 
app = Flask(__name__) 

@app.route("/") 
def hello_world(): 
    return "Test 123 " 

if __name__ == "__main__": 
    app.run(host="0.0.0.0", port="33") 
olarak aşağıdaki kodu kullanıyorum Ben benim tarayıcısını açtığınızda

: Düzgün http://192.168.1.11:33/ sayfa görüntüler, ben "Test 123" bakın

benim kamu ip adresinden benim sunucunuza bağlanmaya çalışırken Benim sorunum geliyor Ben http://xx.xxx.xxx.xx:30 benim tarayıcınızı açın (benim ip adresim) tüm gördüğüm "bu siteye erişilemiyor, xx.xxx.xxx.xx bağlanmayı reddetti"

Tüm yığın taşması yanıtlarına baktım, aşağıdakileri yaptım :

  • Pencereleri söndürülmüş firew için "192.168.1.11" tüm
  • Değiştirilen konak "0.0.0.0"
  • farklı bir bağlantı noktası gösterilen çalışan kod ve hata

ekran görüntüsü çalıştı: http://i.imgur.com/a05GvEs.png

Sorum şu: Şişesi sunucumu genel ip adresimden görünür yapmak için ne yapmam gerekir?

+0

Sunucunuzla aynı ağ içindeki bir makineden bağlanmaya çalışıyor musunuz? Yönelticiniz buna izin verebilir veya vermeyebilir. Bir dış ağdan bağlanmayı deneyin. Hızlı bir test için mobil cihazınızı (kendi WiFi'niz değil, bir mobil ağ üzerinden) kullanabilirsiniz. – Selcuk

+0

Öneriniz için teşekkür ederiz, maalesef telefonumdan bağlanamadım – Keatinge

+0

OS X mi yoksa windows mu kullanıyorsunuz? Onlardan birini kullanıyorsanız, güvenlik duvarı sorun olabilir. tarayıcınızdan isteğinizi btw 30 değil 33 (Bu çok kötü olabilir), eğer ev sahibi sadece 0.0.0.0 koyduysanız, web uygulamanızı görmelisiniz. –

cevap

3

Yönlendiricinizde DHCP etkinleştirilmiş var mı? Evet, sunucunuzu 192.168.1.11 olarak görüyor musunuz?

Konakta '0.0.0.0' seçeneğini kullanmanız gerekir; bu, Flask'a tüm adresleri dinlemesi gerektiğini bildirir. Makine IP adresinizde çalıştırmak için bağlantı noktasını app.run(host="0.0.0.0", port="33")

+0

Bağlantı noktasını "33" olarak değiştirdim, aynı sorun. DCHP'ye gelince, ev sahibi daha önce orada değildi, ama şimdi ekledim. Ben hala aynı problemi yaşıyorum. (Bu siteye ulaşılamıyor) İşte yönlendiricimin DCHP sayfasının bir ekran görüntüsü, belki de bazı problemleri göremiyorum. http://i.imgur.com/kkv07MI.png – Keatinge

2

olarak belirtin, bu değeri app.run (host = '0.0.0.0', bağlantı noktası = "33" olarak değiştirin). Hızlı Başlangıç ​​sayfasındaki "Harici Olarak Görünür Sunucusu" altında Şişesi sitesinde belgelenen

: http://flask.pocoo.org/docs/0.10/quickstart/#a-minimal-application

yönlendirici Liman yönlendirme limana 33 port yönlendirmesi ekle burada http://www.howtogeek.com/66214/how-to-forward-ports-on-your-router/

+0

Her ikisini de yaptım, şimdi tekrar test oldum. Hala bağlanamıyorum. Bağlantı noktam% 100 yönlendiriliyor, çevrimiçi olarak test ediliyor. http://i.imgur.com/uZISBqI.png – Keatinge

+0

@Racialz Dış ağdan nasıl test yapıyorsunuz? – ganeshredcobra

+0

Kablosuz bağlantısı kesilen bir cep telefonundan. – Keatinge

0
denemek gerekir

ve izah Geliştirme sunucusunun aynı ipini kullanın. Bu nedenle, örneğin, dev sunucusu bir PC'de 192.168.1.11 adresi ve 33 numaralı bağlantı noktasında çalışıyorsa, diğer istemciler aynı adrese işaret etmelidir: 192.168.1.11:33. Benim küçük deneyimim kadarıyla, hata ayıklayıcısını devre dışı bırakılmış olarak çalışır, ancak bunun önemli bir önkoşul olup olmadığını kontrol etmedim.

iyi şanslar

0

yöntemden app.run argüman olarak kamu ip adresi/LAN ip adresi vermek zorundadır. ana bilgisayar argüman vermeyin, bu http://localhost:8888/ ve http://127.0.0.1:888/ ile çalışıyor, ancak REST hizmetleri

çalıştıran ardından nelerdir sistem dışında erişmeye değil örnektir. app.run (host = "192.168.0.29", debug = Doğru, bağlantı noktası = 8888)

İlgili konular