Das Setup, das ich versuchen zu erreichen, ist wie folgt. Wir müssen in der Lage sein, von unserer öffentlichen IP aus auf eine VBox-VM zuzugreifen. Wir haben derzeit einen wirklich beschissenen Linksys-Router, aber ich habe ihn so eingerichtet, dass er den externen Port 8181 an den internen Port 192.168.1.230:8080 (Linux) weiterleitet. 192.168.1.230 ist meine Gast-VM, die derzeit auf Host 192.168.1.6 (Linux) ausgeführt wird.
Wenn ich meinen Browser oder wget aus dem internen Netzwerk um 192.168.1.230:8080 auf die Gast-VM zeige, funktioniert es einwandfrei. Ich sehe, dass die Webseite oder die Wget-Anfrage zurückkommt.
Wenn ich auf public_ip: 8181 zeige, funktioniert es nicht. Es lädt für immer und wget hängt ohne Fehlerantwort. Ein TCP-Speicherauszug auf dem Gast zeigt, dass kein Paket eingeht. Wenn ich jedoch die Weiterleitungsadresse des Portbereichs vom Gast zum Host ändere, funktioniert dies (ich habe einen schnellen Netcat-Server auf dem Host ausgeführt).
Sowohl Host- als auch Guest-Iptables sind so eingestellt, dass sie alle in allen Ketten akzeptieren. Ich frage mich also, ob die Tatsache, dass die Pakete vom Router kommen, irgendwie verweigert wird. Jeder Rat oder jede Hilfe wäre sehr dankbar. Vagrant Config unten.
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "odlVM" do |odlVM|
odlVM.vm.box = "ubuntu/trusty64"
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
v.customize ["modifyvm", :id, "--memory", "2048"]
end
odlVM.vm.hostname = "odl-vm"
odlVM.vm.network "public_network", bridge: "enp5s0f1"
odlVM.vm.provision :shell, inline: $bootstrap_ubuntu
odlVM.vm.provision :shell, inline: $install_java
odlVM.vm.provision :shell, inline: $download_odl
end
end