IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Xen 虚拟机的 NAT 网络配置

vpsee.com 2014-11-06 23:59:43 累计浏览 1,620 次
本机暂存

   我们使用 Xen 虚拟机的时候一般都是用桥接(bridging)的方式把虚拟机(domU)直接暴露在网络上,就像网络上单独的一台服务器一样,这种方式简单好用,不用在 dom0 做任何的端口转发也不用任何 iptable 规则。不过除了 bridging 以外,Xen 还支持 routing 和 NAT 的方式配置虚拟机网络。比如我们想在一台物理服务器上安装5个虚拟机,这5个虚拟机能彼此访问也可以访问外网,但是外网不能直接访问这5个虚拟机,或者我们只有一个公网 IP 地址,但是需要5个虚拟机都能上网,这时候就可以用到 Xen 的 NAT 模式。

   首先确认系统的网络配置干净,上面没有复杂的网络设置,也没有以前配置留下来的网络桥接,因为 Xen 自带的脚本 network-nat 不是那么聪明,无法在复杂一点的网络设置里面正确配置。

   修改 Xen 的配置文件,确认下面几项配置后重启 xend,必要的话重启系统:

# vi /etc/xen/xend-config.sxp
...
#(network-script network-bridge)
(network-script network-nat)
...
#(vif-script vif-bridge)
#(vif-script     vif-route)
(vif-script     vif-nat)
...

# /etc/init.d/xend restart
Stopping xend daemon:                                      [  OK  ]
Starting xend daemon:                                      [  OK  ]

   修改虚拟机 domU 的配置文件,加上或者修改 vif 这行配上对应的内部网 IP 地址,这个内部网 IP 是自己随意设定的:

# vi /etc/xen/domu01
...
vif = [ "ip=10.0.0.1" ]
...

   启动虚拟机后修改网络配置,如果虚拟机是 Ubuntu 的话,网络配置在 /etc/network/interfaces,修改后重启:

# vi /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.0.0.1
gateway 10.0.0.254
netmask 255.255.255.0

# reboot

   本来还需要在 dom0 设定内核转发的(echo 1 > /proc/sys/net/ipv4/ip_forward),还记得上面修改 xend-config.sxp 时碰到的脚本 network-nat 吗?是的,那个脚本已经帮我们设置好 NAT 转发了,我们不用再添足了,也不用自己设置 iptable 规则了~

# vi /etc/xen/scripts/network-nat
...
op_start() {
        echo 1 >/proc/sys/net/ipv4/ip_forward
        iptables -t nat -A POSTROUTING -o ${netdev} -j MASQUERADE
        [ "$dhcp" != 'no' ] && dhcp_start
}
...

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. 记录一个软中断问题 (累计阅读 16,955)
  2. 豆瓣的Url结构方式一览 (累计阅读 7,938)
  3. nginx自定义模块编写-根据post参数路由到不同服务器 (累计阅读 7,354)
  4. NAT连通性测试工具以及Flash P2P中的NAT穿透原理 (累计阅读 5,704)
  5. 什么是NAT (累计阅读 5,011)
  6. 2012年数据库技术大会 百度和淘宝介绍的中间件对比 (累计阅读 3,999)
  7. 设置 XEN 的多网卡(3网卡4网卡..)桥接 (累计阅读 3,571)
  8. 深入理解 GRE tunnel (累计阅读 3,533)
  9. 规则引擎简介 (累计阅读 3,480)
  10. xen虚拟化之hvm类型虚拟机安装使用 (累计阅读 3,136)