Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10170881
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 虚拟化

2012-11-14 13:30:42

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

2012-11-14 10:33:48|  分类: 安全-rhel_iptabl |  标签: |字号 

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

他有一个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 

    进入虚拟机中,修改IP为192.168.122.2,网关为192.168.122.1

4.配置iptables,实现的原理是用户访问宿主IP的8000端口,然后iptables转发这个包到虚拟机的22端口上

  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 
阅读(969) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~