Раздача Интернета в локальную сеть из 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. Откройте сам файл командой:

gedit /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 gedit /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,24h1  # диапазон выдаваемых адресов
 
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

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

Войти с помощью: 

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