Setting Ubuntu server as Internet Gateway

  • 28th day of Chaos, in the yold 3176
  • 147 Comments

How to: configure Ubuntu as a router.

English version of this page under construction. You can read automatic translation.


В этой заметке будет рассказано как с помощью iptables настроить системы с Ubuntu и Debian для раздачи интернета другим компьютерам локальной сети. На простом примере будет показано как машину с двумя сетевыми интерфейсами (в один поступает интернет, из другого — «выходит») сделать шлюзом.

Настроить этот функционал через веб-интерфейс можно с помощью Webmin, через графический интерфейс – с помощью GAdmintools. Но мы рекомендуем настраивать шлюз напямую, а не через сторонние утилиты.

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

ifconfig

Она выдаст список работающих в данный момент сетевых интерфейсов. Среди них надо опознать те, что начинаются со слов «Link encap:Ethernet» — это интерфейсы сетевых карт. Как правило, это eth0 и eth1.
Теперь потребуется опознать в какой из них поступает интернет, а из какого «выходит». Проще всего это сделать по их ip-адресам.
Итак, допустим через eth0 вы получаете интернет (например через adsl-модем по протоколу ppp), а eth1 связывает вас с локальной сетью.
Если локальная сеть настроена через Network Manager, то мы рекомендуем прописать эти настройки непосредственно в системном конфигурационном файле сети:

sudo nano /etc/network/interfaces

Здесь исправьте настройки вашего сетевого интерфейса, подключенного к локальной сети (в нашем случае eth1), соответствующим образом:

auto eth1
iface eth1 inet static
address 192.168.0.10
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

Значение address — это айпи вашей машины в локальной сети, по этому адресу собственно и будет располагаться шлюз.
Значение netmask — в локальных сетях для этого диапазона чаще всего такая. Для других диапазонов можно вычислить здесь.
Значения network и broadcast будут зависеть от вашего адреса. То есть, если ваш локальный ip — 10.0.0.10, то network и broadcast будут 10.0.0.0 и 10.255.255.255 соответственно.

Либо, это можно проделать всего одной командой:

sudo ifconfig eth1 192.168.0.10

Эта команда самостоятельно настроит вашу сетевую карту eth1 на использование статичного айпи-адреса, и самостоятельно пропишет описанные выше настройки в файл /etc/network/interfaces

В любом случае, после этих изменений перезапустите networking:

sudo /etc/init.d/networking restart

Командой:

ifconfig

проверьте, что изменения вступили в силу и все работает.

Теперь осталось дело за малым. В случае если вы уже пытались настроить вашу систему шлюзом, но у вас не получилось или по каким-то другим причинам вы желаете обнулить все настройки файрвола iptables, то это можно сделать следующими командами:

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

Если прямой необходимости в сбросе настроек iptables нет, то лучше этого не делать.

Следующие команды настроят ваш iptables для NAT-трансляции (NAT, Network Address Translation — «преобразование сетевых адресов») через Ubuntu-шлюз:

sudo iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE

Если необходимые вам сетевые интерфейсы отличаются от eth0 и eth1, то просто измените первую строку соответствующим образом.
Если ваша локальная сеть находится вне диапазона 192.168.x.x, то маску подсети для указания в первой строке вы сможете легко вычислить через сервис Network Calculators.

Теперь для конфигурации gateway’я для роутинга между двумя интерфейсами необходимо включить IP-форвардинг командой:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

И последний штрих: надо отредактировать файл sysctl.conf:

sudo nano /etc/sysctl.conf

Добавьте в него вот эти две строки для активации роутинга:

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

После этого ваш интернет-шлюз готов к работе. Можете настраивать клиентские машины. На нашем примере для них gateway будет 192.168.0.10

Если все внесенные вами изменения работают корректно и вы желаете внести эти настройки в автозагрузку (а именно, вышеприведенные настройки iptables теряют активность после перезагрузки системы), то сохраните нынешнюю рабочую конфигурацию iptables в файл командой:

sudo sh -c "iptables-save > /etc/iptables.up.rules"

После этого в сам файл сетевых настроек /etc/network/interfaces (sudo nano /etc/network/interfaces) к параметрам вашего сетевого интерфейса, например, из которого к вам поступает интернет (в нашем случае – это eth0) добавьте строку:

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

То есть оно станет примерно такого вида:

auto eth0
iface eth0 inet manual
pre-up iptables-restore < /etc/iptables.up.rules

Только не меняйте значения в строке iface, просто добавьте указанную строку последней в разделе auto eth0 (ну или какого-то другого сетевого интерфейса). После этого при перезагрузке сохраненные настройки iptables будут подниматься автоматически.

