A Heterogeneous Linux/Windows 95 Home Network

Share resources such as printers, CD-ROM drives and data connections to the Internet.

With more than one computer common in many households, the need to network all machines and provide Internet access is important. Linux offers a stable network environment that can enable different operating systems (UNIX, Windows and Macintosh) to work together, and is quite easy to set up and administer. Such networks facilitate convenient file and print sharing and centralized backups. I will describe my home network configuration (see Figure 1) which is a mixture of Linux and Windows systems.

Figure 1. Network Configuration

I will assume you have basic knowledge of Linux installation and administration, and that PPP is set up on your Linux box. I will explain in detail how to network the Windows 95 machine named “ancho” with the Linux server named “serrano”. Adding other machines to the network is essentially a repetition of this process. I will also briefly discuss setting up the Linux client and NFS.

The Linux machine serrano is the file and print server for the Windows 95 and Linux clients, and connects to the outside world through a PPP dial-up connection. It also acts as a firewall; all other machines can reach the outside world through it. The CD-ROM drive on serrano is also available to the other machines on the network.


My hardware consists of 486 DX2/66 machines with 32MB RAM, and a Pentium 100 notebook which is used both on and off the network. I use NE2000 network cards (Realtek PnP, about $15) and coaxial 10Base-2 cables. If you have PCI boards (and I certainly hope you do), setup is easier, but the networking particulars still apply.

The Linux kernel probes address 0x300 for NE2000 cards, so the jumpers on the card are set for this I/O address on the Linux machine. On the Windows 95 machines, the network card jumpers are set for Plug-and-Play mode. When you network the machines with coaxial cables, make sure you use 50-ohm terminators (about $3 at Radio Shack) at the ends.

Software Installation and Configuration

I installed Red Hat Linux 5.2 off a CD. Installing everything took about 500MB of disk space. I have used Linux for a while now, so this part was painless. I was able to get X working nicely, PPP configured and a printer set up.

If you have a machine with a CD-ROM drive, Windows 95 installation should also be easy. I had to install Windows 95 from a parallel port CD-ROM drive. That was tricky, and took several tries.

The first goal in the networking effort is to establish communication between the Linux machine serrano and the Win95 machine ancho.

All the network configurations on serrano can be done from the Red Hat control panel (Network Configurator). Read the Net-3.HOWTO for more information on Linux networking. Basically, you need to have the eth0 interface with IP (or something like that) attached to it. To do this manually, execute the following command as root:

/sbin/ifconfig eth0 netmask\ up

The IP addresses chosen correspond to class C addresses. Typically, these are used for intranet networks. I had to explicitly put in a route:

route add -net eth0
This routing command says all packets to the network should be sent to the eth0 interface. This line is appended to the /etc/rc.local file, so that the route is set up at boot time.

On serrano, set up the host table /etc/hosts in a manner similar to this:     serrano    loghost     jalapeno   #Linux machine   piquin     #Linux/Windows     ancho      #Windows machine       localhost

To confirm that the eth0 interface is working, type /sbin/ifconfig eth0. The output from this command will look like Listing 1. If you then type more /proc/net/dev, the output will look like Listing 2. If PPP is up, you will see an additional line for the ppp0 interface. This should take care of serrano.

Listing 1

Listing 2

Now we proceed to the network configuration of ancho, the Windows 95 machine. You should have Windows 95 installed, the network card detected and drivers installed. At the time of network card installation, you will be asked for a machine name and a workgroup name. Give the machine name “ANCHO”, workgroup “WORKGROUP” and some optional comment like “My Compaq 486 machine”.

Go to the Control Panel and select “Networking”. Under “The following network components are installed”, you should see your network card (mine says “Realtek RTL8019 PnP LAN Adaptor or compatible”). You may see NetBEUI and IPX/SPX and TCP/IP in the same window. If you do not see TCP/IP, choose “Add”, then “Protocol”, click on “Add”, choose “Microsoft”, then choose “TCP/IP” and click “OK”. This should add TCP/IP to the installed components window. Once TCP/IP is added, if you highlight it, you will be able to choose “Properties”. When you click “Properties”, you will see a dialog containing several tabs. Pick these tabs, and assign the following:

IP Address

  IP Address:
  Subnet Mask:
Gateway (
DNS Configuration
  Enable DNS
  Host name: ancho
  DNS Server search order:
WINS Configuration
  Leave it Disabled.

You may leave the DNS disabled, or add your ISP's DNS server IP address. The important items here are your gateway and IP address. After you specify these and click “OK”, the machine will reboot.

After reboot, open a DOS window and type ping After a short pause, you should get a response like “Reply from bytes=32 time=4ms TTL=64”, repeated four times. If this fails, your network setup was not successful.

Now go to serrano and type ping -c2 ancho. If it can find ancho, you should get these two messages:

64 bytes from icmp_seq=0 ttl=32 time=3.9 ms
64 bytes from icmp_seq=1 ttl=32 time=2.3 ms

The -c2 argument to ping sends two packets. Without it, ping will have to be terminated with CTRL-C.

If this works, congratulations—the Linux machine and the Windows 95 machine can find each other.