2017-11-25 405 views
0

我对来宾网络使用NAT模式。我需要我的机器可以从外面访问。我已经设置了iptables来将主机上的特定端口转发到guest虚拟机上的端口22,但这似乎不起作用。使用KVM/QEMU在NAT上进行端口转发

我添加了这个规则:

# Port Forwardings 
-A PREROUTING -i eth0 -p tcp --dport 9867 -j DNAT --to-destination 192.168.122.136:22 

# Forward traffic through eth0 - Change to match you out-interface 
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE 

当我ssh 192.168.122.136从主机它完美的作品,但是当我尝试ssh 192.168.122.136 -p 9867它显示ssh: connect to host 192.168.122.1 port 9867: Connection refused

我已经启用使用上/etc/ufw/sysctl.conf

端口转发iptables -t nat -L显示规则设置在iptable上

DNAT  tcp -- anywhere    anywhere    tcp dpt:9867 to:192.168.122.136:22 

回答

0

找到我的答案here。基本上我改变了上述

# connections from outside 
iptables -t nat -A PREROUTING -p tcp --dport 9867 -j DNAT --to 192.168.122.136:22 
# for local connection 
iptables -t nat -A OUTPUT -p tcp --dport 9867 -j DNAT --to 192.168.122.136:22 

# Masquerade local subnet 
iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -j MASQUERADE 
iptables -A FORWARD -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A FORWARD -i virbr0 -o eth0 -j ACCEPT 
iptables -A FORWARD -i virbr0 -o lo -j ACCEPT