KVM虚拟机使用NAT+iptables做端口映射

Linux大全评论2.2K views阅读模式

今天一个网友咨询了我一个问题,情况是这样的。

他有一个KVM宿主机,一个外网IP绑定在了宿主服务器上,但是希望直接用ssh访问上面的所有虚拟机,还想虚拟机提供外网服务,解决方法如下:

环境为RHEL6.3,外网IP为115.183.0.1

1.网络方式使用NAT连接,配置文件为/etc/libvirt/qemu/networks/default.xml;

查看网络配置文件,下面的是默认情况

  1. # brctl show
  2. bridge name bridge id STP enabled interfaces
  3. virbr0 8000.5254005aa781 yes virbr0-nic

如果需要修改的话,可以直接修改或者创建新的文件,然后使用下面命令来创建新的网络

  1. virsh net-define 【filename】

2.安装VM

  1. virt-install --name linux-nat --ram 2048 --disk /data/linux.nat.raw --graphics \
  2. vnc,port=5902 --network network=default,model=virtio--vcpus=8--os-variant=rhel6
  3. --import

# /data/linux.nat.raw 这个是做好的Linux系统模版

3.查看宿主服务器virbr0的网卡信息

  1. ifconfig virbr0
  2. virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
  3. link/ether 52:54:00:5a:a7:81 brd ff:ff:ff:ff:ff:ff
  4. inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
  1. # iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
  2. # iptables -t nat -A PREROUTING -d 115.183.0.1 -p tcp -m tcp --dport 8000 -j DNAT --to-destination 192.168.122.2:22
  3. # iptables -t nat -A POSTROUTING -s 192.168.122.0/255.255.255.0 -d 192.168.122.2 -p tcp -m tcp --dport 22 -j SNAT --to-source 192.168.122.1

企鹅博客
  • 本文由 发表于 2020年6月14日 21:42:00
  • 转载请务必保留本文链接:https://www.qieseo.com/156032.html

发表评论