Раздача Интернета в локальную сеть из ubuntu

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

на сервере

Исходные данные: Оба компьютера соединены по сети. На сервере установлено две сетевые карты:

eth0 – к ней подключен интернет;

eth1 – к ней подключена локальная сеть.

Настройте вторую карту (eth1) так:

IP: 192.168.0.1

Netmask: 255.255.255.0

Это можно сделать вручную или используя терминал:

вначале меняем пользователя на root (иначе iptables далее не сохраняться);

sudo su
ifconfig eth1 192.168.0.1 netmask 255.255.255.0
ifconfig eth1 up

Разрешите направление пакетов. Чтобы сделать это, отредактируйте /etc/sysctl.conf. Откройте сам файл командой:

nano /etc/sysctl.conf

А затем вставьте следующую строчку:

net.ipv4.ip_forward=1

Для того, чтобы применить это правило до перезагрузки выполните:

sysctl -w net.ipv4.ip_forward="1"

Затем добавляем правило для NAT:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Где eth0 название вашего интерфейса через который выходите в интернет. Измените его если используете другой интерфейс (напрмер ppp0) тогда команда будет выглядит иначе:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Установите и запустите пакет для раздачи пакетов по сети:

sudo apt-get install dnsmasq

Или, вы можете использовать DNS провайдера.

Чтобы NAT работал после перезагрузки сохраняем настройки iptables в файл:

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

И добавляем в конец файла:

sudo nano /etc/network/interfaces

Эту строчку, для автоматической подгрузки правил:

pre-up iptables-restore < /etc/iptables.up.rules

Также в этот файл добавляем правила роутинга:

up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0

На клиентском компьютере

Установите на втором компьютере:

IP: 192.168.0.2
Netmask/Маска: 255.255.255.0
Gateway/Шлюз: 192.168.0.1
DNS: 192.168.0.1

Второй компьютер теперь подключён к интернету, если сразу не заработало то перезагрузитесь – обязательно!!!
Если компьютеров несколько

На сервере

Можно использовать dnsmasq как DHCP сервер. Для этого на сервере редактируем файл dnsmasq.conf:

sudo nano /etc/dnsmasq.conf
interface=eth1 # интерфейс, который будет слушать dnsmasq
listen-address=192.168.0.1 # адрес, на котором будет находиться dnsmasq
bind-interfaces eth1 # слушать только интерфейс
dhcp-range=192.168.0.5,192.168.0.50,255.255.255.0,24h  # диапазон выдаваемых адресов
dhcp-option=3,192.168.0.1 # шлюз по умолчанию 

Перезапускаем dnsmasq:

sudo service dnsmasq restart

Настраиваем клиентские компьютеры на автоматическое получение адреса.

Если после перезагрузки правила iptables не восстанавливаются, добавьте:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

в любой стартовый скрипт (rc.local например). Вместо eth0 надо написать ppp0, если этот интерфейс получает интернет от провайдера:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

2 комментария к “Раздача Интернета в локальную сеть из ubuntu

  1. а что означает “1” в конце строки:
    dhcp-range=192.168.0.5,192.168.0.50,255.255.255.0,24h1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.