Linux router with web interface

Тоже Админ

Домашний роутер на Linux (Linux Home Router)

Этот гайд я хотел написать очень давно. В свое время много искал в инетах, находил кусками по разным аспектам создания домашнего роутера на Linux, но вот полноценного гайда от и до так и не нашел.

Актуальность

В настоящее время скорости подключения предоставляемые провайдерами выросли на порядки и с другой стороны прибавилось различных устройств дома, которые потребляют этот интернет: если например четверо жителей в квартире, у каждого телефон, у папы еще и планшет и у дочки планшет и еще есть пару настольных компьютеров или ноутбуков, то это уже 8 устройств потребляющих интернет. Кроме этого еще и тип потребляемого контента изменился, от страниц HTML все больше переходит к прослушиванию музыки, просмотру видео, или же загрузки видео. Одним слово скорость и обьемы передачи данных выросли значительно. Все это накладывает определенные требования на роутеры. Обычные общедоступные роутерытипа D-Link, TP-Link, ASUS и т.п., купленные 2-3 года назад уже захлёбываются от пропускаемого через них трафика. Их мощности уже не позволяют обрабатывать такой поток, они просто не рассчитаны на него. Все это выражается в разного рода задержках, потере пакетов, ухудшении качества видео, потере кадров, глюках в играх и тому подобных проблем. Роутеры нового поколения уже рассчитаны на подобный трафик, но стоят денег и немалых. От 10 до 30 тысяч рублей. Но ведь есть же другой путь. У многих еще валяются в кладовке забытые старые компы, где-то еще в разобраных корпусах, а если не валяются, то в изобилии полно преложений на том же Авито о продаже по цене около 1 тыс. рублей. А ведь из этого компа можно собрать роутер на операционной системе Linux, и работать он будет на порядок быстрее самого быстрого роутера, даже тот же Pentium 4. В настройке нет ничего сложного, и любой человек с минимальными знанимями в области информационных технологий, который отличает IP адрес от MAC адреса сможет настроить себе роутер на LINUX, за час, два и забыть обо всех проблемах с инетом навсегда, при этом не тратя безумных денег. Вот об этом и будет наш гайд.

Читайте также:  Bash скрипт linux пример

Железо

Подойдет практически ЛЮБОЙ компьютер. Главное требование — наличие 2-х сетевых карт. Одна может быть встроенная, вторую можно купить за 100-250 рублей и вставить в PCI (PCI-E) слот. Не рекомендую использовать USB-сетевые карты, хотя это и возможно, но в этом гайде я тонкости работы с USB картами описыать не буду.
В нашем гайде мы будет использовать Linux дистрибутив Centos 7, который имеет минимальные рекомендуемые системные требования:

Память: 1ГБ на логический ЦПУ (ядро процессора)
Диск: 20 ГБ

Одно замечание. Обычно роутеры стоят в квартире: в коридоре или в комнате и шум от работающих вентиляторов (а компьютере их как минимум 2) может здорово раздражать. Если комьютер старый, то рекомендую заменить вентиляторы. Разберите блок питания, надо открутить всего 4 болта, и почистить или поменять (открутить еще 4 винта и скрутить 2 проводка) вентилятор на блоке питания. Тоже сделать с вентилятором на процессоре. На работу самого роутера это никак не повлияет.

Допущения

В своем гайде я предпологаю, что провайдер предоставляет вам подключение по читому Ethernet, без всяких PPOE и других VPN технологий и аутентификация абонента происходит по MAC адресу. Т.е. на внешнем интерфейсе роутера должен быть определенный MAC адрес, чтобы работал интеренет. Никаких паролей не требуется. Сейчас так подключено 90% всех пользователей интернета в России.

Загрузка образа и создание загрузочной флешки

Загружаем устанавливаем и запускаем программу записи образов дисков на флешку, вставляем флешку — все информация на флешке будет перезаписана.

1 — нажимаем на кнопку с папкой, выбираем загруженный образ. По умолчанию программа показывает только файлы с расширением .img поэтому выбираем показать все файлы *.*
2 — выбираем флекшу для записи
3 — нажимаем записать. Процесс записи начнется и в результате у вас будет загрузочная флешка.

Зайдите в БИОС и установите загрузку с флешки с Centos.

Не хочу останавливаться подробно на установке, есть достаточно подробное описание с картинками на русском языке: https://sysadmin-note.ru/ustanovka-centos-7/

Там все просто, нам подойдут настройки по умолчанию, как раз как описано.

Подключение в существующую сеть

Определите какой сетевой интерфейс будет внешним, т.е. смотрящим в Интренет, а какой внутренним — смотрящим в локальную сеть. Лучше даже подписать на корпусе, чтобы не спутать потом. Встроенную карту лучше использовать как внутренний интрефейс, в вставленную — как внешний, потому что в общем случае скорости на внешнем интрефейсе ниже чем в локалке.

