Internet Connection Sharing: Difference between revisions

Onny (talk | contribs)
Usage: Add missing nftable commands
Raboof (talk | contribs)
Share via ethernet: sharing with NetworkManager: very easy, as long as you update the firewall accordingly
 
(2 intermediate revisions by 2 users not shown)
Line 13: Line 13:


Here <code>eth0</code> is the ethernet interface connected to the internet, and <code>wlan0</code> is the wifi interface to share the internet connection with a wifi hotspot. However, these names may not be the same on your system. To check the name of your hardware interface use the command <code>ifconfig</code> or <code>ifconfig | grep ^[^:]*:</code> It will list network adapters on your system. Then modify command accordingly <code>sudo create_ap <wifiInterfaceName> <ethernetInterfaceName> MyAccessPoint <Password></code>
Here <code>eth0</code> is the ethernet interface connected to the internet, and <code>wlan0</code> is the wifi interface to share the internet connection with a wifi hotspot. However, these names may not be the same on your system. To check the name of your hardware interface use the command <code>ifconfig</code> or <code>ifconfig | grep ^[^:]*:</code> It will list network adapters on your system. Then modify command accordingly <code>sudo create_ap <wifiInterfaceName> <ethernetInterfaceName> MyAccessPoint <Password></code>


=== Configuration ===
=== Configuration ===
Line 36: Line 32:
== Share via ethernet ==
== Share via ethernet ==


=== Usage ===
=== Method 1: NetworkManager ===
In NetworkManager, you can share an existing internet connection of a wireless interface <code>wlan0</code> to clients connected on a ethernet device <code>eth0</code> by setting the connection type of the <code>eth0</code> interface to 'Shared'. This will start a dnsmasq DHCP server. You'll have to expose ports 53 and 67 in <code>networking.firewall.allowedUDPPorts</code>, and then you can connect using regular DHCP from the device connected via the cable in <code>eth0</code>.
 
=== Method 2: manual setup ===


Share an existing internet connection of a wireless interface <code>wlan0</code> to clients connected on a ethernet device <code>eth0</code>. Make sure you've got TCP and UDP port <code>53</code> for the dnsmasq DHCP server opened in your [[Firewall]].
Share an existing internet connection of a wireless interface <code>wlan0</code> to clients connected on a ethernet device <code>eth0</code>. Make sure you've got TCP and UDP port <code>53</code> for the dnsmasq DHCP server opened in your [[Firewall]].
Line 65: Line 64:
</syntaxhighlight>
</syntaxhighlight>


=== Configuration ===
=== Method 3: declarative setup ===


Persistently share an existing internet connection on interface `wlan0` to clients connected on an ethernet interface `eth0`. Tested where `wlan0` is a wireless interface, but it should work with a different ethernet interface as well. You do not need to manually open port 53.
Persistently share an existing internet connection on interface <code>wlan0</code> to clients connected on an ethernet interface <code>eth0</code>. Tested where <code>wlan0</code> is a wireless interface, but it should work with a different ethernet interface as well. You do not need to manually open port 53.


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
Line 119: Line 118:
   };
   };
};
};
</syntaxhighlight>
For nftables, the equivalent of the iptables rules in <code>networking.firewall.extraCommands</code> above is the following.
<syntaxhighlight lang="nix">
networking.nftables.ruleset = ''
  table ip nat {
    chain POSTROUTING {
      type nat hook postrouting priority 100;
      oifname "wlp2s0" counter masquerade
    }
  }
  table ip filter {
    chain INPUT {
      iifname "enp3s0" counter accept
    }
  }
'';
</syntaxhighlight>
</syntaxhighlight>


[[Category:Networking]]
[[Category:Networking]]
[[Category:Tutorial]]