Clear

记忆中的闪光,总会蒙尘。
随笔 - 6, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……

CoLinux的网络配置

昨天的说到配置CoLinux在Windows下面启动另一个分区里面的Linux,但是网络配置只是使用了最简单的slirp模式。

CoLinux的网络配置共有3种:

  • slirp:最简单的模式,CoLinux内可通过Windows系统访问网络,但外部不能直接访问Linux,如果需要访问,需要做端口映射。
  • tuntap:在Windows中虚拟一块网卡,Linux与Windows通过该网卡通讯,Linux不能直接访问外部网络,必须在Windows上配置路由和NAT,或者简单使用Windows的Internet连接共享ICS。
  • pcap-bridge:必须有一块连接网络的网卡才能使用,另外需要安装WinPCap软件。该模式将一块实际网卡模拟出另一块网卡并连接到网络,对外部看来,就好像实际上有两台不同机器一样。
  • ndis-bridge:与pcap-bridge模式一样,不过不使用WinPCap软件接口而是通过Windows的NDIS接口层模拟网卡。

下面是配置方式:

  • slirp模式

slirp模式的配置最简单,在CoLinux的配置里面:

eth0=slirp

就可以了。它的具体参数如下:

ethX=slirp,<MAC>,<redirections>

<MAC>可以用来指定网卡MAC地址,也可以直接留空

<redirections>用来指定端口映射,格式为tcp|upd:hostport:linuxport[:count],将Windows的tcp或者udp的hostport开始的count个端口映射到Linux系统的linuxport开始的count个端口上,如果要添加多个映射,用逗号分隔。如

eth0=slirp,,tcp:2222:22/tcp:4000:80:3

将Windows的端口2222,4000,4001,4002映射到Linux的端口22,80,81,82上。

  • tuntap模式

这个模式比较麻烦,实际上是虚拟了一块网卡和CoLinux相连,所以,Windows和Linux可以直接连接,但是Linux想要访问外网,则需要配置网关或者ICS。

配置参数:

ethX=tuntap,<network connection name>,<MAC>

<MAC>是MAC地址,可以不填

<network connection name>是使用Tuntap网卡名字,也可以不填,这样CoLinux会使用第一块Tuntap网卡。

但是tuntap网卡是可以安装多块的,如果需要指定某块具体的虚拟网卡,则需要指定这个名字。

正常安装CoLinux以后,Windows里面会多出来一块网卡,嗯,名字叫什么忘记了:)

进入Windows网上邻居属性界面,查看网络连接就可以看到这块网卡。在这里可以对网卡改名,比如我改成了“Tap-colinux”,然后在参数里面指定这个名字就可以使用这块虚拟网卡。

如果名字里面有空格,则必须使用双引号"括起来。

  • pcap-bridge和ndis-bridge模式

这两个模式实际上是差不多的,除了pcap需要WinPCap软件支持以外,事实上应该ndis模式会快一点?(猜的,没测试过)

这两个模式是先有的pcap,后来才加上了ndis模式,毕竟不需要额外装个软件还是比较容易接受一点的。

具体配置参数:

ethX=pcap-bridge|ndis-bridge,<network connection name>,<MAC>,<promisc|nopromisc>

<network connection name>指定要在哪一块真实网卡上模拟虚拟网卡,这个名字也就是在Windows网上邻居属性界面里,查看网络连接时看到的名字(在那里也可以改名的),这个名字不能省略,否则网络跑不起来的。

而且需要注意的是,这块网卡必须要连通网络,否则的话,这个两个模式都不能用。

最后需要注意的是,在一些无线网卡上,这两个模式无法运作。具体原因好像是网卡只接受发到真实网卡的包,其他包直接不要还是怎么的,总之是不能使。(顺便说一句,我的无线网卡就不行,哭啊)

<MAC>还是MAC地址,可省略。

<promisc|nopromisc>指定是否工作在sniffer模式下,如果是promisc模式,则能够收到不是发到这块虚拟网卡的网络包,也就可以使用一些sniffer软件了。而nopromisc模式则正好相反,不能使用sniffer软件。

 

  • 好了,现在说说我怎么配的吧。

昨天的配置文件里面使用的是slirp模式,并且将2222映射到22端口。

然后我先试了下ndis-bridge模式,可惜的怎么都不行,我的无线网卡恐怕是不能支持这种模式了。

最后还是使用tuntap模式:

eth0=tuntap,,02:00:00:00:00:02

然后,去无线网卡属性里面,“共享”页面,打开ICS,指定对Tap-colinux网卡共享网络,这样就可以了。

 

  • 最后,再点题外话。

这里没有说在Linux下面怎么设置网络,其实就和普通网卡一样设置就好了。

我没有做什么特别的设置,Debian起来以后,自己认出网卡,然后dhcp获得IP,一切就好了。

slirp模式下CoLinux会负责分配ip的,tuntap模式下,ICS也会分配。

如果使用ndis或者pcap模式,它实际上就相当于是另一台机器上的一块网卡一样,家里的无线?路由器自然会负责给它分配IP的。

posted on 2009-09-27 22:29 Clear 阅读(4575) 评论(0)  编辑 收藏 引用 所属分类: LinuxCoLinux


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理