mirror of
https://github.com/beyondx/Notes.git
synced 2026-02-11 22:36:18 +08:00
Add New Notes
This commit is contained in:
108
Zim/Utils/virtualbox/2.txt
Normal file
108
Zim/Utils/virtualbox/2.txt
Normal file
@@ -0,0 +1,108 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-05-27T10:56:04+08:00
|
||||
|
||||
====== 2 ======
|
||||
Created Friday 27 May 2011
|
||||
|
||||
virtualbox 自带的网络配置模式要么选择host-only,要么bridge,对于经常使用virtualbox的同学一定想要像vmware一样的nat配置,既可以让host访问guest,又可以让guest访问外部网络
|
||||
|
||||
下面是安装步骤
|
||||
|
||||
1. 建立桥接网络
|
||||
|
||||
apt-get install bridge-utils
|
||||
|
||||
修改/etc/network/interfaces
|
||||
|
||||
增加以下内容:
|
||||
|
||||
####################################################
|
||||
|
||||
# VirtualBox NAT bridge
|
||||
|
||||
auto vnet0
|
||||
|
||||
iface vnet0 inet static
|
||||
|
||||
address 172.16.0.1
|
||||
|
||||
netmask 255.255.255.0
|
||||
|
||||
bridge_ports none
|
||||
|
||||
bridge_maxwait 0
|
||||
|
||||
bridge_fd 1
|
||||
|
||||
up iptables -t nat -I POSTROUTING -s 172.16.0.0/24 -j MASQUERADE
|
||||
|
||||
down iptables -t nat -D POSTROUTING -s 172.16.0.0/24 -j MASQUERADE
|
||||
|
||||
####################################################
|
||||
|
||||
up网卡
|
||||
|
||||
sudo ifup vnet0
|
||||
|
||||
2. 启用ip 转发
|
||||
|
||||
修改/etc/sysctl.conf 去掉这行的注释
|
||||
|
||||
# Uncomment the next line to enable packet forwarding for IPv4
|
||||
|
||||
net.ipv4.ip_forward=1
|
||||
|
||||
运行下面命令使其生效
|
||||
|
||||
sysctl -p
|
||||
|
||||
3. 为虚拟机搭建dhcp服务器和dns服务器
|
||||
|
||||
apt-get install dnsmasq
|
||||
|
||||
修改/etc/dnsmasq.conf
|
||||
|
||||
去掉下面的注释
|
||||
|
||||
# Include a another lot of configuration options.
|
||||
|
||||
#conf-file=/etc/dnsmasq.more.conf
|
||||
|
||||
conf-dir=/etc/dnsmasq.d
|
||||
|
||||
在/etc/dnsmasq.d/目录下面增加一个名为virtualbox的文件,内容为:
|
||||
|
||||
#######################################
|
||||
|
||||
interface=vnet0
|
||||
|
||||
dhcp-range=172.16.0.2,172.16.0.254,1h
|
||||
|
||||
dhcp-option=option:dns-server,172.16.0.1,208.67.222.222,208.67.220.220
|
||||
|
||||
dhcp-option=option:domain-name,precision-m65
|
||||
|
||||
# mac地址 , 主机名, 分配的ip
|
||||
|
||||
dhcp-host=08:08:27:00:00:02,vmxp,172.16.0.20 # Windows XP
|
||||
|
||||
dhcp-host=08:08:27:00:00:03,vmubuntu,172.16.0.30 # Ubuntu
|
||||
|
||||
#######################################
|
||||
|
||||
4.修改virtualbox 虚拟机配置
|
||||
|
||||
a. 打开虚拟机配置
|
||||
|
||||
b. 选择网络
|
||||
|
||||
c. 选择Attached to: "Bridged Adapter"
|
||||
|
||||
Name: "vnet0"
|
||||
|
||||
Advanced-> Mac Address:080827000002 #对应3步中virtualbox给虚拟机分配的mac地址,注意去掉冒号
|
||||
|
||||
d. 应用生效
|
||||
|
||||
启动虚拟机,看看是不是分配了正确的地址,上面配置在ubuntu 10.04 LTS上测试通过,其他发行版类似
|
||||
61
Zim/Utils/virtualbox/3.txt
Normal file
61
Zim/Utils/virtualbox/3.txt
Normal file
@@ -0,0 +1,61 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-05-27T10:56:44+08:00
|
||||
|
||||
====== 3 ======
|
||||
Created Friday 27 May 2011
|
||||
http://linux.chinaitlab.com/administer/770766.html
|
||||
一般而言,安装完VirtualBox设定网路时选择默认的NAT模式,Guest就可顺利联网了,但是这种方式比较死板,要作更有弹性的变化,应该采用桥接模式(Bridged),这里的桥接模式就如同VMware中的Bridged模式,Host与Guest在局域网(LAN)中的地位是相等的。
|
||||
|
||||
1. 在基于 Debian 和 Ubuntu 的系统上,首先要安装含有建立虚拟网络设备 ( TAP interfaces ) 的工具 uml-utilities 和桥接工具 bridge-utils:
|
||||
sudo apt-get install uml-utilities
|
||||
sudo apt-get install bridge-utils
|
||||
为了使你的虚拟机能够访问网络接口,你必须将运行虚拟主机的用户的用户名(通常是你的ubuntu登录用户名)添加到uml-net用户组(请用你的用户名替换其中的“vboxuser”):
|
||||
sudo gpasswd -a vboxuser uml-net
|
||||
注意:为了使改动生效,请重新启动你的电脑。
|
||||
|
||||
|
||||
2. 向你的 Debian 或者 ubuntu 操作系统描述你要添加的虚拟网络设备,编辑 /etc/network/interfaces:(请先备份)
|
||||
sudo vim /etc/network/interfaces
|
||||
在打开的文件后面添加下面的内容,将虚拟网络接口命名为 "tap0",指定该接口IP配置方法为手动,并指定使用该接口的用户(请用你的用户名替换其中的 "vboxuser"):
|
||||
auto tap0
|
||||
iface tap0 inet manual
|
||||
up ifconfig $IFACE 0.0.0.0 up
|
||||
down ifconfig $IFACE down
|
||||
tunctl_user vboxuser
|
||||
|
||||
|
||||
3. 首次使用需要激活刚才建立的虚拟网络接口和网络桥:
|
||||
sudo /sbin/ifup tap0
|
||||
sudo /sbin/ifup br0
|
||||
这个步骤只需要做一次,下次主机重新启动时,这个接口和桥将自动激活。
|
||||
|
||||
|
||||
3. 另外还需要在 /etc/network/interfaces 中加入如下内容,建立一个名叫 "br0" 的桥,该桥的IP配置方法为通过DHCP配置,主机中的所有网络接口,也包括tap0这个虚拟网络接口,都将建立在这个桥之上:
|
||||
auto br0
|
||||
iface br0 inet dhcp
|
||||
bridge_ports all tap0
|
||||
在这里你可以根据自己的网络状况做相应的更改,你可以使网络桥使用静态 IP:
|
||||
#iface br0 inet static
|
||||
address 192.168.1.2
|
||||
netmask 255.255.255.0
|
||||
network 192.168.1.0
|
||||
broadcast 192.168.1.255
|
||||
gateway 192.168.1.1
|
||||
|
||||
4. 首次使用需要激活刚才建立的虚拟网络接口和网络桥:
|
||||
sudo /sbin/ifup tap0
|
||||
sudo /sbin/ifup br0
|
||||
这个步骤只需要做一次,下次主机重新启动时,这个接口和桥将自动激活
|
||||
5. 让 virtualbox 使用这个虚拟网络接口,启动 virtualbox,在主界面上选中要使用刚才建立的虚拟网络接口tap0的虚拟机,点“设置”,在弹出的窗口中选“网络”,选中其中一块网卡(通常为 “网络适配器 0”),选中“启用网络适配器”,“连接到”后面选 "Host Interface",选中“接入网线”,然后在“主机网络界面名称”中填入刚才建立的虚拟网络接口的名字 "tap0",确定。同样的你也可以使用 VBoxManage 的命令行工具(将 "My VM" 换成你的虚拟机名字 ):
|
||||
VBoxManage modifyvm "My VM" -hostifdev1 tap0\
|
||||
|
||||
|
||||
最后,配置主机和虚拟机的网络,使主机和虚拟机在同一个网段,这样主机和虚拟机就成了局域网中地位相同的两台机器了,可以互相访问了。
|
||||
|
||||
|
||||
撤销网络桥
|
||||
1. 禁用网桥和虚拟网卡:
|
||||
sudo /sbin/ifdown br0
|
||||
sudo /sbin/ifdown tap0
|
||||
2. 将前面修改的 /etc/network/interfaces 文件还原。
|
||||
190
Zim/Utils/virtualbox/VirtualBox网络配置详解.txt
Normal file
190
Zim/Utils/virtualbox/VirtualBox网络配置详解.txt
Normal file
@@ -0,0 +1,190 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-05-27T10:57:26+08:00
|
||||
|
||||
====== VirtualBox网络配置详解 ======
|
||||
Created Friday 27 May 2011
|
||||
http://www.linuxsir.org/bbs/showthread.php?t=293771
|
||||
标题: [原创]VirtualBox网络配置详解
|
||||
|
||||
欢迎转载, 转载请注明作者, 谢谢
|
||||
|
||||
下面简单介绍一下Test-bed Environment:
|
||||
|
||||
Host : 偶的本本
|
||||
OS : Arch Linux (Kernel Version 2.6.20) 已安装uml_utilities(包含tunctl工具)和bridge-utils(包含brctl工具)两个包.
|
||||
Username : leemars
|
||||
LAN IP : 192.168.1.106/24
|
||||
Interface : ath0
|
||||
|
||||
Guest : 偶的本本上的一个虚拟机
|
||||
OS : Win2003
|
||||
Host Interface : tap0
|
||||
|
||||
Non-Host : 偶的台式机
|
||||
OS : WinXP
|
||||
LAN IP : 192.168.1.120/24
|
||||
|
||||
Wireless Router:
|
||||
LAN IP : 192.168.1.1/24 Gateway
|
||||
WAN IP : 172.18.60.55/24 绑定MAC
|
||||
Router开启了DHCP
|
||||
|
||||
Network Environment :
|
||||
Non-Host直接接在无线路由上, Host通过无线网卡与无线路由连接. 无线路由开启了DHCP功能.
|
||||
|
||||
===================================
|
||||
|
||||
最简单的方案 : NAT(by VirtualBox)
|
||||
|
||||
Host :
|
||||
直接使用VirtualBox提供的NAT功能.
|
||||
|
||||
Guest :
|
||||
网卡设置为使用DHCP.
|
||||
|
||||
Guest -> WAN :
|
||||
由VirtualBox的NAT提供WAN的访问服务.
|
||||
|
||||
Guest -> Host :
|
||||
需要注意的是, 如果直接访问Guest拿到的网关IP, 会发现这个IP似乎是Host. 不过事实上不能直接访问网关IP来访问Host. 因为这个IP是由VirtualBox负责的, 只实现了NAT的功能, 其他的一些功能并不能正常运行(如FTP). 如果要访问Host, 应该访问Host的真实IP.
|
||||
|
||||
Host -> Guest :
|
||||
不可访问. 虽然VirtualBox的NAT功能中包括了Port Forwarding的功能, 但截至到1.3.6 Snapshot, 这个功能仍没有出现在GUI中. 不过在OSE Version中已经可以使用这个功能. 通过Port Forwarding可以实现部分的向内访问.
|
||||
|
||||
VirtualBox NAT没有什么玩法了. 下面的方案都是使用VirtualBox的Host Interface功能.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
方案一 : NAT(by Linux) + Route
|
||||
|
||||
Host :
|
||||
#echo 1 > /proc/sys/net/ipv4/ip_forward #打开转发功能
|
||||
#iptables -t nat -A POSTROUTING -j MASQUERADE #利用iptables完成NAT功能
|
||||
|
||||
#chmod 0666 /dev/net/tun #设置访问权限
|
||||
#tunctl -t tap0 -u leemars #建立一个tap设备, 名字为tap0, 所有者为leemars
|
||||
#ifconfig tap0 up #激活tap0
|
||||
#ifconfig tap0 10.10.10.1 netmask 255.255.255.0 #为tap0指定IP和网段, 为10.10.10.1/24.
|
||||
|
||||
Guest :
|
||||
网卡设置如下:
|
||||
IP : 10.10.10.10
|
||||
Netmask : 255.255.255.0
|
||||
Gateway : 10.10.10.1
|
||||
|
||||
Guest -> WAN :
|
||||
由Linux的iptables完成NAT功能, 提供WAN的访问服务.
|
||||
|
||||
Guest -> Host :
|
||||
10.10.10.1是真实的Host. Guest对Host的任何访问都可以通过访问10.10.10.1来完成.
|
||||
|
||||
Host -> Guest :
|
||||
10.10.10.10是真实的Guest. Host对Guest的任何访问都可以通过访问10.10.10.10来完成.
|
||||
|
||||
Non-Host -> Guest :
|
||||
因为Guest是在Host的NAT之后的一个私有子网中, 所以直接访问是不行的. 不过可以通过iptables来完成Port Forwarding, 实现部分的向内访问.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
方案二 : Transparent Bridge (Layer 2)
|
||||
|
||||
在我的机器上测试下来的结果很遗憾, 无线网卡似乎不能配合Bridge工作. 建好Bridge之后, Guest只能访问Host, 连网关都访问不到. 所以我改用有线网卡来进行测试, 有线网卡为eth0, IP地址同ath0.
|
||||
|
||||
Host :
|
||||
|
||||
#chmod 0666 /dev/net/tun #设置访问权限
|
||||
#tunctl -t tap0 -u leemars #建立一个tap设备, 名字为tap0, 所有者为leemars
|
||||
|
||||
#ifconfig eth0 0.0.0.0 promisc #使eth0进入promiscuous模式
|
||||
#ifconfig tap0 0.0.0.0 promisc #使tap0进入promiscuous模式
|
||||
#brctl addbr br0 #增加一个网桥
|
||||
#brctl addif br0 eth0 #将eth0加入网桥
|
||||
#ifconfig eth0 up #激活eth0
|
||||
#dhclient br0 #为br0设置IP地址
|
||||
#brctl addif br0 tap0 #将tap0加入网桥
|
||||
#ifconfig tap0 up #激活tap0
|
||||
|
||||
Guest :
|
||||
网卡设置为DHCP. 或者在设置为Host的Subnet中的一个IP地址, 如下例:
|
||||
IP : 192.168.1.201
|
||||
Netmask : 255.255.255.0
|
||||
Gateway : 192.168.1.1
|
||||
|
||||
Guest -> WAN :
|
||||
由网关提供WAN的访问服务.
|
||||
|
||||
Guest -> Host :
|
||||
直接访问Host的IP地址即可.
|
||||
|
||||
Host -> Guest :
|
||||
直接访问Guest的IP地址即可.
|
||||
|
||||
Non-Host -> Guest :
|
||||
直接访问Guest的IP地址即可.
|
||||
(由于建立了eth0和tap0的Bridge, Non-Host的ARP包被eth0接收到后, 被Brideg转发至tap0上, 数据链路得以建立.)
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
方案三 : Transparent IP (Layer 3) proxy ARP bridge (by parprouted)
|
||||
|
||||
Host :
|
||||
#echo 1 > /proc/sys/net/ipv4/ip_forward #打开转发功能
|
||||
|
||||
#chmod 0666 /dev/net/tun #设置访问权限
|
||||
#tunctl -t tap0 -u leemars #建立一个tap设备, 名字为tap0, 所有者为leemars
|
||||
#ip link set tap0 up #激活tap0
|
||||
#ip addr add 169.1.1.1/32 dev tap0 #为tap0任意指定一个私有地址
|
||||
#parprouted [-d] ath0 tap0 #启动parprouted监听ath0和tap0. -d参数为Debug模式
|
||||
|
||||
Guest :
|
||||
网卡设置如下:
|
||||
IP : 192.168.1.201
|
||||
Netmask : 255.255.255.0
|
||||
Gateway : 192.168.1.1
|
||||
|
||||
Guest -> WAN :
|
||||
由网关来提供WAN的访问服务.
|
||||
|
||||
Guest -> Host :
|
||||
直接访问Host的IP地址即可.
|
||||
|
||||
Host -> Guest :
|
||||
直接访问Guest的IP地址即可.
|
||||
|
||||
Non-Host -> Guest :
|
||||
直接访问Guest的IP地址即可.
|
||||
|
||||
Troubleshooting:
|
||||
这个parprouted软件有时会出现无法连通的情况. 这时可以尝试更换Guest的IP地址来解决问题. 这个貌似是parprouted软件的BUG.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
方案四 : ARP Proxy(by Linux) + Route
|
||||
|
||||
Host :
|
||||
#echo 1 > /proc/sys/net/ipv4/ip_forward #打开转发功能
|
||||
|
||||
#chmod 0666 /dev/net/tun #设置访问权限
|
||||
#tunctl -t tap0 -u leemars #建立一个tap设备, 名字为tap0, 所有者为leemars
|
||||
#ip link set tap0 up #激活tap0
|
||||
#route add -host 192.168.1.201 dev tap0 #增加一个路由, 将192.168.1.201定向到tap0
|
||||
#echo 1 > /proc/sys/net/ipv4/conf/ath0/proxy_arp #打开ath0上的ARP Proxy
|
||||
#echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp #打开tap0上的ARP Proxy
|
||||
|
||||
Guest :
|
||||
网卡设置如下:
|
||||
IP : 192.168.1.201
|
||||
Netmask : 255.255.255.0
|
||||
Gateway : 192.168.1.1
|
||||
|
||||
Guest -> WAN :
|
||||
由网关来提供WAN的访问服务.
|
||||
|
||||
Guest -> Host :
|
||||
直接访问Host的IP地址即可.
|
||||
|
||||
Host -> Guest :
|
||||
直接访问Guest的IP地址即可.
|
||||
|
||||
Non-Host -> Guest :
|
||||
直接访问Guest的IP地址即可.
|
||||
62
Zim/Utils/virtualbox/虚拟网络配置.txt
Normal file
62
Zim/Utils/virtualbox/虚拟网络配置.txt
Normal file
@@ -0,0 +1,62 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-05-27T10:54:31+08:00
|
||||
|
||||
====== 虚拟网络配置 ======
|
||||
Created Friday 27 May 2011
|
||||
http://linux.chinaitlab.com/administer/728769.html
|
||||
本文假设Host系统是Ubuntu 7.04,Guest系统是CentOS 5.0,其他Linux类系统的配置应该与此类似。
|
||||
|
||||
首先确保安装了网桥工具(bridge-utils)和用户模式Linux工具(uml-utilities),如果没有可运行如下命令安装:
|
||||
|
||||
# apt-get install bridge-utils uml-utilities
|
||||
|
||||
并确保普通用户可访问虚拟网卡设备,
|
||||
|
||||
# chmod 0666 /dev/net/tun
|
||||
|
||||
1. NAT方式
|
||||
|
||||
VirtualBox软件在内部虚拟出NAT网络,该网络在Host系统不可见,更不可配置,Guest系统设置DHCP方式获取网络地址,即可直接访问Host网络。
|
||||
|
||||
需要注意的是启动Guest系统之前必须确保网络是连通的,否则Guest系统起来后无法访问Host系统后来连通的网络,比如ADSL拨号上网。
|
||||
|
||||
2. 路由方式
|
||||
|
||||
首先给Host系统创建一块虚拟网卡,
|
||||
|
||||
# tunctl -t vb0 -u marchday
|
||||
|
||||
网卡的名称是vb0,授权使用的用户是marchday。
|
||||
|
||||
然后创建Guest,指定Host Interface,并指定Host Interface Name为vb0,即上面我们创建的虚拟网卡。Guest系统启动后其网卡相当于和vb0相连,然后我们就可以分别配置Host和Guest的网卡,使其 可相互连通,并使Guest系统访问外部网络。
|
||||
|
||||
需要注意的是一块虚拟网卡同时只能连接一个Guest系统,如果你同时启动了好几个Guest系统,需要为每个Guest创建虚拟网卡。
|
||||
|
||||
3. 桥接方式
|
||||
|
||||
网桥工作在TCP/IP的第二层,数据链路层。它只能感知MAC地址,对IP及以上层是无法感知的。你可以把网桥想象成交换机,一般情况下有两个 口,数据在两个口之间转发,Linux下的桥接设备可以加入很多接口,真正地像一个多口的交换机,而且还支持STP( spanning tree protocol )。
|
||||
|
||||
在Linux下,网桥接口和第一个加入的接口MAC地址保持一致。
|
||||
|
||||
这里我们考虑两种结构的网络拓扑。
|
||||
3.1 Guest系统的网卡直接和公司局域网相连
|
||||
|
||||
假设 Host系统的 eth0 和公司局域网相连,通过dhcp获取IP地址,并通过局域网接入Internet。在这种网络拓扑下,Guest系统的网卡相当于直接接入公司的局域网,这种接入是通过桥接实现的,我们看看怎么做。
|
||||
|
||||
添加虚拟网卡接口
|
||||
# tunctl -t vb01 -u marchday
|
||||
添加网桥设备接口
|
||||
# brctl addbr br0
|
||||
把物理网卡eth0配置为promisc模式
|
||||
# ifconfig eth0 0.0.0.0 promisc
|
||||
把物理网卡eth0加入网桥
|
||||
# brctl addif br0 eth0
|
||||
获取网桥设备的IP地址
|
||||
# dhclient br0
|
||||
把虚拟网卡加入网桥
|
||||
# brctl addif br0 vb01
|
||||
激活虚拟网卡
|
||||
# ifconfig vb01 up
|
||||
|
||||
这是最快捷的虚拟机上网方式,启动虚拟机就跟启动局域网的一台物理机器一样,马上就可以获取IP地址上网。
|
||||
Reference in New Issue
Block a user