2016-06-15 2 views
1

Я запускаю Ubuntu с помощью Virtual Box Manager с Windows-машины. Внутри окна VM ubuntu я запускаю приложение для флагов python, которое работает в http://localhost:5000.Доступ к веб-серверу, запущенному на виртуальной коробке ubuntu на компьютере с машинами Windows

Я попытался получить доступ к локальному URL-адресу виртуальной машины на машине Windows, используя IP-адрес виртуальной машины, который я получил с помощью ifconfig. Но в нем говорится:

Your Internet access is blocked 

Могу ли я получить доступ к нему правильным способом?

вот мой питон код Колба:

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run() 
+0

Вы установили хост в фляге? –

+0

@HassanMehmood обновил мой код флип-кода python – iJade

+0

вам нужно предоставить хост, подобный этому app.run (host = '0.0.0.0) –

ответ

4

Вам нужно указать хост = «0.0.0.0» при запуске вашего приложения. По умолчанию он будет принимать запросы только от localhost. Поэтому, если вы отправляете запрос с другого IP-адреса, вам необходимо указать хост.

См. Ниже пример.

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run(host='0.0.0.0') 

Также, если вы хотите активировать режим отладки для анализа исключений/ошибок во время доступа к вашему приложению. Вы также можете установить атрибут отладки на «True».

if __name__ == "__main__": 
    app.run(host='0.0.0.0', debug=True) 
+0

Это работало как шарм, но что означает host = '0.0.0.0'? – Echelon

+1

@Echelon Это означает, что ваш сервер теперь доступен с любого IP-адреса. –

+1

Ничего себе. Вау. Wow Очень спасибо :) – Nabin

0

Ниже код позволит вам получить доступ к веб-Flask из любого общественного IP вместо 127.0.0.1

if __name__ == '__main__': 
    app.run(host='0.0.0.0', debug='TRUE') 

По умолчанию Колба работает на порт: 5000. Где-то на виртуальной машине этот порт будет заблокирован. Чтобы разрешить трафик на этом порту выполнить команду ниже.

iptables -I INPUT -p tcp --dport 5000 -j ACCEPT 
Смежные вопросы