linux kvm 虚拟机 nat 网络 iptables 宿主机端口转发到虚拟机

创建虚拟机配置为nat网络

按普通端口转发添加规则

$sudo iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.122.203:22
$sudo iptables -t nat -A POSTROUTING -p tcp --dport 22 -d 192.168.122.203 -j SNAT --to 192.168.122.1

删掉iptables中forward的两条拒绝规则
$sudo iptables -nL -v --line-numbers -t filter

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
(...)
4        7   420 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
5        0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

$sudo iptables -D FORWARD 5 -t filter
$sudo iptables -D FORWARD 4 -t filter

 

2019-02-14更新

如果不想删掉这些拒绝的规则可以在forward链开头加上自己需要的规则

注意要用-I 不加参数的-I表示插入到最前面,如果用-A是追加到最后面就没有办法生效了

iptables -I FORWARD -o virbr0 -s 10.0.6.1/32 -j ACCEPT
iptables -I FORWARD -i virbr0 -d 10.0.6.1/32 -j ACCEPT

 

 

参考

http://stackoverflow.com/questions/13772653/kvm-on-ubuntu-port-forwarding-to-a-guest-vm

https://segmentfault.com/q/1010000008274664

© 2017 - 2019, 新之助meow. 原创文章转载请注明: 转载自http://www.xinmeow.com

0.00 avg. rating (0% score) - 0 votes
点赞