Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия.
на сервере
Исходные данные: Оба компьютера соединены по сети. На сервере установлено две сетевые карты:
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
а что означает “1” в конце строки:
dhcp-range=192.168.0.5,192.168.0.50,255.255.255.0,24h1
Это была опечатка, поправил