Если вы хотите добавить к этому автоматическую раздачу адресов (dhcp) и прокси, то воспользуйтесь для этого, например, вот этой инструкцией.

  1. Ник says:

    Спасибо, работает. Как открыть интернет для второго компа, это возможно по этой инструкции?

  2. info says:

    Да, Ник, конечно. Теперь все компьютеры сети могут пользоваться Ubuntu-шлюзом для выхода в интернет. Просто везде на них указывайте один и тот же gateway (в статье это был 192.168.0.10)

  3. ник says:

    info, спасибо, это вы написали для последовательного соединения или параллельного, когда 2 компа подключаются к 3му на убунту ?
    как сделать при параллельном соединении?

    • info says:

      Это всё имеет силу, когда компьютеры находятся в одной локальной сети. Независимо от способа соединения: если проходит ping между вашим Ubuntu и любой другой машиной, то можно смело указывать Ubuntu как интернет-шлюз.

      О том, как наладить непосредственно сетевое соединение в Ubuntu Вы можете прочитать, например, вот здесь.

  4. Семен says:

    а какой DNS указывать на клиентах если у меня он 10.0.1.1?

  5. ssmokee says:

    Спасибо за подробную инструкцию!
    Подскажите, есть ли скрипты или подробное описание настройки L2TP соединения на Ubuntu 9.10?

  6. Ashron says:

    Здравствуйте.
    Выполнил все в соответствии с вашей инструкцией.
    Вопрос, только уже наверно касается Win7 из которой я пингую убунту
    Выдает: Ответ 169,254,191,160 Заданный узел недоступен
    но пинг на 192,168,0,10 проходит и получает все пакеты.

    Как правильно прописать шлюз в семерке… вернее шлюз, днс маску…это ладно..а айпишник какой ? …подставлял 192,168,0,11 – тогда при пинге уже этот узел говорит недоступен

  7. Ashron says:

    Прописал на Win7
    ip, маску, шлюз, ДНС-ы провайдера. сохранил. А потом проверил ipconfig выдал все как я прописал, кроме DNS-суффикса подключение – там пусто и состояние среды – среда передачи недостуно. Что я делаю не так ?

    Извините если вопросы элементарные, я сетевыми технологиями никогда не занимался…

    • info says:

      Ashron, между числами в ip-адресе должны быть точки, а не запятые. То есть не ‘192,168,0,11’, а именно ‘192.168.0.11’. Это важно – программы не поймут записи с запятыми.
      Также, DNS указывайте тот, что предоставляет Вам ваш провайдер, на крайний случай публичные DNS Google’а (8.8.8.8/8.8.4.4)

  8. Ashron says:

    Здравствуйте.
    Запятые в адресе – это я ошибся в самом посте. DNS прописывал, как провайдера, так и Google’a. Не помогло.

    Еще, так должно быть или нет – после всех настроек, в трее ( в убунте вверху справа, или как он здесь называется) – там где значок сетевых соединений, при нажатии на него, раньше показывалось:
    Проводная сеть
    Auto eth0 (название сетевой карты)
    eth1 (название сетевой карты)

    Теперь лишь первое соединение показывает “Auto eth0” , а в место eth1 пишет, что “устройство не управляется”

    • info says:

      Ashron, здравствуйте.
      Да, то, что у вас NetworkManager’ом управляется только один из сетевых интерфейсов после изменений, описанных в этой статье – это правильно. В начале статьи этот момент упоминается.
      Также скажите, есть ли интернет на вашей Ubuntu-машине, после того как вы изменили настройки, точно ли он поступает именно в интерфейс eth0?
      Если да, то попробуйте еще раз проделать все шаги из статьи, может быть где-то ошиблись. Если не поможет, то покажите вывод команд:
      ifconfig
      cat /etc/network/interfaces

      Попробуем разобраться…

  9. ivan says:

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

    • info says:

      Да, Ivan, извините – это наш недочёт – проверяли на сервере, который работает постоянно и на поведение после перезагрузки не обратили внимание. Посмотрите на конец статьи – только что его подредактировал – дополнил информацию о том, как поднимать конфигурацию iptables автоматически.
      В вашем случае рекомендуем обнулить все настройки iptables:
      sudo iptables --flush
      sudo iptables --delete-chain

      И еще раз проделать все шаги из этой статьи с дополнением о сохранении настроек.

  10. Ashron says:

    Хорошо, попробую все сделать еще раз по новой, чуть позже. (когда вновь буду играться с убунтой =) ).

  11. Ashron says:

    Да, на самой Убунтe-машине интернет был и поступал именно в eth0.

    Всего доброго, и благодарю за познавательную инструкцию, пока разбирался много нового узнал =)

  12. LRN says:

    Я для этой цели использую iptables вместе с ipmasq. Ни одной из вуду-команд, описанных в статье, писать не пришлось – поставил всё из пакетов. Если не считать редактирования файлов правил для ipmasq (что эквивалентно нескольким вызовам sudo iptables -A BLAH …)
    Может я чего упустил? Debian Etch.

  13. e0ne says:

    ipmasq нет в репозитариях ubuntu 9.10 и выше.

  14. gumanoed says:

    Хочу заметить что после редактирования файл /etc/sysctl.conf и раскоментирования строк

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

    вам просто необходимо выполнить команду

    sudo sysctl -p

  15. ValeryVS says:


    Теперь для конфигурации gateway’я для роутинга между двумя интерфейсами необходимо включить IP-форвардинг командой:
    sudo sh -c “echo 1 > /proc/sys/net/ipv4/ip_forward”

    после перезагрузки значение обратно слетает на 0
    как это сохранить?
    (iptables сохранились правильно, сбрасывается только это значение)

  16. ValeryVS says:

    (к предыдущему коментарию)

    И последний штрих: надо отредактировать файл sysctl.conf:
    sudo nano /etc/sysctl.conf
    Добавьте в него вот эти две строки для активации роутинга:
    net.ipv4.conf.default.forwarding=1
    net.ipv4.conf.all.forwarding=1

    раскомментировал не те строчки в стандартном файле
    исправил – теперь все работает правильно
    Спасибо

  17. BVS-studio says:

    Спасибо большое)
    Самое полное и подробное описание во всем Рунете..
    Все замечательно работает)

  18. Александр says:

    Спасибо за статью, все работает. Есть один вопрос: Как сделать, чтобы не все пользователи из внутренней сети 192.168.Х.ХХХ/28, а только определенные IP имели доступ во внешнюю сеть? Заранее благодарен за ответ

    • info says:

      Александр, Вам соответствующим образом необходимо настроить файрволл. По-сути это можно сделать средставми самого iptables (в сети достаточное количество описаний его настройки в этом ключе), но также можно установать и какое-нибудь отдельное приложение типа Firestarter, если вы привыкли к GUI.

  19. Bill says:

    Замечательная статья – спасибо огромное)все ясно, просто и по делу..но вот еще нужно решить задачку: можно ли при подоюной настройке как нибудь мониторить трафик с разных IP? если кто нибудь знает, плдскажите, пожалуйста, буду очень благодарна)

  20. Владимир says:

    Прекрасное руководство, всё работает, но почему-то только если на сервере установлен gnome. В чём причина, как сделать всё тоже самое на сервере без графики?

  21. Alex says:

    Добрый день,
    Вы пишете, что нужно добавить правила для маскарадинга в таблицу NAT, т.е. при введении с консоли вышеуказанных команд, они сами попадут в эту таблицу?

  22. Alexey says:

    Alex, эти команды создают правило iptables для использования функции NAT (преобразования сетевых адресов), которая использует свою таблицу.
    Документацию можно посмотреть здесь: http://www.opennet.ru/docs/RUS/iptables/#NATTABLE

  23. Alexey says:

    Владимир, Gnome – это графическая оболчка для Xов, и она совершенно не влияет на настройки iptables.
    Используя Ubuntu без XOrg, все должно прекрасно работать.

  24. Владимир says:

    Ещё раз внимательно проделал всё по инструкции, всё работает, где-то допустил ошибку в прошлый раз,
    спасибо.

  25. Alex says:

    а если еще DHCP сервер работает, то изменять настройки не надо? Все делать как указано выше?

  26. m00n says:

    совсем недавно поставил ubuntu и вопрос у меня по
    auto eth0
    iface eth0 inet manual
    pre-up iptables-restore < /etc/iptables.up.rules

    у меня IP приходит по ДХЦП, и в /etc/network/interfaces нет никаких упоминаний о eth1 (на него приходит интернет), я просто добавил в /etc/network/interfaces
    auto eth1
    iface eth1 inet manual
    pre-up iptables-restore < /etc/iptables.up.rules

    работать будет?

  27. Григорий says:

    Спасибо ОГРОМНОЕ!
    Статей в интернете полно, но как то не получалось победить эту тему. Тут все конкретно и подробно. Интернет в сеть пошел. Вопрос не совсем в тему; интернет буду раздавать через АР. Чей IP прописывать шлюзом на хостах сети, IP АР или IP Ubuntu?
    Заранее спасибо.

  28. info says:

    Alex, если на вашем сервере работает параллельно DHCP, то по-идее дополнительных настроек не требуется, главное не удалите существующие.

  29. info says:

    m00n, если у вас в /etc/network/interfaces описан только один сетевой интерфейс, но физически в компьютере их два, то второй управляется программой Network Manager. Как-то изменять /etc/network/interfaces в Вашем случае не советуем, со строками:
    auto eth1
    iface eth1 inet manual
    pre-up iptables-restore < /etc/iptables.up.rules

    - скорее всего работать не будет.

  30. info says:

    Григорий, уточните что вы подразумеваете под AP?
    В любом случае, если вы настроили корректно Ваш ubuntu-шлюз, то его ip можно смело прописывать на других компьютерах.

  31. Григорий says:

    Добрый день!
    Под АР я подразумевал Access Рoint (роутер). Его адрес не относится к моей локальной сети. Сейчас на машинах локалки прописан ip ubuntu-шлюза. Ping через роутер идет в обоих направлениях, как по Ethernet так и по Wifi. Но интернет в сеть идет только по ethernet. По Wifi, точка доступа видна, подключение происходит, но в интернет машины из локалки не попадают.

  32. SlavkaTT says:

    Объясните подробно все сделал как было написано.
    на сервере стоит ubuntu, клиент – 7. машины друг друга пингуют
    что в 7 и куда прописать чтобы инет появился.

  33. Andrey says:

    Отличная статья! Все работает как часы!

  34. Frees says:

    Добрый день!

    А есть ли способ более гибко раздавать интернет из под линукса? Интересует в первую очередь ограничение ширины канала для конкретных пользователей.

  35. МистерТвистер says:

    к 37 посту:
    ситуация как у m00n
    добавил строки – заработало
    до этого не пахал ДНС из внутренней сети

  36. c_deneuve says:

    Спасиба автору !! все работает!!1

  37. Дмитрий says:

    У меня на машине только одна сетевая, она и в инет смотрит и сеть заглядывает. Как быть в этом случае?

  38. Олег says:

    Спасибо вам огромное за такую позновательную статью . Настроил не сразу ))) аж с 4го раза , и то по своеей тупости + вы не дописали что на машине (клиенте) в днс нужно прописать днски хотябы гугла (8.8.8.8 или 8.8.4.4) . СПасибо вам огромное еще раз !!!

  39. Иван says:

    очень полезная статься, но у меня немного другая ситуация: есть кпк PALM tungsten T5, и нужно раздать на него интернет через bluetooth . сильно ли изменится алгоритм действий по сравнению с вышеизложенным? извиняюсь за вопрос возможно не по теме

  40. Сергей says:

    Спасибо за статью, все настроил, все работает, кроме одного: не могу зайти на msn.com, microsoft.com, не могу подключиться к messenger. Может что подскажете по данному случаю.

  41. Tauri says:

    Спасибо большое за толковую статью! 🙂 Заработало на раз. Может, подскажете, как настроить VPN туннель между двумя серверами Ubuntu (site-to-site)? Или где можно описание найти вроде написанного вами? Спасибо заранее!

  42. liysha says:

    Блин.. настроил все как в этой статье и в итоге ничего. Сеть работает а инет не раздается (Ubuntu 10.04)/ Помогите….

    • info says:

      liysha, инструкция рабочая, проверена неоднократно. Пробуйте снова, возможно где-то ошиблись. В любом случае дистанционно без всякой информации помочь не сможем, изучайте логи и сообщения программ об ошибках – если не разберетесь, пишите их сюда, посмотрим, может сможем чем помочь.

  43. overnight says:

    Спасибо за инструкцию. Я, правда, уже разобрался, но до этого сутки читал форумы в которых основная инструкция: “Уже сто раз спрашивали – пользуйтесь поиском”. =(
    Хорошо, что остались люди с человеческим отношением к другим. 🙂

  44. liysha says:

    Все заработало…..Огромное СПАСИБО за эту инструкцию. Угробил неделю на настройку инета в сеть.. Только это тормозило полностью перейти на Ubuntu.

  45. Юрий says:

    Имею витую пару с внешним статическим IP. Настроил на компе Убунту Сервер. Через вторую сетевую подключил маршрутизатор по интерфейсу eth1 как в статье. На остальные ПК дальше Интернет должен раздавать маршрутизатор. Физически всё подключено, согласно статье настроено, из клиентского ПК пингуется и IP eth1 и статический внешний адрес eth0. Но для раздачи Интернету нужно в маршрутизаторе настроить WAN с параметрами: IP Address, Subnet Mask, Default Gateway, Primary DNS, Secondary DNS. Согласно статье заменил Default Gateway на 192.168.0.10, IP внешний оставил. При попытке сохранить такие параметры маршрутизатор в веб-интерфейсе выдаёт ошибку: Bad Gateway for WAN IP, please input another one. Тупо даже перебирал разные варианты. Маршрутизатор TP-Link TL-WR340G
    http://www.tp-link.com/support/download.asp?a=1&m=TL-WR340G
    Имеет опции Forwarding, Virtual Servers, Firewall, Static Routing и др. В чём может быть ошибка? Спасибо.

    • info says:

      Юрий, если я вас правильно понял, то делать какие-либо настройки в маршрутезаторе локальной сети вам не надо, достаточно чтобы он просто связывал все машины между собой. Все необходимые фунцкии для раздачи WAN в LAN будет выполнять ваш PC-шлюз.

  46. Slavik says:

    а не проще ли сделать так…?
    iptables -t nat -A POSTROUTING -o (внешний инет eth1 например) -j MASQUERAD
    iptables -P FORWARD ACCEPT
    gedit /etc/sysctl.conf – расскоментировать строку с forward
    команды iptables прописать в /etc/rc.local

    если делать по вашему все конечно работает, но зачем столько лишних дел когда можно обойтись двумя строчками?)

  47. Dmitriy says:

    Есть два компа, один маршрутизатор. На нем винда и убунта 10.04 под вмндой второй комп интернет видит. Под убунтой нет. Ни в какую. Ваше руководство которым я пытаюсь воспользоваться уже 30-ое наверно. И ни одно не помогает. Делаю все по инструкции. Все проверяю. Результат – ноль.
    Интернета на второй тачке как не было так и нет.
    Может я уже везде столько всего понапрописал что теперь только кувалда спасет. Может какие то настройки для автозапуска. сохранил не верные а теперь по верх этого в другие но в другие автозапускающие файлы? Вобщем у меня тоску вызывает линукс. А мне этого не хочется. Ай нид хелп.

  48. Dmitriy says:

    Криво написал.
    два компа
    pc1: winXP or Ubuntu 10.04
    pc2: winXP
    если первый комп подминдой то второй видит инет, если под убунтой то ничего.

  49. info says:

    Dmitriy, в этой статье описана настройка на компьютере gateway, а не доступа в интернет.
    Для настройки доступа к интернету рекомендуем вам не трогать конфигурационных файлов, а сделать все через графический интерфейс программой NetworkManager.

  50. Gregory says:

    Добрый день! Большое ВАМ спасибо. это единственный путь который дал результат из моего опыта. провел целую неделю в поисках. переустанавливал Ubuntu 10.04 server раз 7. хотел было искать что-то другое. Сделал всё по вашей статье и случилось чудо (для меня). очень вам благодарен.

  51. Сергей says:

    sudo sh -c “echo 1 > /proc/sys/net/ipv4/ip_forward”
    работает только до ребута системы.
    Что бы не писать каждый раз ее удобно прописать в описанный здесь же /etc/sysctl.conf строчку net.ipv4.ip_forward = 1 и сохранить 😉

  52. Andrey says:

    Спасибо за статью! Только у меня проблемма. Интернет работает, а вот если я хочу прикрепить фаил к письму, то через данный шлюз не прикрепляет, или неотправляет почту. Как решить проблемму?

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

    И у меня сеть на 20 машин с некими параметрами сети
    192.168.0.Х

    В чем проблемма?

  53. F1RST says:

    СПАСИБО ОГРОМНОЕ !!! ПОТРАТИЛ
    1. 2 МЕСЯЦА РАБОТЫ, МЛЯ
    2 20 БАЛВАНОК С ДИСТРИБУТИВАМИ
    3. КУЧУ НЕРВОВ

    В ИТОГЕ – ПОМОГ ТОЛЬКО ЭТОТ ФОРУМ )

  54. Igor says:

    Подскажите, пожалуйста, как раздавать интернет через Ubuntu на Windows XP

  55. Ярослав says:

    Спасибо за статью, всё очень доходчиво и понятно написано. Только одно “но”: интернет на компьютере клиента заработал только после того, как прописал DNS “8.8.8.8”. Работают все сайты, Skype, ICQ, Dropbox. Но! Google не работает! Это вообще как так? Это от того что DNS googleовский? Что делать?

  56. RusVAn says:

    На сервере eth0 смотрит в сеть провайдера, eth1 смотрит в домашнюю сеть, подключаю сервер через pppoe к интернету, создается в ifconfig ppp0, мне получается вместо eth0 указанного в статье выше нужно будет указать интерфейс интернета ppp0 ?

  57. RusVAn says:

    Спасибо, все работает, eth0 – смотрит в сеть провайдера, eth1 – домашнюю сеть, ppp0 – создается при подключении к интернету с сервера через pppoe именно его указал как интерфейс, смотрящий в интернет и все заработало! Спасибо огромное ^_____^ довольная рожа.

  58. RusVAn says:

    Хм, на сервере стоит веб сервер, почему -то после всех манипуляций сайт потерял линк с базой данных, расположенной на этом же сервере 127.0.0.1:3306, после команд:

    iptables –flush
    iptables –table nat –flush
    iptables –delete-chain
    iptables –table nat –delete-chain

    Снова заработал сайт, как-то пока не до конца понятно что откуда растет, кстати, странная еще одна вещь, сайты типо ya.ru работают, а тот же гугл и многое другое не прогружается, хотя пинг проходит до них, чет совсем запутался в чем траблы :

  59. uchitel69 says:

    Спасибо!!!!!!! Всё заработало!!!!!!!!

  60. sedoy says:

    У нас 6 комп. подключены в локальную сеть .К моему компу подключен интернет через модем ,я подключил всех к интернету через -общий доступ к интернету в локальной сети. Как сделать доступ только 4 комп. ,но чтобы 6 комп. остались в локальной сети. Подскажите пожалуйста может есть такая программа

  61. ValeryVS says:

    Ранее настраивал раздачу инета в Ubuntu 9.10 по этой статье.
    Сейчас. Ubuntu 10.10 гружусь с лайва, dvd.
    Делаю все по инструкции, только, конечно не сохраняю на лайве то.
    На клиентском компе (как на XP, так и на Ubuntu 10.10) пингуется первый комп, пингуется ДНС провайдера, но не открываются стреници в браузере… кроме сервера статистики моего провайдера.
    В чем тут может быть проблема?

  62. ValeryVS says:

    Что-то появилось такое предположение, что нужно что-то проверить в настройках модема… может там DNS нужно указать точно…
    Хотя сам лайв 10.10 принимает инет, и Win7 установленная на этом же компе принимает и передает… так что… вряд ли.

  63. ValeryVS says:

    This information reflects the current status of your DSL connection.
    LAN IP Address: 192.168.1.1
    Primary DNS Server: 192.168.1.1
    Secondary DNS Server: 192.168.1.1

    вот это меня смущает
    P.S. коменты бы объединить 🙂

  64. ValeryVS says:

    Перенастроил инет через pppoeconf вместо networkmanager’а. Заработало. Может дело в MTU параметре… ограничить до какого-то значения вроде 1460 и networkmanager тоже начнет правильно подключать инет для передачи. Проверю как-нибудь, донастрою остальное в системе.

  65. Nikolaitlt says:

    Спасибо большое!!! Сделал как написано – всё работает как часы! 🙂

  66. valeriy says:

    Таким людям надо ставить памятники! Спасибо, работает! Не мешало бы пару строк добавить о просмотре статуса iptables и на каких уровнях загрузки активен или пассивен.

  67. помогите пожалуйства настроить раздачу интернета по схеме USB модем – убунту 9 – Wi Fi

  68. agerov says:

    Доброго времени суток. Огромное спасибо за подробную статью. Настроил, все заработало. Еще четыре компа получают интернет. После перезагрузки все слетело. Думал, что не цепляет iptables, но как выяснил позже, слетает IP адрес карты, смотрящей в домашнюю сеть.
    Провайдер eltel, настраивал с помощью “sudo pppoeconf”

    Что можно сделать..? Иногда приходится перезагружать машину, и нет желания каждый раз прописывать команду “sudo ifconfig eth1 192.168.0.1”

    Файл: /etc/network/interfaces

    auto lo
    iface lo inet loopback

    auto dsl-provider
    iface dsl-provider inet ppp
    pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
    provider dsl-provider

    auto eth1
    iface eth1 inet manual
    pre-up iptables-restore < /etc/iptables.up.rules

  69. Иван says:

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

  70. federk says:

    2agerov: пропиши в interfaces адреса руками, если и после этого настройки слетают – то удали пакет network-manager

    2Иван: пропиши на клиенте ip адрес, gateway (шлюз, который настраивал) и dns – чтобы раздавать все это автоматически необходима настройка dhcp.

  71. Иван says:

    federk. dhcp настроена так что всем клиентам автоматически всё раздается. Стоит несколько компов на них инэт есть а на моём ноуте нет.
    Что только не делал, потом в итоге добавил в dhcp мак адрес ноута присвоил фиксированный адрес ноут его видит, но инэта так же нет

  72. federk says:

    2Иван: а ping 8.8.8.8 проходит?
    dhcp сервер какой шлюз клиентам разадет? провайдера или твой?

  73. SunSet says:

    Здравствуйте.
    Система Debian 5, минимальный набор при установке.
    Все делалось по этой статье, инет появляется на 2 машины, но после перезагрузки не работает на клиенском пк, хотя iptables -L показывает, что правила сохранены. Чтобы снова “поднять” инет, нужно обязательно очистить таблицу через
    iptables –flush
    iptables –table nat –flush
    iptables –delete-chain
    iptables –table nat –delete-chain
    а потом снова ввести все правила. Без очистки не хочет работать. Как заставить автоматом “подниматься” инет после перезагрузки? Может, в автозагрузку как-нить все это дело оформить, но не знаю как нужно.

  74. Gradusnick says:

    Спасибо)) Все заработало))) Теперь хочу чтобы айпишник еще по DHCP выдавался))) а вопрос со шлюзом решен и это здорово)))

  75. Андрей says:

    У меня странная ситуация получилась. Шлюз даёт интернет только на одну пользовательскую машину. подключаюсь к нему 2-й машиной – инета на ней нет. хоть ты тресни.. в чём может быть косяк?

  76. info says:

    SunSet: да, попробуйте сделать скрипт и добавить в автозагрузку: http://oss-it.ru/171

    Андрей: Машины находятся в одной подсети? Пинг проходит между ними? Если первую отключаете – на вторую интернет приходит? Если нет – то скорее всего дело в настройках второй машины.

  77. Nikolas says:

    у меня проблема с настройкой шлюза на Ubuntu 10.10, делаю все как написано в вашей статье, в interfaces ничего само не прописывается только lo есть. а как руками пропишу, eth0 и eth1 пропадают после перезагрузки, не прописываю, инет на 2-ой машине появляется, но после перезагрузки все слетает (как писали здесь не раз). перепробовал разные варианты, ничего не помогает, посоветуйте что-нибудь)

    • info says:

      Nikolas: на самом шлюзе сетевые настройки могут быть прописаны в NetworkManager (GUI-утилита, по-умолчанию настраивает сеть в Ubuntu) или в файле interfaces (как описано у нас в статье). Вам надо выбрать или тот, или другой вариант, а не пытаться совместить оба.
      Если решите остановиться всеже на Network Manager’е, то скрипт авто-поднятия настроек iptables минуя interfaces можно создать подобным образом: http://oss-it.ru/171

  78. Alexandr says:

    если к такому шлюзу прибавить DHCP, будет ли работать для сети в 50 компов? Как этот шлюз связать со сквидом?

  79. Mickle says:

    спасибо…нормальный код для iptables нашел только здсь

  80. Александр says:

    Прошу помочь.
    После настройки iptables заработал инет везде, но интересный факт:
    аккаунт qip в самом infiume на клиентских машинах не работает при том, что аккаунты icq в нем же загружаются и сайт qip не грузится именно при переключении на этот настроенный шлюз.
    Ответы на подобные вопросы не помог. Может вы проясните. Спасибо.

  81. Владимир says:

    Сделал локальную сеть, первый комп видит второй, а второй не видит первый (при пинге выдаёт – превышен интервал ожидания для запроса). Что делать?

  82. Slenk says:

    Огромное спасибо, весь инет облазил, заработало только по этому мануалу)

  83. Андрей says:

    Здравствуйте подскажите пожайлуста. Как можно настроить компьютер чтобы на нём распологался мой сайт? Чтобы другие пользователи сети интернет могли попасть на мой компьютер.

  84. Юрис says:

    Спасибо!Работает,только после перезагрузки приходится в терминале настраивать iptables.Имеется две карточки-вайрлес (wlan0)и ethernet(eth0).Инет приходит по вай-фай на машину с линуксом и передаётся на ноут по кросс-овер.Так в документе interfaces такой wlan0 даже не присутствует.В папке network присутствует только какой-то скрипт и док interfaces.Линукс убунту 10.10.

  85. Андрей says:

    У организации сетка S1 подключаются к инет через аутентификацию, у меня отдельная сеть S2 хочу дать инет своим пользователям через Ubuntu 10.10 Server у которого eth0 через аутентификацию подключается к инету, а eth1 подключен к моей сети, Настроил выше указанным образом Ubuntu 10.10 Server, но ни с одного компа кроме сервера выйти в инет не могу. Раньше стоял Ubuntu 10.04 и squid инет работал но не проходили https соединения, решил попробовать iptables и вот ничего не получается. Скажите в чем может быть проблема пожалуйста?

    • info says:

      Андрей: не могу ответить на ваш вопрос, недостаточно данных. Какую аутентификацию вы имеете ввиду?
      Если интернет поступает и работает на сервере через eth0, то рекомендую обнулить таблицы iptables и попробовать еще раз более внимательно – должно работать.

  86. Андрей says:

    iptables я обнулял и делал все по шагово раза 4. Скажите пожалуйста а не может ли быть проблема в том что адрес eth0 (инет) у меня статический и не корректно отрабатывает вот эта строчка:
    sudo iptables -A POSTROUTING -t nat -j MASQUERADE
    и если это так то что нужно прописать чтобы работало со статическим внешним ip?

  87. Николай says:

    Организовал шлюз на машине Linux Mint 9 Росинка на базе Ubuntu 10.04.
    настроил по вашим рекомендациям. Интернет раздает до перезагрузки системы. Дошел до места sudo sh -c “iptables-save > /etc/iptables.up.rules”
    в файле /etc/network/interfaces пробую прописывать для автозагрузки, В этом файле по уммолчанию прописана петля
    auto lo
    iface lo inet loopback
    дописываю
    auto eth1
    iface eth1 inet manual
    pre-up iptables-restore < /etc/iptables.up.rules
    но после загрузки все сетевые карты отключаются совсем
    Может в Росинки не в это файл надо прописывать
    Если можно то ещё для меня как правильно организовать автозапуск в LM9 Росинкa

  88. ERT says:

    Здравствуйте. Сделал все по вышеописанному и максимум, чего добился – это работоспособность ICQ с машин в локальной сети. Больше ничего не открывается. В чем проблема? Спасибо.

  89. Dima says:

    Настроил по вашей инструкции,но на ноуте в вин 7 пропадает нет.Что может быть за ошибка?

    • info says:

      Dima, недостаточно данных чтобы ответить на ваш вопрос.
      Подробно опишите вашу проблему, что проанализировать и найти причины.

  90. Ruslan says:

    Здравствуйте.

    Есть локальная сеть через которую выхожу в интернет. Интерфейс eth0. Хочу сделать AP wi-fi которая создаёт другую сеть (домашнюю)
    Хочу выдавать всем устройствам wi-fi статический IP и подключатся к точке доступа, через которую выходить в интернет.

    eth0 настраиваю так:


    ifconfig eth0 192.168.0.185 netmask 255.255.248.0 hw ether 00:25:22:39:ae:a5
    route add default gw 192.168.0.30

    Добавляю в /etc/resolv.conf dns:

    echo "nameserver 195.95.139.18" >> /etc/resolv.conf

    Интернет появляется.

    Есть интерфейс wi-fi wlan0.
    Интерфейс wlan0 настраиваю как точку доступа при помощи hostapd

    /etc/hostapd/hostapd.conf

    interface=wlan0
    driver=nl80211
    ssid=MyAp
    country_code=RU
    hw_mode=g
    channel=5

    macaddr_acl=1
    accept_mac_file=/etc/hostapd/hostapd.accept

    после поднятия hostapd, ifconfig выдаёт:


    eth0 Link encap:Ethernet HWaddr 00:25:22:39:ae:a5
    inet addr:192.168.0.185 Bcast:192.168.7.255 Mask:255.255.248.0
    inet6 addr: fe80::21b:38ff:fecb:f33a/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:2585536 errors:1 dropped:102 overruns:0 frame:1
    TX packets:2702510 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:354029473 (354.0 MB) TX bytes:2920203702 (2.9 GB)
    Interrupt:42 Base address:0x2000

    lo Link encap:Локальная петля (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:407538 errors:0 dropped:0 overruns:0 frame:0
    TX packets:407538 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:13450614 (13.4 MB) TX bytes:13450614 (13.4 MB)

    mon.wlan0 Link encap:UNSPEC HWaddr 00-1F-3A-0D-8C-B1-30-30-00-00-00-00-00-00-00-00
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:22 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:1544 (1.5 KB) TX bytes:0 (0.0 B)

    wlan0 Link encap:Ethernet HWaddr 00:1f:3a:0d:8c:b1
    inet6 addr: fe80::21f:3aff:fe0d:8cb1/64 Scope:Link
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:137601 errors:0 dropped:0 overruns:0 frame:0
    TX packets:199787 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:13853704 (13.8 MB) TX bytes:242239576 (242.2 MB)

    Назначаю интерфейсу wlan0 ip-адрес:


    ifconfig wlan0 10.0.0.1/24

    После чего делаю настройки iptables:


    iptables -A FORWARD -i eth0 -o wlan0 -s 10.0.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
    iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -A POSTROUTING -t nat -j MASQUERADE

    Далее на другом ПК настраиваю сеть wi-fi:
    ip:10.0.0.2/24
    gw:10.0.0.1
    dns: 195.95.139.18

    К точке доступа подключается. Пинг на 10.0.0.1 и 192.168.0.185 идёт. Но интернета нет…

    Может что-то упустил.
    Что может быть не так?

  91. Михаил says:

    “Либо, это можно проделать всего одной командой:
    sudo ifconfig eth1 192.168.0.10
    Эта команда самостоятельно настроит вашу сетевую карту eth1 на использование статичного айпи-адреса, и самостоятельно пропишет описанные выше настройки в файл /etc/network/interfaces”

    Эта команда ничего в этот файл не пишет. Она присваивает IP только до перезагрузки.

  92. Terza says:

    Спасибо все заработало, неплохо еще бы добавить какой нибудь кэширующий dns-сервер. У меня без dnsmasq не захотел денеэсить. Там всей настройки: sudo apt-get install dnsmasq

  93. Edward says:

    Ваще верняк! Спасибо за инструкцию!

  94. tatar says:

    А я вот тут http://school-adminlinux.blogspot.com/ прочитал мне помогло пока работает

  95. Алексей says:

    У меня проблема….. помогите….. Упал шлюз. Все дело в том что я инет могу раздать локальным машинам и виндой, но, есть один момент! У меня два входящих канала, один зашифрованный другой нет, их надо преобразовать в один. И раздавать по одному кабелю!

    • info says:

      Алексей, если хотите чтобы вам помогли – то более конкретно формулируйте проблему. Из вашего описания не ясно каким ПО вы пользуетесь и в чём конкретно состоит проблема.

  96. akmal85 says:

    здравствуйте… настроил всё по мануалу.. вроде получилось но проблема такова: сетевая карта (етх1) смотит в локальную сеть, сетевая карта (етх0) смотрит на провайдера… при подключении всех проводов спустя минуты две появляеца локалка (проверено методом пинга) а вот инет никак не появляеца (на серваке!!!) хотя я пингую до точки доступа и ДНС все видит… в чом может быть трабл???… помогите…. до этого был такой трабл лечился методом тыка на сетевое подключение “в трее”….изначально ставил дистрибутив убунту 10,04, но он попросил обновления до 11 версии… после обновления эта менюшка “в трее” пропала… теперь я не знаю куда ткнуть штоп подключение произошло!!!!…. ПОМОГИТЕ….

  97. budko says:

    Добрый день, настроил как написано выше, всё работает, у всех есть инет, но надо пробросить порт для вэб сервера, воспользовавшись этой статьёй http://oss-it.ru/217 получилось что с интернета обращаясь на мой ip (естественно внешний) попадают на вэб сервер, но с локальной сети если я обращаюсь на внешний ip не пропускает!

  98. Николай says:

    Добрый день. Подскажите пожалуйста у меня вот такая проблема прочитал вашу тему спасибо. Но у меня не получилось немного по поподробне сервер ubuntu подключен к создан домен вот его настройки
    auto eth0 (от сюда я получаю инет)
    iface eth0 inet static
    adress 192.168.101.247
    netmask 255.255.255.0
    gateway 192.168.101.1

    auto eth1 (а здесь его нету)
    iface eth1 inet static
    adress 10.10.8.1
    netmask 255.255.255.0
    network 10.10.8.0
    broadcast 10.10.8.254

    Подскажите что я не так сделал?

  99. Автору большое уважение. Прекрасная статья. Все получилось со второго раза (первый раз не сбрасывал iptable, не прописал одну строчку и сделал одну ошибку). Главное выполнять все по инструкции. Хочу дать только пару замечаний по статье:
    1) Значения network и broadcast будут зависеть от вашего адреса. То есть, если ваш локальный ip — 10.0.0.10, то network и broadcast будут 10.0.0.0 и 10.255.255.255 соответственно. – тут, помоему ошибка. должно быть так: то network и broadcast будут 10.0.0.0 и 10.0.0.255
    2) Хотелось бы увидеть описание блок:
    sudo iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -m conntrack –ctstate NEW -j ACCEPT
    sudo iptables -A FORWARD -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT
    sudo iptables -A POSTROUTING -t nat -j MASQUERADE
    А то страшно выполнять то, чего вообще не понятно.

  100. igor says:

    можно мне спросить помощи у общественности.
    Ситуация в офисе такая. Входит кабель инета на вай-фай роутер, клиент Убунту 12.04 получает через юсб тот самый инет, при этом его сетевая не задействована вовсе. Рядом к этому клиенту ставят другой комп на той же самой Убунте, но соединяют оба компа через обжатый Лан-провод. Оба клиента получают дшсп в автомате, оба работают с сервером через Реммину (обязательное условие)
    Не могу раздать интернет с клиента 1 (ЮСБ вай-фай интернет получает, через свою сетевую должен отдать клиенту 2).
    Вводные данные такие:
    клиент1 – 192,168,0,109, маска 255,255,255,0 шлюз 192,168,1,1, броадкаст 192,168,0,255, днс 77,121,244,40 на его сетевой ставлю такие параметры вручную – 192,168,1,1, маска 255,255,255,0
    клиент 2 -лан 192,168,1,2, маска 255,255,255,0, шлюз 192,168,1,1, днс 192,168,1,1
    спасибо за помощь

  101. ihomos says:

    в /etc/network/interface описана только петля. о eth0 и eth1 там не слова, как настроить автозагрузку параметров?

  102. Александр says:

    Большое спасибо. Действительно все получилось. Правда с моими ip адресами не работает, но если использовать ip адреса указанные в примере – все получается. Пойду искать косяк в своих айпишках. Спасибо за статью!

  103. Игорь says:

    Здравствуйте! а как можно раздать интернет с eth1 на интерфейсы eth2 и eth3, а так же сделать чтоб dchp сервер раздавал ip c двух интерфейсов

    • info says:

      Игорь,

      а как можно раздать интернет с eth1 на интерфейсы eth2 и eth3,

      Вместо первой команды iptables, упомянутой в статье, введите две этих:

      sudo iptables -A FORWARD -i eth1 -o eth2 -s 10.0.0.1/24 -m conntrack --ctstate NEW -j ACCEPT
      sudo iptables -A FORWARD -i eth1 -o eth3 -s 10.0.1.1/24 -m conntrack --ctstate NEW -j ACCEPT

      Изменив сети и маски подсети на те, на которые у вас настроены интерфейсы eth2 и eth3.

      сделать чтоб dchp сервер раздавал ip c двух интерфейсов

      Если используете dnsmasq, то вот пример конфигурации на два интерфейса:

      # Common options
      listen-address=127.0.0.1,10.0.0.1,10.0.1.1
      bind-interfaces
      bogus-priv
      dhcp-authoritative
      dhcp-option=vendor:MSFT,2,1i
      domain-needed
      dhcp-option=option:domain-search,example.org
      domain=example.org
      strict-order

      # DHCP-range and options, 10.0.0.0/24
      #dhcp-range=address:10.0.0.1,10.0.0.2,10.0.0.254,255.255.255.0,3h
      dhcp-option=address:10.0.0.1,option:dns-server,10.0.0.1
      dhcp-option=address:10.0.0.1,option:ntp-server,10.0.0.1
      dhcp-option=address:10.0.0.1,option:router,10.0.0.1

      # DHCP-range and options, 10.0.1.0/24
      dhcp-range=address:10.0.1.1,10.0.1.2,10.0.1.254,255.255.255.0,3h
      dhcp-option=address:10.0.1.1,option:dns-server,10.0.1.1
      dhcp-option=address:10.0.1.1,option:ntp-server,10.0.1.1
      dhcp-option=address:10.0.1.1,option:router,10.0.1.1

      # Hosts, 10.0.0.0/24
      dhcp-host=00:0f:20:30:cc:a7,00:0f:20:30:cc:a8,srv1.example.org,10.0.0.201
      dhcp-host=00:0d:9d:d4:8d:cc,00:0d:9d:d4:8d:cd,srv2.example.org,10.0.0.202

      Пример отсюда.

  104. mrwatcher says:

    Автор спасибо тебе огромное, ты супер.

  105. а какие минимальные параметры железа для нормальной работы шлюза на 50 компов?

    • info says:

      Вообще, лучше использовать специальное железо для такого количества клиентов.
      Но если непременно стоит задача работы шлюза на собственном linux сервере (например, для моста в специфические VPN, не поддерживаемых роутерами) – то определяющими будут параметры сетевых портов, как часто говорят “толщина канала”. Для шлюза на 50 клиентов, хватит 128MB памяти (хватит и значительно меньше, просто сейчас сложно найти оборудование с меньшим количеством памяти) и любого современного процессора (arm, amd, intel), если на сервере будут работать ещё какие-то демоны, то желательно, чтобы процессор был как минимум с двумя ядрами.

  106. Anonymous says:

    Спасибо info что ответили! очень нужен квалиф.совет.
    Есть задача- поднять интернет шлюз минимум 50 комп. позже может быть больше. шлюз подключается от роутера (пока так) кабелем (инет от провайдера через роутер) канал 100 мб/с. Цель оптимизировать сеть при данной пропускной способности, раздавать по dhcp, иметь возможность ограничить скорость при закачке торрентов например (создать правило) видить статистику. Увеличить безопасность. В наличии железо: комп Атлон 2 ядра 2.6ГЦ , озу 2Гб диск 500 Гб . сетевая pci + сетевая на материн. Ubuntu server 16.04.

    1.Как правильно настроить сетевые интерфейсы в данном случае?
    2.Насколько реально и эффективно раздавать через 2 pci сетевых интерфейса (две ветки сети с разными правилами например)?
    3.Каких целей реально достичь с таким железом?
    За ранее спасибо!

    • info says:

      1. В вашем случае проще и быстрее всего будет использовать специализированный для перечисленных задач дистрибутив системы. Какой-нибудь из этих например: https://en.wikipedia.org/wiki/List_of_router_and_firewall_distributions
      В большинстве из них все перечисленное можно сделать через встроенный веб-интерфейс.
      2. Вполне реально на разные интерфейсы раздавать разные правила.
      3. Железа хватит вполне, разве что могу настоятельно порекомендовать установить систему на SSD, вместо жесткого диска. Если не планируется кэширования, то для всего вполне хватит 16-32GB твердотельного накопителя, а жесткий диск можно будет и не подключать.

  107. Anonymous says:

    Большое спасибо! А какой дистрибутив из приведенных, на ваш взгляд лучше подойдет?

  108. Anonymous says:

    Большое спасибо!

  109. Anonymous says:

    Спасибо тебе, добрый человек!

  110. Евгений says:

    Здравствуйте!
    Подскажите пожалуйста какие INPUT правила нужно прописать чтобы на локальных машинах интернет работал, если общее правило DROP ?

    Я уже всякие разные перепробовал – в итоге, интернет на локальных машинах работает только если глобальное правило ACCEPT.

    Спасибо!

  111. PENSIONEER says:

    Автор, ну ты и дал… Где же ты раньше был? Из-за отсутствия твоей статьи в топе переустанавливал грёбаный дебиан 10 раз… Тебе прогул, в общем то говоря, с занесением в личное дело = ) А вообще-то благо дарю тебе, автор. Только вот скорость исходящая стала резаться из локалки, думаю связано с iptables, тем более что после шлюза, стоит роутер…

  112. Артем says:

    Добрый день! сделал все по инструкции ( у меня интернет через 4g модем идет к ubuntu и раздается на windows по локальной сети)
    интернет на винде заработал! но пропал на ubuntu, откуда он раздается, как быть ?

    • oss-it says:

      Недостаточно информации, чтобы что-то предположить. Проверьте в первую очередь ping по ip-адресам (в локальную сеть и во внешнюю, например ping 8.8.8.8) – если внешние ip пингуются, значит проблема в dns. Если есть пинг только в локальной сети или вообще нет (но при этом интернет как-то раздается) – скорее всего какая-то ошибка маршрутизации или файрвола. В этом случае можно порекомендовать сбросить настройки iptables и попробовать снова, возможно, где-то была допущена ошибка.

      • Dmitry says:

        Заработает без conntrack. Какая ошибка. Вы же сами назначили предписание ядру так следить за пакетами) Пинги по ip будут идти, понятное дело.

  113. dmitry says:

    Добрый день!
    Надеюсь тема еще жива, у меня такая проблема, интернет от провайдера приходит и для его работы на рабочих пк необходимо прописывать прокси(интернет отдают через прокси). какое правило в iptables нужно прописать, что бы на интернет-шлюзе настроить подключение к интернет через прокси, без необходимости настройки на остальных пк ?

    • oss-it says:

      Попробуйте такие правила: https://superuser.com/a/544404

      iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.0.2 -p tcp --dport 80 -j DNAT --to 192.168.0.2:3128
      iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -d 192.168.0.2 -j SNAT --to 192.168.0.1
      iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.0.2 -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT

      где:

      192.168.0.2 – proxy server IP (Squid, etc);
      192.168.0.1 – router IP (where started iptables);
      192.168.0.0/24 – your local network

  114. Dmitry says:

    А как после этого на сервере качать пакеты? обновляться.
    После таких правил инет для клиентов появился, но сам сервер может пинговать лишь io адреса. имена нет. Если сделать сброс правил, то все ок. Каждый раз сбрасывать правила?

    • oss-it says:

      Видимо, почему-то у вас сбрасываются настройки DNS серверов. Их можно проверить/изменить в файле /etc/resolv.conf.

  115. Dmitry says:

    iptables –flush
    iptables –table nat –flush
    iptables –delete-chain
    iptables –table nat –delete-chain
    iptables -A FORWARD -i ens37 -o ens38 -s 192.168.2.0/24 -m conntrack –ctstate NEW -j ACCEPT
    iptables -A FORWARD -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -A POSTROUTING -t nat -j MASQUERADE

    ens37 – внутренний интерфейс
    ens38 – внешний
    192.168.2.0/24 – внутренняя сеть

    ping google.com
    ping: google.com: Temporary failure in name resolution
    Зато с клиентов все ок

    iptables –flush
    iptables –table nat –flush
    iptables –delete-chain
    iptables –table nat –delete-chain

    ping google.com
    PING google.com (64.233.164.139) 56(84) bytes of data.
    64 bytes from lf-in-f139.1e100.net (64.233.164.139): icmp_seq=1 ttl=128 time=19.8 ms
    64 bytes from lf-in-f139.1e100.net (64.233.164.139): icmp_seq=2 ttl=128 time=19.2 ms
    ^C
    — google.com ping statistics —
    2 packets transmitted, 2 received, 0% packet loss, time 1043ms

    Это как? Я бы еще понял, еслиб не было пинга и до ip адресов, а тут странно. Или настройки сетевых интерфейсов. Еслиб дело было в них, то и сброс правил не помог бы.

  116. Дмитрий says:

    О. Форматирование не правильно выставил. Все. Блин, здесь всё. Где же поискать решение..

  117. Dmitry says:

    iptables -A FORWARD -i ens37 -o ens38 -s 192.168.2.0/24 -j ACCEPT

    Вот так момент проблемы резольвинга исчезнет. А с -m conntrack –ctstate NEW нужно дописывать другие разрешения, чего вы в своем .. блоге вообще не упомянули.

    • oss-it says:

      Уточните, пожалуйста, версию своей системы. Возможно, на вашу сетевую конфигурацию повлияли какие-то сторонние параметры.

Leave a Comment to Александр

Your email address will not be published. Required fields are marked *