Installing the Driver[]

Go to the control panel and select the Add Hardware applet.

Once launched click the Next button. . .

It will attempt to locate hardware for you. Wait patiently, but it won't find your TAP-win32 driver.

Select the "Yes" option. If you select no then it will tell you to connect it and try again. Since the TAP-win32 is a virtual device it is installed even though it doesn't exist. Click Next.

Scroll down to the bottom of the installed hardware list and choose "Add a new hardware device", then click Next.

Ignore the recommendation to let it search automatically. It won't find it. Choose the manual / advanced option, then click Next.

Scroll down through the hardware types and select "Network adapters" then click Next.

This screen took a few seconds to come up for me. Once it come up click Have Disk.

Specify the location of the provided TAP-Win32 driver files (by default, C:\Program Files\coLinux\netdriver\) and click OK.

You should only have one option, make sure it is selected and click Next. Don't worry about the fact it isn't digitally signed. That is just a tactic by Microsoft to control driver manufactures.

Now windows is ready to install your driver. Click Next.

This warning is another technique by Microsoft to control driver manufactures. Just select Continue Anyway. coLinux already warned you that this is experimental and may destabilize your system, but you are obviously a risk taker that likes living on the edge and running the latest and coolest utilities.

My file progress dialog never showed any progress, but you need to wait for it to go away on it's own.

The wizard is finished. You can click Finish.

You should have a new icon in your system tray with a bubble letting you know that Local Area Connection 2 has an unplugged network cable.

Visiting Network connections you will see a new item here as well.

Post-driver steps: Routing and addresses (XP.. ymmv on Win2k..)[]

After installing the driver (read first heading, above, or just let the installer do it) you must:

Windows-side configuration:[]

  1. Right-click My Network Places and select Properties...
  2. Right click and Rename "Local Area Connection" and "Local Area Connection 2" to something more meaningful. I used "Real ethernet" and "Colinux TAP", respectively. (The default names may be different for you, depending on what adapters you currently have.) I will be using these two names when I refer to the adapters in the following steps. Note that you will need to change the network tag name in the default.colinux.xml(This is Old! ) configuration file to 'name="Colinux TAP"' in order for coLinux to detect the connection: <network index="0" type="tap" name="Colinux TAP" />
  3. Right-click and select properties for "Real ethernet". On the Advanced tab, check "Allow other network users to connect . . ." and say OK. A popup message then says "Your address will be ..." but it is _not_ referring to the interface you just edited, it's referring to the other interfaces that are connecting to you. Close out of those dialogs.
  4. Right click and select properties for "Colinux TAP". Click "Internet Protocol" in the list, and Properties.
  5. Select the radio button next to "Use the following IP address:". Type in an address like, subnet mask _You may leave Default gateway blank._ You may also leave DNS server addresses blank. (Why? Because there is only one node--the colinux node--at the other end of the network this adapter is connecting to, therefore routing and name resolution are irrelevant.) Say OK and close out of those dialogs.

You may want to verify what you've just done. Start>Run...>"cmd", press Enter, and at the prompt type "ipconfig /all". "Real ethernet" should have the network address you normally use. "Colinux TAP" should have

coLinux-side configuration[]

  1. Edit /etc/resolv.conf and use the same nameservers you use for Windows.
  2. Edit /etc/network/interfaces and make sure (this is the default anyway) that the address is 192.168.0.(something other than 1). Make sure the gateway is

You're done. :-)

The "aha" moment was when I realized that the TAP interface on windows and "eth0" on colinux are NOT the same adapter. They are _two different endpoints connected by a virtual wire_, and each must be configured separately.

Note: This will work fine if all you want to do is share the internet to your colinux system only. If you have a home network, you will not be able to share the internet to the home network at the same time as the colinux system.

So what if it doesn't work? I've got TAP installed & enabled in XP, but even though I'm seeing a network interface in ifconfig, I can't get any data in or out of it toetwork limitations in Windows XP Home versus Windows XP Pro, but I don't know about that.

<> Sort of. XP Home's Internet Connection Sharing seems to be a bit flaky in terms of not setting up the DHCP server, but giving the Linux install a static IP on should work fine. Equally, you may find it easier not to use Internet Connection Sharing at all, but to use the "Bridge Network Connections" option you get when you select two network interfaces to do a custom NAT setup. I've never yet fathomed how XP chooses *which way* to bridge the connections though, so YMMV

They are bridged both ways -- it's something like a poor-man's VLAN. The bridging effectively eliminates the individual interfaces as separate identities and aggregates them into a single interface, so you basically cannot set any properties of the individual interfaces. Presumably whatever properties were set before will remain (sans IP addresses). It's a very slick trick, but doesn't appear to be useful for colinux, which won't see the bridged device itself (the bridged interface in coLinux is like VMWare's bridged interface, and has nothing to do with XP's bridging).

I'm still fighting to get my coLinux online. ICS demands to reset my IP (currently assigned by DHCP to a 10.x.x.x address) to, which is simply *not an option*. My guess is Microsoft hardwired that IP in there in order to force you to buy Win2k Server for real NAT... or not.

Tip: The IP number assigned by ICS is not hardwired to 
It can be changed with the 'Advanced' button on the TCP/IP Properties window.
Tip: Netsh has help available (on WinXP pro). Try these commands:
c:\>netsh /?
c:\>netsh show alias
c:\>netsh diag gui
c:\>netsh diag show

