Using the Wifi of a notebook via ethernet for another PC

13,476

It's pretty easy. You need to connect PC to notebook. Configure eth0 on PC (set for example ip = 192.168.2.3 and default gateway 192.168.2.2 and dns server to 8.8.8.8). That's all you need to do on PC. On notebook you need to set up the internet connection as usual and configure eth0 with the following way: set ip address to 192.168.2.2, enable net forwarding with iptables.

Hope you're able to set up ip, gw and dns. To set up forwarding execute following script from root user:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
INET="wlan0"
INETIP="$(ifconfig $INET | sed -n '/inet addr/{s/.*addr://;s/ .*//;p}')"
iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INETIP

Watch out any specific iptables rules you're already have. To disable them you can execute before the script above:

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

And voila, you have the internet on PC.

Share:
13,476

Related videos on Youtube

Ana Ban
Author by

Ana Ban

Updated on September 18, 2022

Comments

  • Ana Ban
    Ana Ban over 1 year

    I want to connect a PC to the internet via my notebook, which is connected to a WLAN.

    The setup should look like the following scheme: PC (eth0) -> Notebook (eth0) -> Notebook(wlan0) -> Router.
    Both are running linux - arch on the notebook and funtoo on the PC.

    Edit: So I tried rush's method and it didn't work for me, here is what I did:

    PC:

    ifconfig eth0 192.168.2.3
    route add default gateway 192.168.2.2
    nameserver 8.8.8.8 > resolv.conf
    

    Notebook:

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to-source 192.168.2.101
    

    192.168.2.101 is the wlan0 IP address. I can't ping 192.168.2.2 (connect: Network is unreachable) and the connection doesn't seem to be working anymore on the notebook.

    • Admin
      Admin over 7 years
      On notebook, do: # ifconfig eth0 192.168.2.2
  • František Hartman
    František Hartman about 11 years
    Worked like a charm for me.