2016-07-18 6 views
0

포트 포워딩을 사용하여 ubuntu/xenial64 VM을 설정했습니다 (config.vm.network "forwarded_port", guest: 80, host: 8080). VM의 내부 나는 LXC 컨테이너 (ubuntu/trusty)를 생성하고, iptables 규칙을 추가했습니다 :virtualbox VM에서 실행중인 lxc 컨테이너로 포트를 전달하는 방법은 무엇입니까?

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

을 그리고 VM 내에서 실행, LXC 컨테이너 내부의 VM 내부에 하나 nginx, 하나를 설치했습니다. VM 외부에서 VM 내부에서 실행되는 nginx에 액세스 할 수 있지만 lxc 컨테이너에서 실행되는 것은 액세스 할 수 없습니다.

w3m http://localhost:8080 

이 어떻게 하나가 응답하는 알 수 있습니다 :

curl -sSv localhost:8080 

또는 : 나는 (VM의 외부)를 사용하여 확인하려면? 나는 VM 내부에서 실행되는 것을 멈추고 응답을 얻지 않습니다. 하지만 VM을 내부에서 lxc 컨테이너 내에서 실행 nginx 액세스 할 수 있습니다.

VM의 내부에서 lxc 컨테이너를 실행하는 경우를 제외하면 무엇이 잘못 되었습니까? 내가 잘못된 인터페이스에 대한 규칙을 추가, 그것은 나타납니다

# 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 

답변

0

: :)

여기 iptables-save의 출력입니다. eth0, enp0s25 또는 실제 네트워크 인터페이스에 해당하는 내용 :

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