Раздача интернета

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

Интернет ------> |пк1 (шлюз)| --->пк2(свитч)..и т.д

Исходные данные:

Оба компьютера соединены по сети.

На пк1 установлено 2 сетевые карты:

  • eth0 - к ней подключен интернетeт
  • eth1 - к ней подключена локальная сеть

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

IP: 192.168.0.1
Netmask: 255.255.255.0

или введите в консоли:

ifconfig eth1 192.168.0.1 netmask 255.255.255.0
ifconfig eth1 up

Разрешите направление пакетов.

Чтобы сделать это, отредактируйте /etc/sysctl.conf: вставьте строчку

net.ipv4.ip_forward=1

Выполните:

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

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

Установите iptables, введите следующее правило (для передачи интернета второму компьютеру) и сохраните его.

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

Установите и запустите dnsmasq (или, вы можете использовать DNS провайдера).

Установите на втором компьютере:
IP: 192.168.0.2
Netmask/Маска: 255.255.255.0
Gateway/Шлюз: 192.168.0.1
DNS: 192.168.0.1

Второй компьютер теперь должен быть подключён к интернету.

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

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

в любой стартовый скрипт (rc.local например)

Комментарии

Замечание

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

По-моему куда проще сделать так:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Это работает в любом дистрибутиве.

> Перезапустите сеть, или перезагрузитесь.

Это, конечно, очень простое решение, но ведь что начинающие подумают? Даже в Windows перезагрузка не требуется, а тут в надежной серверной ОС - "перезагрузитесь"...

1)

1) http://easylinux.ru/node/172

2) "или" ;)

зофиксил 2

зофиксил 2

Доброго

Доброго времени суток.Стыдно признаться не осилил.Имею именно такую конфигурацию.На пк1 под управлением Ubuntu 7.10 desktop установлено 2 сетевые карты:
* eth0 - к ней подключен интернетeт
* eth1 - к ней подключена локальная сеть
На пк2 установлена WindowsXP Pro SP2.Сетевая карта имеет следующую конфигурацию:
IP: 192.168.0.2
Netmask/Маска: 255.255.255.0
Gateway/Шлюз: 192.168.0.1
DNS: 192.168.0.1
Требуется раздать интернет на пк2.

Трудности - не смог на пк1 настроить вторую сетевую карту( IP: 192.168.0.1 Netmask: 255.255.255.0),отредактировать /etc/sysctl.conf,т.к. не имею опыта работы в Линуксе.
Если не трудно опишите раздачу Интернета для чайника более детально.

Пы.Сы.Локальную сеть настроил,осталось раздать интернет на пк2

дистрибутив?

дистрибутив?

Попробуйте...

Как я понимаю, проблем со вторым компьютером нет - только с первым. Тогда:

root@pc1: ifconfig eth1 192.168.0.1 # Настраиваем вторую сетевую карту.
root@pc1: iptables -t nat -A POSTROUTING -c eth0 -j MASQUERADE # Пишем правило для раздачи интернета.
root@pc1: echo 1 > /proc/sys/net/ipv4/ip_forward # Включаем IP forward.

Все это, правда, не восстановится после перезагрузки компьютера. Но там уже видно будет.

Спасибо за

Спасибо за быстрые ответы.Но пока не удаётся раздать интернет.
Дистрибутив Ubuntu Gutsy Gibbon.Для соединения с пк2 выполняю следующую

test@test-desktop:~$ sudo ifconfig eth1 192.168.0.1 netmask 255.255.255.0 up

Далее подключаюсь к серверу...см. рис. http://i003.radikal.ru/0801/0c/28566396acc9.png
На пк2 расшариваю папки.Далее на пк1 захожу в директорию /etc и пытаюсь отредактировать
файл sysctl.conf - а именно раскоментировать вот эту строку:

#net.ipv4.conf.default.forwarding=1

На что следует ответ "Не удаётся сохранить файл etc/sysctl.conf Недостаточно прав для сохранения файла.
Убедитесь в правильности введённого адреса и попробуйте ещё раз."
На этом настройка раздачи интернета у меня упирается в тупик.

