About80Ninjas icon

wifi-to-eth-route.sh

About80Ninjas | PRO | 05/11/24 03:33:23 AM UTC (Edited) | 0 ⭐ | 1166 👁️ | Never ⏰ | []
Bash |

1.54 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
 
# Share Wifi with Eth device
#
#
# This script is created to work with Raspbian Stretch
# but it can be used with most of the distributions
# by making few changes.
#
# Make sure you have already installed `dnsmasq`
# Please modify the variables according to your need
# Don't forget to change the name of network interface
# Check them with `ifconfig`
 
#credit: https://github.com/arpitjindal97/raspbian-recipes/tree/master
 
ip_address_and_network_mask_in_CDIR_notation="192.168.2.1/24"
dhcp_range_start="192.168.2.2"
dhcp_range_end="192.168.2.100"
dhcp_time="12h"
dns_server="1.1.1.1"
eth="eth0"
wlan="wlan0"
 
sudo systemctl start network-online.target &> /dev/null
 
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t nat -A POSTROUTING -o $wlan -j MASQUERADE
sudo iptables -A FORWARD -i $wlan -o $eth -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $eth -o $wlan -j ACCEPT
 
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
 
sudo ip link set $eth down
sudo ip link set $eth up
sudo ip addr add  $ip_address_and_network_mask_in_CDIR_notation dev $eth 
 
# Remove default route created by dhcpcd
sudo ip route del 0/0 dev $eth &> /dev/null
 
sudo systemctl stop dnsmasq
 
sudo rm -rf /etc/dnsmasq.d/* &> /dev/null
 
echo -e "interface=$eth
bind-interfaces
server=$dns_server
domain-needed
bogus-priv
dhcp-range=$dhcp_range_start,$dhcp_range_end,$dhcp_time" > /tmp/custom-dnsmasq.conf
 
sudo cp /tmp/custom-dnsmasq.conf /etc/dnsmasq.d/custom-dnsmasq.conf
sudo systemctl start dnsmasq

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