Internet sharing

From ArchWiki
Revision as of 13:28, 24 October 2010 by Exlevan (talk | contribs) (IPTABLES_FORWARD in /etc/conf.d/iptables should be set to 1)
Jump to: navigation, search

Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n links end


Let's assume you have an internet connection and you want to share it. There are two main ways to do that.

   internet                           pc1
1. ----> |router| ---> |switch| --->-<
                                      pc2 ..etc
2. ------> |pc1 (router)| --> pc2..etc


I'll explain the second way (it is easier and requires one less machine).

  1. Install a second network card to the first PC.
  2. Connect the two PCs (using crossover cable or a switch).
  3. Let's assume that the first card (with the internet) is called eth0 and the other one (for the sharing) is called eth1. (If those two keep switching at every boot read this ).
  4. Configure the second network card with:
    or enter in a console (as root)
    ifconfig eth1 netmask
    ifconfig eth1 up
  5. Enter that same information in your /etc/rc.conf so that this card is set up correctly earch time your computer starts. Note: If you use Wicd, you don't do this.
    eth1="eth1 netmask"
    INTERFACES=(lo eth0 eth1)
  6. Enable packet forwarding. To do so, write a "1" to /proc/sys/net/ipv4/ip_forward with:
    echo 1 > /proc/sys/net/ipv4/ip_forward
  7. Then edit /etc/sysctl.conf and set 1 to the net.ipv4.ip_forward (It should be net.ipv4.ip_forward=1). This will make that change persistant after a reboot.
  8. (If you haven't already) Install iptables and enter this rule (for the forwarding of the internet to the second PC) and save iptables.
    pacman -S iptables
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    /etc/rc.d/iptables save
  9. Edit /etc/conf.d/iptables and enable IP forwarding there (IPTABLES_FORWARD=1).
  10. Start iptables:
    /etc/rc.d/iptables start
  11. Add iptables in your DAEMONS array in your /etc/rc.conf so that it is started each time.
  12. Go to the second PC and set:
    DNS: The same DNS as the first PC
    Proceed like this (eth0 is assumed to be your network interface on PC2 with which you are connected to PC1):
    ifconfig eth0 netmask
    ifconfig eth0 up
    route add default gw eth0
    echo "nameserver <adr of nameserver>" >> /etc/resolv.conf
    You can figure out the address of the nameserver by looking into the /etc/resolv.conf of PC1, if its internet connection is already established.
Note: Of course, this also works with a mobile broadband connection (usually called ppp0 on PC1)

That's it. The second PC should now have internet.

See also