> Недостаточно прав

Естественно, что для редактирования файлов в /etc нужны права root'а, а вы, скорее всего, пытаетесь редактировать от имени простого пользователя. В Ubuntu любому приложению можно дать такие права, запустив его с sudo:

sudo vim /etc/sysctl.conf

Если вам непонятен Vim - попробуйте точно так же запустить свой любимый гуёвый текстовый редактор, дав ему полномочия рута. Например:

sudo kwrite /etc/sysctl.conf

QIP на скриншоте. Gnome. Opera. Ubuntu. Чур меня. Да, и причем тут соединение с самбой?

Вам следует

Вам следует ознакомится с этим: http://easylinux.ru/node/131

Спасибо с

Спасибо с правами разобрался.Отредактировал /etc/sysctl.conf.Далее выполняю вышеуказанные команды,однако интернет не раздаётся :0(

Самба тут не

Самба тут не причом,просто хотел показать что локальная сеть живая,в смысле работает

QIP на скриншоте. Gnome. Opera. Ubuntu.

ну а тут хозяин барин!

Всем

Всем спасибо))Конфигурация,описанная в этой статье заработала после этого

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

хе хе! - ваш

хе хе! - ваш выход в интернет не eth0 а ppp0 ;)) там же пример приведен.

спасибо

спасибо большое за статью, все заработало, вот только подскажите как добавить команду в стартовый скрипт, нада ли что то дописывать и не опасно ли это, заранее спасибо

зависит от

зависит от дистрибутива. по идее iptables при выключении должны выполнить сохранение. можете сделать его вручную, с помощью iptables save

По пунктам

> нада ли что то дописывать
Не обязательно, если о функции сохранения правил позаботились разработчики дистрибутива

> не опасно ли это
Не более, чем любая другая правка конфигурационных файлов.

> как добавить команду в стартовый скрипт
В Debian'е они (стартовые скрипты) находятся в /etc/init.d/. Затем в папки /etc/rcX.d/ добавляются симлинки на них, чтобы они запускались автоматически при том или ином режиме загрузки.
Лично меня нифига не вдохновил стандартный дебиановский формат скриптов, поэтому я тупо записал правила в файл, сделал ему chmod +x и засунул в /etc/ini.d/, а потом создал симлинк на них: ln -s /etc/init.d/iptables /etc/rc2.d/S10iptables.

man update-rc.d ;)

man update-rc.d ;)

спасибо, вот я

спасибо,
вот я просто написал nano /etc/init.d/networking и
добавил строку iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
до строчки exit 0
но инет на втором компе после перезагрузки первого включается только полсле того как эту строчку снова прописыва в терминале
на команду iptables save пишет что такой команды нету. И вот свой скрипт если писать просто написать nano .... и сохранить сделать chmod и симлинк? или я чего то не понимаю?

Все,

Все, разобрался, у меня что бы инет работал и после перезагрузки нада было вписать еще и
sysctl -w net.ipv4.ip_forward="1" в загрузочный скрипт.
в общем в файл /etc/init.d/networking перед строкой exit 0 вписал
sysctl -w net.ipv4.ip_forward="1"
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
в итоге конец файла выглядет так:
sysctl -w net.ipv4.ip_forward="1"
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
exit 0
еще раз огромное спасибо за статью

вообще в статье

вообще в статье есть про /etc/sysctl.conf

этот файл конфигурации sysctl заргужается при запуске системы

Всем.

ОС - Федора 9. Сделал все как описывалось в этом руководстве!
eth0 - к ней подключена сетка( раздается инет и сеть по DHCP)
eth1 - 2 сетевая с настройками :
IP: 192.168.0.1
Netmask/Маска: 255.255.255.0

2 комп ОС- Cent OS. На этот комп хочу раздать и сеть и инет!
сделал настройки сетевухи:
IP: 192.168.0.2
Netmask/Маска: 255.255.255.0
Gateway/Шлюз: 192.168.0.1
DNS: 192.168.0.1

соединил это все кроссовым кабелем и в итоге компы друг друга увидели.
Что надо сделать что бы 2 комп ходил в инет?

