我安装了 Ubuntu 服务器 14.04。并为其分配了静态 IP...然后安装了 KVM 和虚拟机管理器...然后创建了一个测试虚拟机,并且它也可以通过 NAT 使用本地 IP 地址正常工作。
我有两张 LAN 卡,但只有一张连接到互联网。
我想要的是将 em2 桥接到客户机的配置。因此,该静态 IP 地址也适用于客户机。现在,如果我将静态 IP 分配给客户机,则没有连接。
我的 ifconfig 详细信息是:
ifconfig -a
em1 Link encap:Ethernet HWaddr 0c:c4:7a:4d:96:aa
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Memory:f7100000-f717ffff
em2 Link encap:Ethernet HWaddr 0c:c4:7a:4d:96:ab
inet addr:68.168.105.130 Bcast:68.168.105.255 Mask:255.255.255.0
inet6 addr: fe80::ec4:7aff:fe4d:96ab/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3717 errors:0 dropped:10 overruns:0 frame:0
TX packets:373 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:269655 (269.6 KB) TX bytes:239608 (239.6 KB)
Interrupt:20 Memory:f7200000-f7220000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:123 errors:0 dropped:0 overruns:0 frame:0
TX packets:123 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8881 (8.8 KB) TX bytes:8881 (8.8 KB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:23:1c:65
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
virbr0-nic Link encap:Ethernet HWaddr 52:54:00:23:1c:65
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/etc/network/interfaces 详细信息如下:
auto lo
iface lo inet loopback
auto em2
iface em2 inet static
address 68.168.105.130
netmask 255.255.255.0
network 68.168.105.0
broadcast 68.168.105.255
gateway 68.168.105.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search dedicated.codero.net
答案1
步骤 1:创建桥梁
您可能已经bridge-utils
安装了,但如果您还没有安装:
sudo apt-get install bridge-utils
在主机中以 root 身份编辑/etc/network/interfaces
:
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 68.168.105.130
netmask 255.255.255.0
network 68.168.105.0
broadcast 68.168.105.255
gateway 68.168.105.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search dedicated.codero.net
bridge_ports em2
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
现在您可以重新启动或者:
sudo ifup br0
步骤 2:修改虚拟机定义以使用桥接
注意:可能有一种方法可以使用来完成这一步virt-manager
,但是我没有使用它并且不知道如何操作。
使用virsh edit
并更改接口定义行以使用桥接而不是当前正在使用的。这是我的一个虚拟机中的示例。之前:
<interface type='network'>
<mac address='52:54:00:0d:ed:95'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
后:
<interface type='bridge'>
<mac address='52:54:00:0d:ed:95'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
步骤 3:在来宾虚拟机中指定静态 IP 地址
现在,在运行客户虚拟机时(目前可能存在网络问题),编辑/etc/network/interfaces
并添加接口名称的静态定义。例如,对您的设置进行一些猜测:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 68.168.105.101
netmask 255.255.255.0
network 68.168.105.0
broadcast 68.168.105.255
gateway 68.168.105.1
dns-nameservers 8.8.8.8
dns-search dedicated.codero.net
笔记:
使用的默认编辑器virsh edit
由环境变量定义$EDITOR
,vi
如果不存在,则添加export EDITOR="/bin/nano"
到您的~/.bashrc
文件中进行设置,例如,nano 作为您的默认编辑器。
你必须使用virsh edit
do不是直接编辑 XML 文件,因为virsh edit
在保存并退出时会进行一系列检查。从任何目录,例如,执行:
virsh edit desk_tt