2016-07-18 1 views
0

J'ai ubuntu/xenial64 VM avec la redirection de port mis en place (config.vm.network "forwarded_port", guest: 80, host: 8080). A l'intérieur de la machine virtuelle que j'ai créé un conteneur lxc (ubuntu/trusty), et ajouté iptables règle:Comment transférer des ports vers des conteneurs lxc s'exécutant dans virtualbox vm?

iptables -t nat -A PREROUTING -i lxcbr0 -p tcp --dport 80 -j DNAT --to-destination 10.0.3.153:80 

et installé un nginx intérieur de la machine virtuelle et un conteneur à l'intérieur lxc, courir à l'intérieur de la machine virtuelle. De l'extérieur de la machine virtuelle, je peux accéder à nginx en cours d'exécution à l'intérieur de la machine virtuelle, mais pas à celle qui s'exécute dans le conteneur lxc. Pour vérifier que je l'utilise (en dehors de la machine virtuelle):

curl -sSv localhost:8080 

Ou:

w3m http://localhost:8080 

Comment puis-je dire que l'on répond? J'arrête celui qui tourne à l'intérieur de la VM, et n'obtiens aucune réponse. Mais je peux accéder à nginx en cours d'exécution à l'intérieur du conteneur lxc depuis l'intérieur de la machine virtuelle. Que dois-je faire de mal (à l'exception de l'exécution de conteneurs lxc à l'intérieur des machines virtuelles)? :)

est ici la sortie de iptables-save:

# iptables-save                     [9/858] 
# Generated by iptables-save v1.6.0 on Mon Jul 18 22:04:52 2016 
*mangle 
:PREROUTING ACCEPT [293:22775] 
:INPUT ACCEPT [261:20343] 
:FORWARD ACCEPT [32:2432] 
:OUTPUT ACCEPT [174:19243] 
:POSTROUTING ACCEPT [206:21675] 
-A POSTROUTING -o lxcbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill 
COMMIT 
# Completed on Mon Jul 18 22:04:52 2016 
# Generated by iptables-save v1.6.0 on Mon Jul 18 22:04:52 2016 
*nat 
:PREROUTING ACCEPT [0:0] 
:INPUT ACCEPT [0:0] 
:OUTPUT ACCEPT [0:0] 
:POSTROUTING ACCEPT [0:0] 
-A PREROUTING -i lxcbr0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.3.153:80 
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE 
COMMIT 
# Completed on Mon Jul 18 22:04:52 2016 
# Generated by iptables-save v1.6.0 on Mon Jul 18 22:04:52 2016 
*filter 
:INPUT ACCEPT [256:19487] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [176:19491] 
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 53 -j ACCEPT 
-A INPUT -i lxcbr0 -p udp -m udp --dport 53 -j ACCEPT 
-A INPUT -i lxcbr0 -p tcp -m tcp --dport 67 -j ACCEPT 
-A INPUT -i lxcbr0 -p udp -m udp --dport 67 -j ACCEPT 
-A FORWARD -o lxcbr0 -j ACCEPT 
-A FORWARD -i lxcbr0 -j ACCEPT 
COMMIT 
# Completed on Mon Jul 18 22:04:52 2016 

Répondre

0

Il semble, j'ajouté règle pour la mauvaise interface. Il est censé être eth0, enp0s25, ou tout ce qui correspond à votre interface réseau physique:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.3.153:80