Я создал бродячую машину.Вот мой Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-18.04"
config.vm.network "forwarded_port", guest: 5000, host: 5000
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get -y install python3-pip
sudo pip3 install flask
SHELL
end
внутри виртуальной машины все работает нормально.Запуск следующего приложения прекрасно работает на виртуальной машине.basic.py:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def index():
return jsonify({"message": "Hello World"})
if __name__ == '__main__':
app.run(debug=True, port=5000)
Результат запуска basic.py внутри виртуальной машины
Но при попытке доступа к серверу с хост-машины (через браузер Chrome)выдает следующее сообщение: невозможно получить доступ к серверу с хост-компьютера
при попытке перезагрузить браузер
Я попытался отключить антивирус (Нортон просто для проверки, если Нортон фильтрует и блокирует порты), но у меня тот же результат.Кто-нибудь еще испытывал такую же проблему?Может кто-нибудь помочь разобраться, что не так, тогда как это исправить?
@ Мирко Эберт, Попытка добраться до сервера через "curl -v localhost: 5000" дает ответ ниже: изнутри виртуальной машины:
vagrant@vagrant:~$ curl -v localhost:5000
* Rebuilt URL to: localhost:5000/
* Trying ::1...
* TCP_NODELAY set
* connect to ::1 port 5000 failed: Connection refused
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/7.58.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: application/json
< Content-Length: 31
< Server: Werkzeug/0.14.1 Python/3.6.7
< Date: Thu, 13 Dec 2018 21:15:45 GMT
<
{
"message": "Hello World"
}
* Closing connection 0
С хост-машины:
$ curl -v localhost:5000
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0*
Trying ::1...
* TCP_NODELAY set
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/7.62.0
> Accept: */*
>
* Recv failure: Connection was reset
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Closing connection 0
curl: (56) Recv failure: Connection was reset