Linux操作系统下Virtual Box的网络设置

来源:中国IT实验室 作者:中国IT实验室
  

先安装一些工具

apt-get install uml-utilities(tunctl要用到)

tunctl可以生成一个tap,我的理解是虚拟网卡

apt-get install bridge-utils (brctl要用到)

brctl就是设置一个网桥了

 

主机是debian,IP是192.168.1.2

就一张网卡eth0

 

客户机是XP

 

路由上开通了dhcp功能,地址是192.168.1.1

 

virtualBox上网方式有三种

nat

这种方式在客户机上不用做设置,直接自动捕获就行了,得到的地址也和外部地址不一样.

我这里是

IP:10.0.2.15

gw:10.0.2.2

可以访问外网,但主客机不能互访。

 

Host Interface

这个是最复杂的,leemars更出了四种方案,直接引用这四种方案了

 

-----------------------------------------------------------------------------

 

方案一:

其实是利用iptables的nat功能来实现主客机通信的

引用自leemars,这个我没试

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来完成.

方案二 : Transparent Bridge (Layer 2)

我用这个方案的,其实是生成一个网桥,然后将虚拟网卡和物理网卡用网桥连接起来.

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

 

可以实现主客机直接互访

-----------------------------------------------------------------------------

 

方案三 : Transparent IP (Layer 3) proxy ARP bridge (by parprouted)

这个我没试,因为需要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地址即可.

 

-----------------------------------------------------------------------------

方案四 : 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

 

直接可以互访了

 

3.Internal network

这个不知道是什么样的。

(责任编辑:A6)


时间:2007-09-18 13:29 来源:中国IT实验室 作者:中国IT实验室 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量