Linux для всех / Роутер на базе PC или ноутбука за пару минут

в 20:56, , рубрики: dnsmasq, laptop, nat, scripting, Ubuntu, метки: , , , , ,

Помните пост о временном переключении WIFI в режим точки доступа? Конечно же нет, давно было. Вот он: habrahabr.ru/blogs/linux/122876/.

Сегодня речь пойдёт не о точке доступа, а о режиме работы компьютера, в котором он выступает в качестве маршрутизатора. Это может пригодится в том случае, когда есть всего одна точка выхода в интернет, а компьютеров нужно подключить несколько. Или, например, интернет раздаётся по WIFI, есть один ноутбук с WIFI, а второе устройство имеет только Ethernet-интерфейс.

Имеем

— Ноутбук с Ubuntu 11.10 и беспроводным сетевым адаптером
— Беспроводной интернет
— Комьютер с Ethernet-интерфейсом

Задача

— Получить с компьютера доступ в интернет

Решение

До недавнего времени для решения поставленной задачи я копировал скрипты из топика про точку доступа и правил их. Но частая необходимость в таком доступе превратилась новый небольшой скрипт.

Первый скрипт установит необходимые пакеты, а именно dnsmasq, которвый выступает в качестве dns/dhcp-сервера.

install.sh

#!/bin/bash  # Install dns/dhcp server apt-get install hostapd dnsmasq # Stop installed service service dnsmasq stop # Disable autostart on boot update-rc.d dnsmasq disable 

И второй скрипт, который перводит ноутбук в режим роутера и обратно.

start.sh

#!/bin/bash  INT=eth0 EXT=wlan0 INT_IP=192.168.2.2 INT_RANGE=192.168.2.10,192.168.2.50  # Start ifconfig $INT $INT_IP sysctl net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE dnsmasq -d -zi $INT -F $INT_RANGE -C /dev/null -l /tmp/dnsmasq.leases  # Stop iptables -D POSTROUTING -t nat -o $EXT -j MASQUERADE sysctl net.ipv4.ip_forward=0 

Протестировано в Ubuntu 11.10, но может быть использовано в любом дистрибутиве, в котором доступен для установки dnsmasq.

Приятных экспериментов!

Автор: giner


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js