虚拟机是Linuxer常用的一个软件,因为有些应用在Linux是无法完成,必须在虚拟机内完成。不过虚拟机联网确实是一个比较麻烦的问题。NAT虽然简单,但是不能和宿主机通信确实一个遗憾。所以桥接联网可以算是现在最好的方式。 eth0为静态IP的情况下 首先安装bridge-utils和tunctl su -c 'yum install bridge-utils tunctl'然后查看tun模块是否已经被加载 lsmod | grep tun如果没有,则需要手动加载tun模块 su -c 'modprobe tun' 一切完成以后,则可以开始搭建桥接网络。首先是新建一个名为tap0的虚拟网卡,所有者为当前用户。 su -c ‘tunctl -t tap0 -u $USERNAME’新建一个名为br0的网桥 su -c 'brctl br0'使eth0进入promiscuous模式,不过执行此步之前最好记录原来eth0的IP,避免后面出现IP冲突。 su -c 'ifconfig eth0 0.0.0.0 promisc'将eth0加入br0 su -c 'brctl addif br0 eth0'设定br0的IP,最好使用原来eth0的IP,假设原来eth0的IP为192.168.1.1 su -c 'ifconfig br0 192.168.1.1 netmask 255.255.255.0'删除原来旧的网关,设定新的网关,假定网关为192.168.1.1 su -c 'route del default'将tap0加入br0 su -c ‘brctl addif br0 tap0’ 激活tap0 su -c 'ifconfig tap0 up'设定tun设备的读写权限 su -c 'chmod a+rw /dev/net/tun'然后在虚拟机的选择tap0作为网卡即可。 eth0为动态IP的情况下 eth0为动态IP的情况跟在静态IP的情况。基本一致。在保证dhclient已经被安装后,只需要把“设定br0的IP”、“删除旧网关”和“设定新网关”这三步替换为如下两步即可。 激活br0 su -c ‘ifconfig br0 up’ 获取br0的IP su -c ‘dhclient br0’开机后自动搭建桥接网络 因为当机器重启或者关闭以后,设定的桥接网络就会自动被系统移除。所以当机器每一次重启的时候,都搭建一次桥接网络,就显得麻烦了。不过我们可以借用bash脚本来实现开机后自动搭建桥接网络。 以eth0为动态获取IP,桥接两个虚拟网卡为例 在$HOME目录新建一个vmbridge.sh文件,打开后把以下内容复制粘贴下去,并保存 #!/bin/bash然后添加vmbridge.sh的执行权限 su -c ‘chmod +x $HOME/vmbridge.sh’把该脚本添加到rc.local开机脚本去,实现开机自动构建桥接网络 su -c 'echo "$HOME/vmbridge.sh" >> /etc/rc.local'注意事项
|
Virtualization >