基于KVM虚拟机的虚拟OS通信方法总结

下面介绍的方法适用于多种虚拟机,如KVM、VBox、VMware等;
       这里我用的操作系统是Ubuntu10.04,其他平台没有实验。
原理介绍:
        虚拟一个网桥,让网桥获得本机器的IP,把ethx和tapx放在网桥里面(mac一定要确保不同)。
然后,这些虚拟的网卡可以通过网桥来上网或者互相通信了。


如果您没有安装KVM运行命令: sudo apt-get install ubuntu-virt-server ubuntu-virt-mgmt
这个命令安装kvm,libvirt-bin,openssh-server,virt-manager,python-vm- builder,virt-viewer等包。
如果您已经安好了KVM或者其他的虚拟机,一定确保有下面的这些包,
bridge-utils,uml-utilities,libvirt等。这些包支持虚拟网卡网桥的管理。
然后将您的账户添加到libvirtd用户组,即执行命令: sudo adduser username libvirtd

首先要先创建两个虚拟网卡,当然,多了也可以 ^-^。

tunctl -t tap0 -u username
tunctl -t tap1 -u username


然后将两个虚拟的网卡和物理网卡工作模式设置为混杂模式,不明白混杂模式的自己去查。

ifconfig tap0 0.0.0.0 promisc  (tap1 eth0只需替换掉tap0即可)

然后创建一个网桥,并将虚拟的和物理网卡全放进去

brctl addbr br0
brctl addif br0 tap0
(tap1 eth0只需替换掉tap0即可)

让网桥获得IP: dhclient br0
(如果您想开机就能配置好环境则需要写好启动脚本,放到开机启动项里面)
然后就可以开启虚拟机了,我这里用ISO代替硬盘启动了:
启动代码: kvm -cdrom LinuxMint-8.iso -m 512 -net nic,macaddr=52:54:00:12:34:78 -net tap,ifname=tap1,script=no -localtime

其他类同, 记住一定要指定不同的mac值,如果不知定将会得到相同的IP,就不能通信了,本人在这个问题上费了不少时间。
### 解决 Linux 系统中 pip 安装包时出现的 `externally-managed-environment` 错误 在 Debian 系统上使用 pip 安装 Python 包时遇到 `error: externally-managed-environment` 的错误提示,通常是因为当前环境被标记为由外部工具管理所致。为了消除这一障碍并顺利执行安装操作,可以采取以下措施: #### 方法一:临时忽略此限制 通过命令行参数告知 pip 跳过对外部管理环境的检测,从而允许正常安装所需的软件包。 ```bash python3 -m pip install --no-warn-script-location --break-system-packages <package_name> ``` 这条指令中的选项 `--break-system-packages` 将会绕过对于系统级 Python 环境是否受其他程序控制的验证过程[^1]。 #### 方法二:修改文件名以移除外部管理标志 另一种方法涉及物理更改特定配置文件的名字来解除该约束条件。具体来说就是重命名或移动名为 EXTERNALLY-MANAGED 文件的位置,使其不再影响到 pip 的行为模式。 ```bash sudo mv /usr/lib/python3/dist-packages/EXTERNALLY-MANAGED \ /usr/lib/python3/dist-packages/EXTERNALLY-MANAGED.bak ``` 请注意上述路径可能依据不同版本号有所变化,请根据实际情况调整相应目录结构[^2]。 #### 建议做法 考虑到系统的稳定性和安全性,在生产环境中应优先考虑创建独立虚拟环境来进行开发工作,这样不仅可以规避此类权限冲突问题,还能更好地隔离各个项目之间的依赖关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值