Запуск OSRM docker на удаленной машине - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь запустить OSRM docker на удаленной машине. Я следовал инструкциям по настройке, которые упомянуты в https://github.com/Project-OSRM/osrm-backend

wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf

docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf

docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-partition /data/berlin-latest.osrm
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-customize /data/berlin-latest.osrm

docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm

После выполнения вышеуказанной инструкции я могу запустить docker и получить локальный результат.

// this gives me proper response.
curl "http://127.0.0.1:5000/route/v1/driving/13.388860,52.517037;13.385983,52.496891?steps=true"

// but when I tried with my remote machine IP then is giving
// Failed to connect to my_remote_ip port 5000: Connection timed out
curl "http://my_remote_ip:5000/route/v1/driving/13.388860,52.517037;13.385983,52.496891?steps=true"

1 Ответ

1 голос
/ 11 марта 2020

Просто отправьте ответ на основе моего комментария , чтобы объяснить области действия брандмауэра при работе с экземплярами GCE.

Правила брандмауэра Linux / Windows (iptables, firewalld , et c.) будет работать на уровне операционной системы . Однако учтите, что сам экземпляр существует в VP C, который использует свои собственные правила брандмауэра.

Это означает, что если у вас есть входящий запрос, он сначала попадет в VP C, прежде чем получить в экземпляр. Это означает, что вам необходимо управлять трафиком c на уровне брандмауэра GCE отдельно от брандмауэра ОС.

Брандмауэр VP C также управляет трафиком c, поступающим из экземпляр для inte rnet и от экземпляра к экземпляру :

Правила брандмауэра применяются как к исходящему (выходному), так и к входящему (входящему) трафику c в сети. Правила брандмауэра управляют трафиком c, даже если он полностью находится внутри сети, включая обмен данными между экземплярами виртуальных машин.

В конце вы должны рассмотреть возможность настройки правил в обоих местах, чтобы избежать такого сценария. ios.

...