The following requires win2k/xp *PRO* - The remote registry service is not available in the others. You can also use RRAS, or Routing and Remote Access to do what you want. It is a nt/2k/xp service that has a lot of networking functionality. Unfortunately in 2k pro and xp there is no gui to configure it easily. So we'll need to use netsh (how exciting). Just remember the remote registry service must be started before you attempt to configure it. Also, don't stop the remote registry service once RRAS is running. You must first stop RRAS, then stop the remote registry service. So now to the netsh stuff. Here's the command you'd use to setup a simple nat:

netsh routing ip nat install
netsh routing ip nat add interface "My Dsl modem" full
netsh routing ip nat add interface "Local Area Connection" private
netsh routing ip dnsproxy install

You can skip the last one if you don't want to run a dns proxy server. In that case, the machines behind your nat will need to use your ISP's dns server address rather than the nat's address. To uninstall the NAT is very simple, just one netsh command:

netsh routing ip nat uninstall

Then you can stop RRAS and after that, the remote registry service. One final note, while this works beautifully on 2k pro, it doesn't however seem to work on xp, but I am sure with a little bit of experimenting this can be overcome. I really hope it will be, because RRAS blows the doors off ICS in terms of functionality. <<<<<<< Your version


After a little bit of playing around, I got this thing to work (miraculously). netsh is about the most undocumented POS I have every seen (but i digress.)

Here's what you gotta do. 1. Change this registry key: My Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter from 0 (off-default) to 1 (enabled). This enables ip forwarding in Windows XP. This is crucial. 2. You need to disable ICS and the Windows Firewall (if running SP2). This is done by going to control panel, administrative tools, services, and finding "Windows Firewall/Internet Connection Sharing (ICS)." Shut this service down, and then disable it. 3. You then need to enable "Routing and Remote Access." Change its status from disabled to "Automatic" and then start it. 4. Now you can proceed with the netsh commands (in my example Local Area Connection is the NIC connected to the internet and COLinux is the TAP interface for COLinux):

netsh routing ip nat install
netsh routing ip nat add interface "Local Area Connection" full
netsh routing ip nat add interface "COLinux" private
netsh routing ip dnsproxy install

5. In COLinux, set your defaultgw to the IP of the COLinux nic on your XP box.

This works like a champ. Hope this helps!


This also works on WinXP Home edition!

Another person's comment: Works on WinXP Media Center - Open Administrative Tools and click on Services - These services are NOT on by default, you need to turn them on.


If you get this error, you have typed the name of the adapter incorrectly.

The interface 'adapter name' does not exist.
An interface with this name is not registered with the router.

If you get this error alone.

An interface with this name is not registered with the router.

Then type this:

netsh routing ip add interface name="adapter name" state=enable

Yet Another version :

As it turns out, the RRAS solution only works for real network adapters, not dialup networking. So if you have a USB dsl or cable modem hooked up directly, RRAS will not share to it. You would need to install a network adapter and connect an RJ45 cable to the device, if it has such a port. Otherwise the only other solution at this point looks like sygate, winroute, or nat32. There are many freeware proxy servers, what you could do, is install one, then socksify each linux or windows system. That way, all your applications will be able to transparently access the proxy. Still looking for a freeware NAT solution though...

Yet another update about DIAL-UP:
If you want to share your internet with dial-up internal connection (you have dial-up modem and someone connect to you over this modem) use this command with above:
netsh routing ip nat add interface internal private

But different Windows XP languages has different names of "internal" interface. So try to use native language to define "internal" interface name.

You may read details here:

Using Bridged Network[]

I started of with the first part of the documentation here but unfortunatly it wasn't sucessful. And I really didn't wanted to change too much in my windows (e.g. registry)

Then I just tried to make the network bridge - and voila! It is working perfect.

Here is what my setup looks like:

  • Hardware router for internet access =
  • The PC's itself is using DHCP (provided by the HW router)
  • I created a bridge with the real NIC and the coLinux NIC
  • this bridged Network is using DHCP to configure itself (just as the real NIC was doing before)
  • in coLinux I configured eth0 to have an address in the same subnet as the real local network (ifconfig eth0
  • in coLinux I defined the HW router as default gateway (route add default gw

From now on all my test pings to local addresses and internet domains were sucessful.

best regards KateiRen

Ugh, I've tried every one of these recipes without success... :( The one for netsh tells me I have to install NAT, but then gives me a message that NAT is already installed...

<ionreflex> Sometimes netsh seems to be not consistent : I tried to uninstall it and reinstall right away, but gave me the same errors; I had to reboot my XP to reset it and configure it again...

The paragraph titled "Using Bridged Network" above works with HW router. Only thing not mentioned in the setup steps is that after you create the bridge (by ctrl-selecting the two interfaces and right-click->bridge), you need to right click->properties of the bridge and then select your 'real' and 'colinux' interfaces, press 'ok'. Then both interfaces should show as enabled and bridged once colinux has booted. It seems like this step should not be needed but that's what I needed to do to get it to work.


Using WinXP Pro, it is possible to configure NAT without using the TAP device : since WinPCap make it possible to bridge between coLinux and XP, I installed the MS Looback interface and bridge it to coLinux; then I enabled NAT via netsh between my LAN adapter and the Loopback adapter and voilà, it's working! But it is slower than a simple bridge, way slower...


MassTranslated on Sun Apr 23 17:36:52 UTC 2006