运行 OSRM docker 在远程机器上
Running OSRM docker on remote machine
我正在尝试 运行 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"
只是发布一个基于 的答案来解释使用 GCE 实例时的防火墙范围。
Linux/Windows 防火墙规则(iptables
、firewalld
等)将在操作系统级别 运行。但是,请考虑实例本身存在于运行自己的防火墙规则的 VPC 中。
这意味着如果您有传入请求,它将在进入实例之前先到达 VPC。这意味着您需要从 OS 防火墙 单独 管理 GCE 防火墙级别的流量。
Firewall rules apply to both outgoing (egress) and incoming (ingress) traffic in the network. Firewall rules control traffic even if it is entirely within the network, including communication among VM instances.
最后还是要考虑在这两个地方都配置规则,避免出现这种情况。
我正在尝试 运行 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"
只是发布一个基于
Linux/Windows 防火墙规则(iptables
、firewalld
等)将在操作系统级别 运行。但是,请考虑实例本身存在于运行自己的防火墙规则的 VPC 中。
这意味着如果您有传入请求,它将在进入实例之前先到达 VPC。这意味着您需要从 OS 防火墙 单独 管理 GCE 防火墙级别的流量。
Firewall rules apply to both outgoing (egress) and incoming (ingress) traffic in the network. Firewall rules control traffic even if it is entirely within the network, including communication among VM instances.
最后还是要考虑在这两个地方都配置规则,避免出现这种情况。