зы. Я нуб в линухе! Вот только только делаю первые шаги. Так что не судите сильно, лучше помогите плз!

ДНС?

а на первом компе (192.168.0.1) есть DNS сервер? пропишите на втором компе ДНС провайдера - может полегчает.

почти..

чуть чуть переделал.
2 компа.

1 комп- под Cent Os
2 сетевые.
Одна смотрит в инет( инет приходит от DHCP):

Вторая смотрит в сеть:
ip:192.168.1.1

2 комп- под Сеnt Os
192.168.1.2
255.255.255.0
gateway 192.168.1.1

На перовом компе все настроено верно. Форвардинг включен. Сеть раздается на второй комп. Второй комп пингует и себя и комп№1( пингуется и адрес сетевой которая смотрит в сеть и адрес провайдера и адрес полученный по DHCP.

Но вот проблема. Не могу пингануть не чего в инет со второго компа.
ping ya.ru
unknown host.

Я так понимаю проблема в прописании DNS на втором компе. Подскажите где прописывать DNS! Какой днс надо указывать. Я пробывал в resolv.conf прописывать...некотрые адреса первого компа( и адрес полученый по DHCP и адрес сетевой(192.168.1.1) не чего не помогло.

Помогите! Куда что вписывать. Подскажите плиз где точно надо искать. Прошу не указывать на маны и гугл ибо там путного не чего нету. Все выеживаются и посылают к манам и гуглу.

в /etc/resolv.conf прописать

в /etc/resolv.conf прописать DNS сервера провайдера

почти..

Решение оказалось не такое простое. Мало того что нужно поковырять named то и nat тоже надо было править. В общем zeus спасибо за совет. Вроде все заработало но, как только ребут сразу надо все правила заново выставлять.

проблема с ppp

сеть из компьютера и ноутбука,
на компе Puppyrus Linux и 2 сетевые карты
eth0 связана с провайдером адрес 10.1.101.*
eth1 с ноутом под Виндоус ХР. Адрес компа 192.176.0.1,ноута 192.176.0.2
Выход в интернет через ррр0 интерфейс.
Вводил в консоль
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
но результата нет. Ноут пингует все 3 сетевых интерфейса по ип и даже впн сервер провайдера однако в интернет не выходит. В /etc/resolv.conf днс прописаны верно. Где еще проверить? И на ноутбуке что вводить в качестве шлюза и DNS?

на ноуте в качестве шлюза

на ноуте в качестве шлюза куказать ip eth1 венды, а в качестве DNS - адреса провайдера.

вроде все делаю,как тут

вроде все делаю,как тут написано,а результата нет((

Ситуация следущая:
есть машина с Ubuntu 9.04. Интернет подключен через ADSL модем.
В моем компе есть еще одна сетевка, через которую подключен второй компьютер с Windows XP. Его нужно подключить к инету через мою машину.
В случае с виндой проблем нету:
1.На своей сетевке прописываю 192.168.0.1
2.На втором компе прописываю 192.168.0.2 и 192.168.0.1 - как шлюз и днс сервер.
3.После создания на своем компе "высокоскоростного подключения", в его настройках во вкладке "дополнительно" разрешаю "другим пользователям сети подключение к инету" через сетевую карточку, по которой 2 машины свзаны друг с другом. После этих манипуляций на втором компе автоматически появляется шлюз,через который он и ходит в инет.

Что делаю:
eth1 - к ней подключен интернетeт
eth0 - к ней подключена локальная сеть

Настраиваю карту eth1:
sudo pppoeconf
в настройщике pppoe подключения везде отвечаю "да", ввожу логин, пароль.
после этого комп заходит в инет.

Настраиваю карту eth0:
sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0
sudo ifconfig eth0 up
Разрешаю направление пакетов:
Раскоментировал в /etc/sysctl.conf строчку
net.ipv4.ip_forward=1
Устанавливаю iptables, ввожу правило для передачи интернета второму компьютеру:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

На виндовой машине прописываю:
IP: 192.168.0.2
Netmask/Маска: 255.255.255.0
Gateway/Шлюз: 192.168.0.1
DNS: 192.168.0.1

В итоге: обе машины пингуют друг друга и с моего компа ходит в инет. А из под винды нет доступа в интернет
Кстати присваю eth0 ip и шлюз, и через некоторое время карточка теряет настройки.

подскажите как автоматизировать

Настроил раздачу интернета по этой статье всё замечательно работает.

После включения "компьютера маршрутизатора" приходится запускать данные комманды:

sudo sysctl -w net.ipv4.ip_forward="1"
sudo iptables -t nat -A POSTROUTING -o Wlan0 -j MASQUERADE

для чего нужно заходить на компьютер маршрутизатор и вводить пароль.

в файле прописывал на автозапуск но безрезультатно :(

Так вот вопрос:
Как сделать так чтобы просто включив компьютер, после загрузки и без участия человека он начал раздавать интернет.( компьютер-маршрутизатор стоит в комнате начатьника без монитора. и таскаться с монитором каждое утро к нему и делать настройки несерьёзно.)
второй момент. если при включении компьютера или разрыве связи с интернет соединением воткнут сетевой кабель в сетевушку ведущую в локальную сеть интернет сразу же пропадает. как только выдергиваем сетевой шнур из сетевушки ведущей в локальную сеть интернет сразу начинает работать(как будто соединение подхватывает шлюз по умолчанию из локалдьной сети)

заранее спасибо

покласть в rc.local без sudo

покласть в rc.local без sudo

не получилось

прописал следующим образом:
sudo gedit rc.local

в файл забил вот эти строчки
sysctl -w net.ipv4.ip_forward="1"
iptables -t nat -A POSTROUTING -o Wlan0 -j MASQUERADE

после перезапуска ничего не изменилось. всё так же не работает пока не пропишу эти строчки в коммандной строкею

пропишите с полными путями

пропишите с полными путями iptables
sysctl в конфиг:
http://easylinux.ru/node/172

следующая попытка

итак:
прописал
sudo gedit /etc/sysctl.conf

добавил в пустой открывшийся файл

sysctl -w net.ipv4.ip_forward="1"
iptables -t nat -A POSTROUTING -o Wlan0 -j MASQUERADE

после перезагрузки изменений не последовало.
не знаю что значит прописать с полными путями iptables.

после перезагрузки

после перезагрузки и до ввода команд введите

sysctl net.ipv4.ip_forward

и

iptables -L -t nat

вывод сюда

результат

sanchos@34:~$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
sanchos@34:~$ iptables -L -t nat
iptables v1.4.0: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
sanchos@34:~$ sudo iptables -L -t nat
[sudo] password for sanchos:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

интернет на второй машине появился только после прописания в коммандной строке
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

wlan0 - беспроводной

wlan0 - беспроводной интерфейс?

wlan0 беспроводной. по нему

wlan0 беспроводной. по нему компьютер- маршрутизатор получает интернет из дома стоящей точки доступа которая в свою очередь подключена витой парой к коммутатору в который воткнуто несколько домашних компьютеров и адсл модем. а в локальную сеть идёт уже через обычный ethernet адаптер.

Ну вот и проблема

Ну вот и проблема выяснилась:

В процессе загрузки сначала поднимается iptables, восстанавливаются его правила. В этот момент wlan0 не существует, и правила не загружается (ошибка). Потом поднимается wlan0.

Вам нужно вставить добавление правила в стартовый скрипт wlan0

подскажите пожалуйста как это

подскажите пожалуйста как это сделать.

как найти файл в который нужно прописать правило для беспроводного интерфейса и какое правило нужно прописать?

подскажите пожалуйста как это

подскажите пожалуйста как это сделать.

как найти файл в который нужно прописать правило для беспроводного интерфейса и какое правило нужно прописать?

dnsmasq

Установите и запустите dnsmasq (или, вы можете использовать DNS провайдера). вот с этим проблема возникает.

serg@serg-desktop:~$ sudo dnsmasq

dnsmasq: failed to create listening socket: Address already in use

а без этого я так понял ничего работать не будет Как решить?

меня вот тоже интересует этот

меня вот тоже интересует этот вопрос!!! делаю всё как написано, а эффекта полный ноль. На втором компе, которому пытаюсь дать инет, есть некие потуги грузить страницы и не более. Я так понимаю что по этому мануалу только у единиц получается всё настроить.
Может в конце концов написать как правильно настроить раздачу интернета.

наконец то разобрался! Люди

наконец то разобрался! Люди ставьте firestarter и будет вам счатье. )))

То же самое, но 3 компа

Доброго всем!
Система Fedora 11, 3 сетевых адаптера (1 (eth0) на материнке + 2 писиай). Делила нет для ноутбука под виндовс. Всё работало. Пытаюсь настроить то же самое и для ноубука с Ubuntu - виндовс по-прежнему работает, а со вторым ноубуком никак не получается. Вот конфигурация:

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination      
ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0F:EA:22:A0:2C  
          inet addr:192.168.0.203  Bcast:192.168.1.255  Mask:255.255.254.0
          inet6 addr: fe80::20f:eaff:fe22:a02c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38414 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12638 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9915261 (9.4 MiB)  TX bytes:2486235 (2.3 MiB)
          Interrupt:19 Base address:0xe000 

eth1      Link encap:Ethernet  HWaddr 00:80:48:2E:43:9C  
          inet addr:192.168.2.20  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::280:48ff:fe2e:439c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4137 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4532 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:608677 (594.4 KiB)  TX bytes:3252098 (3.1 MiB)
          Interrupt:18 Base address:0x8000 

eth2      Link encap:Ethernet  HWaddr 00:40:F4:98:DB:E9  
          inet addr:192.168.2.40  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::240:f4ff:fe98:dbe9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:39 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2807 (2.7 KiB)  TX bytes:14226 (13.8 KiB)
          Interrupt:19 Base address:0xa000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:51 errors:0 dropped:0 overruns:0 frame:0
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4100 (4.0 KiB)  TX bytes:4100 (4.0 KiB)
route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1
192.168.2.0     *               255.255.255.0   U     0      0        0 eth2
192.168.0.0     *               255.255.254.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
link-local      *               255.255.0.0     U     1003   0        0 eth1
link-local      *               255.255.0.0     U     1004   0        0 eth2
default         mitht2.imt.ru   0.0.0.0         UG    0      0        0 eth0

Люди добрые! Помогите!

Все так же

подскажите как это сделать
Установите iptables, введите следующее правило (для передачи интернета второму компьютеру) и сохраните его.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
где находится этот iptables весь день ищу не судите строго

sysctl.conf нашел снял этот значок #
оставил net.ipv4.ip_forward=1
потом зашел в терминал и выполнил sysctl -w net.ipv4.ip_forward="1"
а где редактировать или командой вводить подскажите если не трудно

СПАСИБО ЗАРОБОТАЛО НАДО БЫЛО

СПАСИБО ЗАРОБОТАЛО НАДО БЫЛО ПРОСТО НА СЕТЕВУХЕ АИНДЫ DNS ПРОВАЙДЕРА НАПИСАТЬ

блин, понимаю что уже все

блин, понимаю что уже все разжевано, но тем не менее...все прописал, машины друг друга пингуют, 2я пингует и ip ppp0 соединения. DNS провайдера на 2й машине вписать не могу, как у вышесказавшего, т.к. не знаю его...все автоматом раздается. Помогите плиз...уже сколько дней мучаюсь...столько форумов пересмотрел и ничего не получается..

разобрался

все работает, только реально на 2й машине DNS провайдера надо было вписать..DNS посмотрел из под винды командой ipconfig /all так как незнаю как на линухе смотреть))))) всем спасибо.

Друзья плз помогите...я вобще

Друзья плз помогите...я вобще новичек в centos , но дело такое...я поставил все как сверху сказано ,и почему то интернета нет Но если пинговать через ip то пинг идет...в чем дело? я узнал что надо вроде днс разрешение сделать...но куда и че писать ни чего не пойму... инет идет через eth0 и eth1 должен вроде раздовать ....

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Нужен шкаф-купе - шкаф купе на заказ .;Узнайте о Рено: купить рено логан .