Kvm

KVM里面如何是指NAT端口转发

我想从外面访问到KVM的虚拟机,但是不能直连的情况下,我如下设置:

# 端口转发
-A PREROUTING -i eth0 -p tcp --dport 9867 -j DNAT --to-destination 192.168.122.136:22

# 通过eth0转发流量,允许我机器所在网段
-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

iptables -t nat -L 显示设置如下:

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

这不生效是因为什么呢?

已邀请:

koyo - 网站管理 致力做全栈工程师 爱ui 爱前端

赞同来自: Ansible

外部连接设置:


iptables -t nat -A PREROUTING -p tcp --dport 9867 -j DNAT --to 192.168.122.136:22

本地连接设置:


iptables -t nat -A OUTPUT -p tcp --dport 9867 -j DNAT --to 192.168.122.136:22

伪装本地子网:


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

可以试试。

要回复问题请先登录注册