Читайте также:  Astra linux профиль защиты

Нам надо закачать необходимые пакеты, поэтому подключите компьютер к существующей сети ВНЕШНИМ интерфейсом. Предпологаю, что у вас есть доступ в интернет и IP адреса выдаются существующим роутером.

Заходим в Linux либо под пользователем root, если вы задали при настройке его пароль, либо под созданным пользователем в процессе настройки. Даем следующую команду:

она покажет сетевые интерфейсы и их настройки:

[user1@router ~]$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp1s0: UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:db:00:70:5e brd ff:ff:ff:ff:ff:ff
inet 192.168.33.1/24 brd 192.168.33.255 scope global noprefixroute enp1s0
valid_lft forever preferred_lft forever
3: enp2s0: DOWN,LOWER_DOWN> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether f4:6d:04:3e:5e:9e brd ff:ff:ff:ff:ff:ff
valid_lft 26366sec preferred_lft 26366sec

Что же мы здесь видим? lo — внутренний интерфейс, присутствует по умочанию нам особенно не интересен, enp1s0 и enp2s0 это и есть наши сетевые карты причем одна в состоянии UP с настроенным внутренним IP адресом — это та, которую мы подключили в нашу сетку (будущий внешний интерфейс), а вторая в состоянии DOWN это будущий внутренний интерфейс, к которому не подключен кабель.

Если это так то можете пропустить следущий шаг. Если вы видите интерфейс в состоянии UP но inet адреса на нем нет, надо будет его настроить.

Предварительная настройка интерфейса

Заходим под пользователем root. Даем команду nmtui, открывается меню настройки интерфейсов. Вибираем Edit Connection, нажимает Enter.

В списке интерфейсов вибираем нужный нам интерфейс, нажимаем Enter

Перемещение по пунктам меню осуществляеся с помощью клавиши Tab. Переходим на пункт Show напротив IPv4 CONFIGURATION, нажимаем Enter.

Выставляем или убеждаемся, что настойки выставлены IPv4 CONFIGURATION — Automatic, Automatically connect — X ( с помощью клавиши пробел), Available for all users — X. Перемещаемся на ОК и нажимаем Enter.

Опять попадаем в меню выбора интрефейсов нажимаем Back, попадаем в главное меню, стрелочкой вниз доходим до Quit, нажимаем Enter. Выходим из программы.

Инициируем сетевые интерфейсы, чтобы применились настройки, даем команду

Снова даем команду ip a убеждаемся что ip адрес получен.

Читайте также:  Восстановить таблицу разделов linux

Источник

How to build Linux Router with Ubuntu Server 20.04 LTS

Linux router configuration is simple, you just need to make sure the router have two interfaces that connected to the network that will be routed, enable packet forwarding and iptables for NAT if needed. There are more advanced configuration, but in this post we will build Linux router on Ubuntu Server 20.04 to allow LAN traffic through to internet on WAN interface with NAT.

How to build Linux Router with Ubuntu Server 20.04 LTS

How to build Linux Router with Ubuntu Server 20.04 LTS

Ubuntu Server 20.04 comes with netplan as default network interface configuration tool.If you are not familiar with netplan please read the previous post about Ubuntu Server 20.04 LTS — Basic Network Configuration with netplan.

How to build Linux Router with Ubuntu Server 20.04 LTS

  • enp0s3 is the WAN interface, it will be configured to obtain IP address from DHCP server.
  • enp0s8 is the LAN interface, it will be configured to use 10.10.10.1/24 IP address.
nano /etc/netplan/anything.yaml

This configuration below addedd interface enp0s3 to obtain dhcp and enp0s8 to use 10.10.10.1/24 IP address. Just add lines that red colored to your configuration file, if it is a newly installed Ubuntu Server.

network: version: 2 renderer: networkd ethernets: enpos3: dhcp4: yes enp0s8 addresses: - 10.10.10.1/24 

How to build Linux Router with Ubuntu Server 20.04 LTS

iptables -t nat -A POSTROUTING -j MASQUERADE

iptables command line will not be saved after the system reboot, there are many ways to make it persistent after reboot. This time we will use the easiest way to install iptables-persistent package to the Ubuntu server.

apt update -y && apt install iptables-persistent

It will asks you to save the current ipv4 and ipv6 iptables rules, answer yes to save it or no to save it later.

iptables-save > /etc/iptables/rules.v4

This command will save the iptables rules to /etc/iptables/rules.v4 , where later it will be restored by iptables-persistent on every reboot.

If all going well, we have finished building Linux Router with Ubuntu Server 20.04 LTS. According to the topology, the clients use 10.10.10.0/24 network address. So configure the clients accordingly.

How to build Linux Router with Ubuntu Server 20.04 LTS

You can watch all the activity above on building Linux Router with Ubuntu Server 20.04 LTS from this youtube video below. If you still have any problems, please put your comments.

Источник

Оцените статью
Adblock
detector