Subnet ubuntu что это

Обновлено: 05.07.2024

Internet Connection Sharing (ICS) provides the ability for one computer to share its Internet connection with another computer. To do this, a computer with an Internet connection must be configured to function as an Internet gateway. A second computer (or network of computers) connects to the Internet indirectly via the gateway computer.

  • Dial-up connection.
  • Authenticated (PPPoA/E) connection.
  • Wireless connection.
  • When it is impractical (such as with distance) to run multiple network cables to each computer.

GUI Method via Network Manager (Ubuntu 14.04, 16.04)

Assuming your Internet connection is on Wi-Fi, and you want to share via cable. On Ubuntu 14.04 open Network connections from the applet or via commandline nm-connection-editor, then add a connection, select type ethernet, create, then on tab IPv4 Settings select Method Shared to other computers. That should be all for connection sharing.

Assuming you have a cable connection and want to create a hotspot for other Wi-Fi devices. For Wi-Fi you need to set an SSID and Method Hotspot on tab Wi-Fi, as well as Security WPA and a password on Wi-Fi Security tab.

On 16.04 start the nm-connection-editor via commandline, configure as before, then the created connection appears and works from gnome3-shell network settings.

GUI Method via Network Manager (Ubuntu 12.04)

Open Settings->Network->Wireless and create a new Ad Hoc network. To use a common denominator for all devices choose WEP for security and create a 5 letters password from 0..9A..F. Note that this a least secure encryption standard.

GUI Method via Network Manager (Ubuntu 11.10)

Follow the GUI Method via Network Manager (Ubuntu 9.10 and up) below but there is a bug which turn off and on the share connection. The workaround for now is to set IPv6 options to Ignore and then sudo killall dnsmasq. Reconnect and it should work.

GUI Method via Network Manager (Ubuntu 9.10 and up)

In order to share an Internet connection, the computer that will do the sharing must have two network cards or ports. This assumes that you are using at least one Ethernet port and that it is identified as "eth0". eth0 will be the port that other computers will connect to you on.

  • Go to "System" on your top bar.
  • Navigate to "Preferences" and select "Network Connections".
  • When that window opens, select "Auto eth0", and press "Edit" (This assumes that you are connected to the Internet on some other port, for example wlan0 using wireless).

A new window will open. Navigate to the tab titled "IPv4 Settings", and change the Method to "Shared to other computers". After restarting the computer, you should now be able to plug in any computer into your other Ethernet port or share through your wireless card.

  1. You are already connected to the Internet using your wireless on port wlan0.
  2. The Ethernet port eth0 is connected to the PC that needs to share your Internet connection (or you could wire eth0 to a router for multiple machines).

Wireless Ad-Hoc connection sharing scenario

NetworkManager now should connect to itself (which means it creates the ad-hoc wireless network and routes any Internet traffic to your wired network interface). Now, connect with the client(s), and you should have a working Internet connection.

Ubuntu Internet Gateway Method (iptables)

Gateway set up

The following example will focus on the most common gateway setup: an Ubuntu computer with two wired network adapters (eth0 and eth1) hosting ICS to a static internal network configured for the 192.168.0.x subnet.

For this example, eth0 is used to represent the network card connected to the Internet, and eth1 represents the network card connected to a client PC. You can replace eth0 and eth1 as needed for your situation. Also, any private IP subnet can be used for the internal network IP addresses.

Your setup may be different. If so, make sure to change them accordingly in the following commands.

Configure internal network card

Configure your internal network card (eth1) for static IP like so:

The external and internal network cards cannot be on the same subnet.

Configure NAT

Configure iptables for NAT translation so that packets can be correctly routed through the Ubuntu gateway.

The first rule allows forwarded packets (initial ones). The second rule allows forwarding of established connection packets (and those related to ones that started). The third rule does the NAT.

Enable routing

  • Configure the gateway for routing between two interfaces by enabling IP forwarding:

. so that it reads:

Client set up

Any OS can connect to the Internet as an ICS client as long as networking has been configured correctly. The following example will focus on how to set up an Ubuntu ICS client. For this example, it is assumed that the client is connected to an Ubuntu gateway, which has been configured to share ICS on the 192.168.0.x subnet according to the gateway set up outlined above.

For this example, eth0 is the network card on the client which is connected (by crossover cable) to eth1 on the Ubuntu gateway. You can replace eth0 as needed for your situation. Also, any private IP subnet can be used for the internal network IP address, as long as it matches the subnet on the gateway.

Disable networking

Give the client a static IP address

This IP address can be anything within the gateway's private IP range.

Configure routing

This address should match the IP address on the gateway's internal network card (eth1 in the above example).

Configure DNS servers

  • Search for the line that starts "prepend domain-name-servers", and change it to look like this:

208.67.222.222 and 208.67.220.220 are OpenDNS DNS servers. If you wish to use your ISP's DNS servers, use them here instead of the OpenDNS servers.

Restart networking

Once this is finished, your client will now have access to the Internet via ICS. Please direct any questions/comments to the Internet Connection Sharing Documentation thread.

Advanced Gateway Configuration

The above example outlines how to do basic ICS on a static IP network. Once you have configured your Ubuntu computers for ICS and confirmed that everything works across your static network, there are a few advanced routing configurations which can make it much easier to set up the ICS client.

Advanced configurations include DHCP server and DNS server. A DHCP server allows the client to get an IP address automatically without having to manually configure a static IP. A DNS server allows the client to resolve Internet host names without manually configuring DNS addresses.

DHCP/DNS server

  • Stop the server. After dnsmasq has been installed, it is automatically started, so it will need to be stopped before changes can be made.
  • Make a backup of the well-commented configuration file (we won't use any of this, but it's handy to have a copy of for reference later).

Now, your clients should be able to pull an automatic ip address and resolve host names.

Other approaches

The following section includes a rough outline of some alternative methods for configuring an ICS gateway. They are incomplete and untested. They are included simply for the sake of information.

Alternate server software (CLI)

There are other ways to host ICS, but they are outside the scope of this article.

Alternate NAT

The ipmasq daemon does NAT routing so you don't have to configure iptables. The following directions are incomplete and should not be considered a full description of what needs to be done to configure ipmasq.

Dedicated DHCP server

dhcp3 is an easy to configure and scalable true DHCP server that can be configured for many different aplications. dhcp3 configuration is more complex, but it can be useful in many situations:

Dedicated DNS server

BIND9 is a popular and well-supported local DNS server. It is very versatile and very powerful, but difficult to configure correctly:

Alternate gateway software (GUI)

Another approach is to set up Firestarter, to run connection sharing, to set up dhcp3-server, and to set its configuration to listen to the correct eth*. To change this later, run sudo dpkg-reconfigure dhcp3-server.

Basically, you need to have Firestarter active/turned on/protecting, to have the connection shared.

When you install dhcp3-server, it will place a sample config file in your /etc/dhcp3 folder, called dhcpd.conf. I suggest that you install dhcp3-server first and then Firestarter because if you are lucky, Firestarter will set up a new dhcp3 config file for you.

At any time that changes are made to your dhcpd.conf file, restart the server by typing sudo /etc/init.d/dhcp3-server restart. Alternatively, every time you run the sudo dpkg-reconfigure dhcp3-server command, at the end, your server will restart.

There are several issues that I had. First of all, the Firestarter firewall won't even start if you don't have it configured to listen to the right interface. You can change which one it listens to in Preferences --> Network Settings. The Local-network-connected device must be the same as you have dhcp3-server listening to. Of course, both checkboxes under that need to be checked. The Internet-connected network device will be the one that is configured for Internet. Now, I have two NICs, but I have PPPoE configured on eth0, and I have Internet connection sharing configured on the same one, because eth0 is also configured for a static 192.168 internal IP for my internal network.

Simple iptables example

  • If things go wrong, the following script should save you when things get badly messed up.

See also

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

В руководстве приведены примеры редактирования конфигурационных файлов с помощью текстовых редакторов «nano» и «gedit». Обратите внимание на то, что первый редактор запускается в терминале и может быть использован как при запуске Ubuntu с графическим интерфейсом, так и без него, а «gedit» можно использовать только при включенной графической среде.

Требования к системе

Прежде чем Вы начнете, убедитесь, что:

Различные сетевые утилиты, предназначенные для автоматического конфигурирования сети выключены. Например, тут Вы можете прочитать, как отключить установленный по умолчанию в Ubuntu сетевой помощник Network Manager. Различные сетевые фильтры (например iptables), и утилиты их конфигурирования (например, Firestarter) отключены/правильно настроены и не вмешиваются в работу сети. У Вас есть все необходимые параметры для подключения в Вашей сети (например, IP-адрес, маска подсети и шлюз по умолчанию для соединения с использованием статического IP). Устройства сети осуществляющие фильтрацию по MAC-адресу правильно настроены и «знают» Ваш сетевой интерфейс. Драйвер Вашего сетевого устройства корректно установлен, кабель (при проводном соединении) исправен и подсоединен.

Для настроек вам обязательно потребуется имя вашего сетевого адаптера. Его можно узнать из вывода команды:

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

Пример вывода команды:

Обратите внимание на строку:

eth0 - это и есть искомое имя сетевого интерфейса.

Имя eth0 будет далее применяться для настройки именно данной сетевой карты. Где eth обозначает что используется Ethernet интерфейс, а 0 - номер устройства. Если у вас установлено несколько сетевых устройств, то, соответственно, им будут присвоены имена: eth0 , eth1 , eth2 и т.д.

После внедрения SystemD (начиная с Ubuntu 15.04) сетевые интерфейсы могут иметь другие имена (не ethX). Сделано это для того, что бы имена сетевых устройств не менялись при подключении к машине новых адаптеров (в последнее время, некоторые USB модемы выступают в роли сетевого адаптера). В результате eth0 может называться например enp0s4 или eno1, или даже enx78e7d1ea46da. Именно это имя сетевого адаптера и нужно использовать в настройке сети.

Более подробно о наименовании сетевых интерфейсов в SystemD можно почитать тут (англ.).

Такое переименование можно отключить добавив в /etc/default/grub, в строку с переменной GRUB_CMDLINE_LINUX_DEFAULT строку net.ifnames=0. После этого нужно выполнить sudo update-grub

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

Настройка IP-адреса, шлюза по умолчанию, маски подсети

Отредактируйте файл конфигурации /etc/network/interfaces , например так:

И допишите в него:
Для статического IP:

iface eth0 inet static - указывает, что интерфейс ( iface eth0 ) находится в диапазоне адресов IPv4 ( inet ) со статическим ip ( static ); address 192.168.0.1 - указывает что IP адрес (address) нашей сетевой карты 192.168.0.1; netmask 255.255.255.0 - указывает что наша маска подсети (netmask) имеет значение 255.255.255.0; gateway 192.168.0.254 - адрес шлюза ( gateway ) по умолчанию 192.168.0.254; auto eth0 - указывет системе что интерфейс eth0 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.

eth0 - имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:

В итоге файл /etc/network/interfaces должен выглядеть примерно так:
(для одного проводного соединения со статическим IP)

Сохраните файл и закройте редактор. В данном примере (редактор nano) - нажмите Ctrl + X , затем Y , убедитесь, что «Имя файла для записи» - /etc/network/interfaces и нажмите Enter .

Более подробно про синтаксис файла /etc/network/interfaces можно прочитать в документации.

Пример конфигурации для динамического IP:

Временная настройка IP-адреса и маски подсети

При необходимости задать пробные настройки, выполните:

Где 192.168.0.1 - наш IP-адрес, /24 - число бит в префиксной части адреса (соответствует маске подсети 255.255.255.0).
eth0 - подключаемый сетевой интерфейс.

Данные настройки пропадут после перезагрузки системы и не повлияют на файл /etc/network/interfaces

Настройка DNS

Обратите внимание - в /etc/resolv.conf, при записи нескольких серверов используется несколько ключей nameserver, а в /etc/network/interfaces все адреса DNS серверов записывались в одну строчку после ключа dns-nameservers, разделенные пробелами.

В итоге описание статического интерфейса в /etc/network/interfaces должно выглядеть примерно так:

Ubuntu до версии 12.04

В более старых версиях ubuntu, когда есть необходимость указать статические адреса DNS серверов (если они не выдаются автоматически) выполните:

Настройка соединений ppp

За создание соединений типа «точка-точка» в Ubuntu отвечает демон pppd , более подробная информация о котором доступна в документации. В рамках данного руководства будут рассмотрены примеры создания PPPoE подключения через DSL модем, подключения PPTP (VPN-подключения) и DIAL-UP подключения через обычный модем.

Соединение PPPoE

В стандартную установку Ubuntu входит утилита для настройки PPPoE соединений – pppoeconf , для ее запуска наберите:

Появится «псевдографическое» 2) окно в терминале. Утилита произведет поиск сетевых устройств и выведет их на экран, далее она произведет поиск модема 3) на этих устройствах. Если на этом этапе pppoeconf выдаст отрицательный результат - проверьте правильность подключения, питание модема. Следующий шаг - выбор «популярных параметров» - в большинстве случаев стоит согласиться. Далее утилита запросит Ваш логин, а затем - пароль. Теперь - выбор способа указания DNS серверов. Опять же, в большинстве случаев следует согласиться на получение адресов DNS серверов автоматически. Далее Вам предложат ограничить размер MSS до 1452-х байт - как правило, стоит согласиться. Следующий вопрос - устанавливать ли подключение автоматически при загрузке компьютера. Последний вопрос утилиты - установить ли соединение сейчас. pppoeconf по умолчанию создает для подключения имя dsl-provider. Управлять подключением Вы можете при помощи команд:

Если в Вашем случае опций, предоставляемых утилитой pppoeconf недостаточно - обратитесь к документации по pppd или pppoeconf.

Замечание: при настройке соединения с помощью pppoeconf часть настроек записывается в /etc/network/interfaces , в результате чего Network Manager больше не может управлять сетью. Выход: либо использовать только NM, либо только консоль+конфиги. Вернуть управление Network Manager можно следующим образом. Приведите /etc/network/interfaces к следующему виду (лишнее не обязательно удалять, достаточно закомментировать):

Перезагрузитесь или перезапустите Network Manager:

Соединение PPTP

И добавьте туда опции подключения, например такие:

Далее - отредактируйте файл /etc/chap-secrets 4) и добавьте туда:

После перезагрузки системы Вы сможете управлять соединением при помощи команд:

Процесс настройки VPN-соединения может сильно облегчить скрипт-помощник.

Настройка DIAL-UP подключения

Для настройки модемного соединения можно использовать встроенный конфигуратор pppd - pppconfig или специальную утилиту wvdial .

При помощи pppconfig

Процесс настройки при помощи pppconfig во многом похож на утилиту pppoeconfig , Вам по очереди будут заданы вопросы о параметрах подключения, и будет предложено ввести номер телефона, логин и пароль, а также имя соединения. Запускать pppconfig следует с правами суперпользователя. Например так:

Управлять соединением можно так:

Где my-provider - имя, присвоенное Вами соединению при настройке.

При помощи wvdial

В некоторых случаях (например при подключении с использованием мобильного телефона), удобнее использовать wvdial . Для этого нужно его сначала установить. Например так:

В состав пакета wvdial входит утилита автоматического конфигурирования - wvdialconf .

Вывод будет примерно следующим:

Теперь остается только отредактировать файл /etc/wvdial.conf и добавить в него номер телефона, логин и пароль.

В данном примере я дополнительно добавил несколько опций. См. комментарии.

Файл /etc/wvdial.conf разбит на секции, в качестве разделителей которых выступают сами названия секций, предварённые словом Dialer, в квадратных скобках. Если исполнять команду без параметров, то в дело пойдут установки, перечисленные в секции Defaults. В противном случае дополнительно будут исполнены указанные в добавочных секциях команды.

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

Если потребуется запустить wvdial с набором номера в импульсном режиме, то это можно сделать командой

Прервать соединение можно прервав выполнение команды wvdial , т.е. в том же терминале нужно нажать Ctrl + C .

Автоматическое подключение

Отредактируйте файл конфигурации /etc/network/interfaces , например так:

И допишите в него:
Для pppoe , pptp , и модемного подключения без использования wvdial :

Где my-provider - название вашего соединения.
При использовании wvdial :

Теперь при перезапуске сетевых служб соединение будет автоматически установлено.

Ручная настройка роутинга

Если Вы не получаете адрес шлюза по-умолчанию от сервера, к которому подключаетесь, или по какой-либо иной причине Вам необходимо указать маршруты вручную - Вы можете создать свой скрипт в /etc/ppp/ip-up.d/ , либо по рекомендации официальной документации создать /etc/ppp/ip-up.local например так:

со следующим кодом:

Далее - сделайте этот скрипт исполняемым, например так:

Теперь маршруты будут автоматически подключаться при установлении ppp-соединения.

Установка MTU и TTL

MTU (Maximum Transfer Unit) - параметр определяет величину максимальной единицы передачи. Это максимальное количество октетов (байт), которое интерфейс способен поддерживать за одну операцию приема/передачи. Для Ethernet это значение по умолчанию составляет 1500 (максимальный размер пакета Ethernet).

TTL (Time To Live) - время жизни ip-пакета в секундах. Нужен чтобы избежать перегрузки сети пакетами. Обычно каждый роутер, через которого прошел пакет, уменьшает TTL на еденицу. Если TTL=0, пакет из системы удаляется. Изначально TTL=128 (для Windows) и TTL=64 (для Ubuntu). Для DNS -записей TTL определяет время актуальности данных при кешировании запросов.

Для изменения величины MTU, отредактируем файл конфигурации /etc/network/interfaces , например так:

Для изменения величины TTL наберите:

Значение TTL меняется только с правами администратора, для выхода из аккаунта администратора введите exit

Настройка WiFi

Настройка Wi-Fi при помощи wpa-supplicant и /etc/network/interfaces

В этой главе пойдет речь о настройке подключения к существующей Wi-Fi сети с использованием наиболее безопасного на сегодняшний день стандарта шифрования и аутентификации WPA2. Дополнительно приведены примеры настроек для менее безопасных соединений.

Если Вы можете повлиять на настройку точки доступа, например, в случае, если это Ваш домашний Wi-Fi роутер - постарайтесь настроить авторизацию с использованием WPA2, т.к. это наиболее безопасный протокол аутентификации в беспроводных сетях на настоящий момент.

Замечания

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

После установки всех необходимых пакетов, кабель проводной сети лучше отсоединить. Некоторые устройства (или их драйвера, например Madwifi) не поддерживают WPA2 (AES). Если соединение WPA2 установить не удается, можно попробовать WPA1 (TKIP). Если у Вас RTxxx (Ralink) с драйверами Serialmonkey - этот способ Вам не поможет. Вам следует либо установить пакет ndiswrapper , заменяющий Serialmonkey, либо попробовать другой способ.

Подготовка

Установите пакеты wpa-supplicant и wireless-tools
Например так:

Теперь убедитесь в том, что Ваше беспроводное устройство (в данном примере это «wlan0») работает и «видит» беспроводные сети. Команда

должна выдать примерно такой результат:

а доступные сети можно посмотреть командой

которая должна выдать примерно такой результат:

Ничего страшного, просто введите команду

соответственно выключить устройство можно командой

Настройка

Редактируем /etc/network/interfaces , например так:

Удаляем (или комментируем) все упоминания нашего беспроводного интерфейса и добавляем свои:

Генерация ключей

Теперь нам нужно сконвертировать нашу ключевую фразу (WPA ASCII ) в hex-ключ:

Результат будет примерно таким:

hex-ключ это все символы после «psk=».

Нужно его скопировать в буфер обмена и вставить в файл /etc/network/interfaces в поле wpa-psk.

Теперь можно сохранить файл и перезагрузить сеть. Должно установиться соединение. Однако иногда этого сразу не происходит. Если это так - перезагружаем машину.

Дополнительно

Отключаем чтение файла /etc/network/interfaces для others во избежания попадания пароля от сети к третьим лицам.

Примеры конфигураций

WPA2 + статический IP, скрытый ESSID.

Другие способы работы Wi-Fi оборудования

При помощи Wi-Fi адаптера также возможно установить децентрализованную сеть ad-hoc или сделать из компьютера под управлением Ubuntu точку доступа. Поскольку описание данных способов Wi-Fi подключения выходит за рамки этого руководства - обратитесь к соответствующим разделам. Ссылки на эти разделы см. в разделе Cсылки .

Решение проблем

Не устанавливается соединение по Wi-Fi/Ethernet с точкой доступа/маршрутизатором

Симптомы: сеть обычно изначально работает нормально, долго или недолго, а затем неожиданно пропадает и не появляется после перезагрузки. Эта проблема может быть непостоянной. Сеть «сама собой» начинает работать, а затем пропадает вновь. При перезапуске адаптера сети таким образом:

будет выводиться в консоль похожий текст

Причиной проблемы может быть то, что материнская плата полностью не обесточивается при выключении компьютера. При этом вероятно не обесточивается и некоторое периферийное оборудование, в т.ч. могут не обесточиваться usb порты. Если вы используете, например, Wi-Fi usb-адаптер, то в таком случае можно заметить горящий на адаптере светодиод (если он им оборудован). Вероятно проблема возникает из-за того, что сетевое оборудование в этом режиме работает не совсем корректно.

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

Сложное решение проблемы состоит в настройке параметров BIOS-а на полное обесточиваение сетевого оборудования при выключении компьютера.

Иногда наглухо пропадает соединение по Wi-Fi с точкой доступа/маршрутизатором

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

перезагрузки маршрутизатора сеть сама собой появляется вновь.

Причиной проблемы может быть то, что некоторые маршрутизаторы произвольно выбирают номер рабочего канала, игнорируя номер канала выбранный в настройках маршрутизатора. Если в файле /etc/network/interfaces номер канала для беспроводного интерфейса указан, то вероятно проблема состоит именно в этом. Номер 6 канала указывается в файле примерно так:

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

Сложное решение проблемы состоит в регистрации бага на сайте производителя маршрутизатора (прошивки для него) и обновление прошивки маршрутизатора после (в случае) его исправления.

Перезапуск сети

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

Теперь, при запуске команды ip addr должно отобразиться подключение eth0 с выставленными параметрами. Если подключение отображается, но параметры не такие, какие были указаны в файле /etc/network/interfaces , либо возникают любые другие ошибки, перепроверьте этот файл на наличие неточностей и опечаток и попробуйте ещё раз перезапустить сеть.

FAQ по сетям

Как зайти на мой компьютер извне (через интернет)?

Для начала надо узнать, какой IP-адрес даёт провайдер — серый или белый (не путать со статическим/динамическим). Если серый, то ничего не получится. Если белый, то возможны два варианта:

Роутера нет или он работает в режиме бриджа (моста). В этом случае белый IP-адрес присваивается самому компьютеру. Вводим адрес — попадаем на комп, всё просто. Белый адрес присваивается роутеру. Соответственно, по этому адресу мы попадаем на роутер, а не на компьютер. Чтобы попасть на компьютер, на роутере нужно пробросить порты (см. ниже).

Мне кажется, у меня слишком медленно работает сеть!

Измерьте скорость сети между двумя компьютера с помощью iperf . Можно воспользоваться этой инструкцией. В ней предлагают скомпиллировать программу из исходников, но можно просто установить её из репозитория. Если iperf покажет значение немного меньшее, чем ожидаемое, то с сетью всё в порядке, проблема может быть в железе (жёсткий диск/процессор не могут обеспечить большую скорость), в способе передачи (например, scp и ftp весьма неторопливы), в настройках (скорость может быть ограничена, например, настройками FTP -сервера) или в чём-то ещё. Если iperf показал величину, которая в разы меньше желаемой, то да - с сетью проблемы. Стоит посмотреть, в нужном ли режиме работает карта (например, с помощью ethtool ), проверить наличие «errors» в выводе ifconfig и протестировать скорость подключения к какому-нибудь третьему компьютеру.

Как узнать, какие программы слушают порты на моём компьютере?

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

Для вывода информации о конкретном порте можно использовать grep . Например, для 80 порта:

Из вывода netstat не всегда понятно, о какой программе идёт речь (например, 2671/python), подробнее о процессе расскажет ps :

Как присвоить два IP-адреса одной сетевой карте?

Например, интерфейсу eth0 нужно добавить адрес 192.168.1.1. Кратковременно, до перезапуска сети:

Навсегда — добавить в /etc/network/interfaces следующее:

Как пробросить порт?

Например, нужно пробросить порт 8081. Адрес, на который обращается клиент, назовём внешний_ip, а адрес, на который он должен попасть — внутренний_ip.

Ubuntu поставляется с набором графических утилит для настройки ваших сетевых устройств. Этот документ предназначен для серверных администраторов и сфокусирован на управлении вашей сетью через командную строку.

Интерфейсы Ethernet

Интерфейсы Ethernet идентифицируются системой с использованием имен ethX, где X является числовым значением. Первый интерфейс обычно обозначается как eth0, второй как eth1, и все последующие с увеличивающимися номерами по порядку.

Определение Ethernet интерфейсов

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

Другое приложение, которое может помочь идентифицировать все доступные вашей системе сетевые интерфейсы, это команда lshw. В примере ниже lshw показывает один Ethernet интерфейс с логическим именем eth0 вместе с информацией по шине, деталями драйвера и всеми поддерживаемыми возможностями.

Логические имена интерфейсов Ethernet

Настройки интерфейса Ethernet

ethtool - это программа, которая показывает и изменяет настройки сетевых карт, такие как автоопределение, скорость порта, режим дуплекса и функция Wake-on-LAN (пробуждение системы через сеть). Эта программа не устанавливается по умолчанию, но доступна к установке из репозиториев.

Ниже приведен пример как посмотреть возможности карты и настроить параметры интерфейса Ethernet.

Изменения, сделанные с использованием команды ethtool, временные и будут утеряны после перезагрузки. Если вы хотите сохранить настройки, просто добавьте требуемую команду ethtool в строку pre-up в файле /etc/network/interfaces.

Ниже приведен пример как интерфейс, определенный как eth0, может быть постоянно настроен на скорость порта 1000Мб/с в режиме полного дуплекса.

Несмотря на то, что пример выше показывает интерфейс, настроенный статично, это работает и с другими методами, такими как DHCP . Этот пример слишком примитивен, чтобы продемонстрировать всю важность и возможности использования строки pre-up по отношению к настройке интерфейсов.

Адресация IP

Следующая секция описывает процесс настройки IP адреса вашей системы и шлюза по умолчанию, необходимые для подключения к локальной сети и интернету.

Временное назначение IP адреса

Для временной настройки сети вы можете использовать стандартные команды, такие как ip, ifconfig и route, которые присутствуют также и в других системах на базе GNU/Linux. Эти команды позволят изменить настройки, которые будут применены мгновенно, но они не будут постоянными и будут утеряны после перезагрузки.

Для временной настройки IP адреса вы можете использовать команду ifconfig следующим образом. Только замените IP адрес и маску подсети на соответствующие требованиям вашей сети.

Для проверки настройки IP адреса eth0 вы можете использовать команду ifconfig таким образом:

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

Для проверки настройки шлюза по умолчанию используйте команду route таким образом:

Если вам больше не требуется эта конфигурация и вы хотите отменить все IP настройки интерфейса, вы можете использовать команду ip с опцией flush как показано ниже:

Сброс IP настроек с использованием команды ip не очистит содержимое /etc/resolv.conf. Вам придется удалять или менять эти значения вручную.

Динамическое присвоение IP адреса (клиент DHCP)

Добавив настройку интерфейса как показано выше, вы можете вручную включить интерфейс командой ifup, которая активизирует процесс DHCP через dhclient.

Для отключения интерфейса вручную вы можете воспользоваться командой ifdown, которая запустит процесс освобождения DHCP и остановки интерфейса.

Статическое присвоение IP адреса

Для настройки вашей системы под использование статического присвоения IP адреса добавьте метод static в секцию inet для соответствующего интерфейса в файле /etc/network/interfaces. Пример ниже предполагает, что вы настраиваете ваш первый интерфейс Ethernet, обозначенный как eth0. Измените значения адреса, маски сети и шлюза для соответствия требованиям вашей сети.

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

Для отключения интерфейса вручную вы можете воспользоваться командой ifdown.

Интерфейс Loopback (обратной петли)

Интерфейс loopback определяется системой как lo и по умолчанию задает адрес 127.0.0.1. Он может быть выведен командой ifconfig.

По умолчанию может присутствовать две строки в /etc/network/interfaces отвечающих за автоматическую настройку интерфейса loopback. Рекомендуется оставить эти настройки без изменений пока не возникнет специфической причины для их изменения. Пример этих двух строк приведен ниже.

Разрешение имен

Под разрешением имени по отношению к IP сетям подразумевается процесс определения IP адреса по имени хоста, упрощающий идентификацию ресурса в сети. Данная секция раскрывает как правильно настроить вашу систему для разрешения имен с помощью DNS и статических записей имен хостов.

Настройка клиента DNS

Если у вас несколько доменов, в которых вы собираетесь искать, ваша конфигурация может выглядеть так:

Если вы попытаетесь проверить хост с именем server1, ваша система автоматически запросит DNS по их полным доменным именам (FQDN) в следующем порядке:

Статические имена хостов

Далее приведен пример файла hosts, где ряд локальных серверов определены обычными именами хостов, алиасами и их эквивалентами полных имен (FQDN).

В примере выше обратите внимание, что каждый сервер имеет алиас в добавок к их правильным коротким и полным именам. server1 соотносится с именем vpn, server2 определен как mail, server3 как www и server4 как file.

Настройка переключения сервиса имен

Последовательность, в которой ваша система выбирает метод разрешения имен по IP адресам управляется настроечным файлом переключателя сервиса имен (NSS) /etc/nsswitch.conf. Как отмечено в предыдущей секции, обычно статические имена хостов, определенные в системном файле /etc/hosts, имеют приоритет перед разрешением имен через DNS . Далее пример строки, отвечающей за этот порядок перебора имен хостов в файле /etc/nsswitch.conf.

files сперва пытается разрешить статическое имя хоста в /etc/hosts.

mdns4_minimal пытается разрешить имя с использованием параллельного (multicast) DNS .

[NOTFOUND=return] означает, что любой ответ notfound, предшествующий процессу mdns4_minimal, должен считаться значимым (авторитетным) и что система не будет пытаться продолжать искать ответ.

dns представляет собой наследуемый последовательный (legacy unicast) DNS запрос.

mdns4 представляет параллельный (multicast) DNS запрос.

Для изменения последовательности вышеупомянутых методов разрешения имен вы можете просто заменить строку hosts: на значение по вашему выбору. Например, если вы предпочитаете использовать последовательный DNS до параллельного DNS , вы можете изменить строку в /etc/nsswitch.conf как показано ниже:

Строительство мостов :)

Соединение нескольких интерфейсов - наиболее продвинутая настройка, но очень полезная во множестве сценариев. Один вариант - установка взаимодействия между несколькими сетевыми интерфейсами и затем использование защитного экрана (firewall) для фильтрования трафика между двумя сегментами сети. Другой сценарий - использование связывания на системе с одним интерфейсом для разрешения виртуальным машинам иметь прямой доступ во внешнюю сеть. Следующий пример раскрывает последний сценарий.

Перед настойкой взаимодействия вам потребуется установить пакет bridge-utils. Для установки пакета введите в терминале:

Далее настройте взаимодействие, отредактировав /etc/network/interfaces:

Введите значения соответствующие вашим физическому интерфейсу и сети.

Теперь перезапустите сеть для разрешения взаимодействия интерфейсов:

Теперь новый мост между интерфейсами поднят и работает. Утилита brctl предоставит полезную информацию о статусе моста, определяет какие интерфейсы участвуют во взаимодействии и т.д. Смотрите man brctl для дополнительной информации.

Ссылки

Для дополнительной информации по сетевому связыванию смотрите страницу brctl man и страницу Net:Bridge от Linux Foundation.

Если у вас всего 2-3 компьютера обычно предпочтение отдается ручной настройке сети. Но в настоящее время появилось множество сетевых устройств для каждого из которых настройка сетевых параметров может оказаться очень сложной, а иногда и невозможной вовсе. Это является основным фактором, который мы должны учитывать в пользу установки и настройки DHCP-сервера в нашей сети. DHCP-сервер может существенно упростить настройку сетевых устройств.
Однако ручное назначение IP-адресов всегда необходимо, если вы развертываете в своей сети серверы . Серверы всегда должны иметь статическимй IP-адрес.

Internet Software Consortium является основным автором и разработчиком самого распостраненного DHCP-сервера в Linux, который обычно называют сервером ISC DHCP. В Ubuntu / Debian соответствующий двоичный пакет называется isc-dhcp-server . Рассмотрим как установить и настроить DHCP-сервер.

Установка сервера ISC DHCP

На всякий случай сделаем резервную копию конфигурационного файла

Настройка DHCP

Некоторые общие параметры сервера DHCP:

subnet— Параметр объявляет подсеть (в нашем случае 192.168.38.0 с маской 255.255.255.0)

После того как вы отредактировали основной файл конфигурации и объявили диапазоны IP, откройте файл /etc/default/isc-dhcp-server и замените параметр INTERFACESv4 на имя сетевого интерфейса, который смотрит внутрь сети. Чтобы узнать его имя воспользуйтесь командами ipconfig или ip.


Наконец, после внесения всех изменений перезапустите сервер dhcp, чтобы применить новую конфигурацию и проверить статус службы, выполнив следующие команды:


Настройка DHCP-сервера с резервированием IP-адреса.

Часто возникает необходимость зарезервировать за устройством (сервером, принтером и т.д.) постоянный IP-адрес. В этом случае вам нужно знать его MAC- адрес.

Пример резервирования IP-адреса 192.168.38.5 за компьютером SERVER:

После того, как вы внесли изменения в конфигурационный файл, перезапустите сервер DHCP следующей командой:

Ubuntu ships with a number of graphical utilities to configure your network devices. This document is geared toward server administrators and will focus on managing your network on the command line.

Ethernet Interfaces

Identify Ethernet Interfaces

To quickly identify all available Ethernet interfaces, you can use the ip command as shown below.

Another application that can help identify all network interfaces available to your system is the lshw command. This command provides greater details around the hardware capabilities of specific adapters. In the example below, lshw shows a single Ethernet interface with the logical name of eth0 along with bus information, driver details and all supported capabilities.

Ethernet Interface Logical Names

Interface logical names can also be configured via a netplan configuration. If you would like control which interface receives a particular logical name use the match and set-name keys. The match key is used to find an adapter based on some criteria like MAC address, driver, etc. Then the set-name key can be used to change the device to the desired logial name.

Ethernet Interface Settings

ethtool is a program that displays and changes Ethernet card settings such as auto-negotiation, port speed, duplex mode, and Wake-on-LAN. The following is an example of how to view supported features and configured settings of an Ethernet interface.

IP Addressing

The following section describes the process of configuring your systems IP address and default gateway needed for communicating on a local area network and the Internet.

Temporary IP Address Assignment

For temporary network configurations, you can use the ip command which is also found on most other GNU/Linux operating systems. The ip command allows you to configure settings which take effect immediately, however they are not persistent and will be lost after a reboot.

To temporarily configure an IP address, you can use the ip command in the following manner. Modify the IP address and subnet mask to match your network requirements.

The ip can then be used to set the link up or down.

To verify the IP address configuration of enp0s25, you can use the ip command in the following manner.

To configure a default gateway, you can use the ip command in the following manner. Modify the default gateway address to match your network requirements.

To verify your default gateway configuration, you can use the ip command in the following manner.

If you require DNS for your temporary network configuration, you can add DNS server IP addresses in the file /etc/resolv.conf . In general, editing /etc/resolv.conf directly is not recommanded, but this is a temporary and non-persistent configuration. The example below shows how to enter two DNS servers to /etc/resolv.conf , which should be changed to servers appropriate for your network. A more lengthy description of the proper persistent way to do DNS client configuration is in a following section.

If you no longer need this configuration and wish to purge all IP configuration from an interface, you can use the ip command with the flush option as shown below.

Note

Flushing the IP configuration using the ip command does not clear the contents of /etc/resolv.conf . You must remove or modify those entries manually, or re-boot which should also cause /etc/resolv.conf , which is a symlink to /run/systemd/resolve/stub-resolv.conf , to be re-written.

Dynamic IP Address Assignment (DHCP Client)

To configure your server to use DHCP for dynamic address assignment, create a netplan configuration in the file /etc/netplan/99_config.yaml . The example below assumes you are configuring your first Ethernet interface identified as enp3s0.

The configuration can then be applied using the netplan command.

Static IP Address Assignment

To configure your system to use static address assignment, create a netplan configuration in the file /etc/netplan/99_config.yaml . The example below assumes you are configuring your first Ethernet interface identified as eth0. Change the addresses, gateway4, and nameservers values to meet the requirements of your network.

The configuration can then be applied using the netplan command.

Loopback Interface

The loopback interface is identified by the system as lo and has a default IP address of 127.0.0.1. It can be viewed using the ip command.

Name Resolution

Name resolution as it relates to IP networking is the process of mapping IP addresses to hostnames, making it easier to identify resources on a network. The following section will explain how to properly configure your system for name resolution using DNS and static hostname records.

DNS Client Configuration

Traditionally, the file /etc/resolv.conf was a static configuration file that rarely needed to be changed or automatically changed via DCHP client hooks. Systemd-resolved handles name server configuration, and it should be interacted with through the systemd-resolve command. Netplan configures systemd-resolved to generate a list of nameservers and domains to put in /etc/resolv.conf , which is a symlink:

To configure the resolver, add the IP addresses of the nameservers that are appropriate for your network to the netplan configuration file. You can also add an optional DNS suffix search-lists to match your network domain names. The resulting file might look like the following:

If you have multiple domains you wish to search, your configuration might look like the following:

If you try to ping a host with the name of server1, your system will automatically query DNS for its Fully Qualified Domain Name (FQDN) in the following order:

If no matches are found, the DNS server will provide a result of notfound and the DNS query will fail.

Static Hostnames

Static hostnames are locally defined hostname-to-IP mappings located in the file /etc/hosts . Entries in the hosts file will have precedence over DNS by default. This means that if your system tries to resolve a hostname and it matches an entry in /etc/hosts, it will not attempt to look up the record in DNS. In some configurations, especially when Internet access is not required, servers that communicate with a limited number of resources can be conveniently set to use static hostnames instead of DNS.

The following is an example of a hosts file where a number of local servers have been identified by simple hostnames, aliases and their equivalent Fully Qualified Domain Names (FQDN’s).

Note

In the above example, notice that each of the servers have been given aliases in addition to their proper names and FQDN’s. Server1 has been mapped to the name vpn, server2 is referred to as mail, server3 as www, and server4 as file.

Name Service Switch Configuration

The order in which your system selects a method of resolving hostnames to IP addresses is controlled by the Name Service Switch (NSS) configuration file /etc/nsswitch.conf . As mentioned in the previous section, typically static hostnames defined in the systems /etc/hosts file have precedence over names resolved from DNS. The following is an example of the line responsible for this order of hostname lookups in the file /etc/nsswitch.conf .

files first tries to resolve static hostnames located in /etc/hosts .

mdns4_minimal attempts to resolve the name using Multicast DNS.

[NOTFOUND=return] means that any response of notfound by the preceding mdns4_minimal process should be treated as authoritative and that the system should not try to continue hunting for an answer.

dns represents a legacy unicast DNS query.

mdns4 represents a Multicast DNS query.

To modify the order of the above mentioned name resolution methods, you can simply change the hosts: string to the value of your choosing. For example, if you prefer to use legacy Unicast DNS versus Multicast DNS, you can change the string in /etc/nsswitch.conf as shown below.

Bridging

Bridging multiple interfaces is a more advanced configuration, but is very useful in multiple scenarios. One scenario is setting up a bridge with multiple network interfaces, then using a firewall to filter traffic between two network segments. Another scenario is using bridge on a system with one interface to allow virtual machines direct access to the outside network. The following example covers the latter scenario.

Configure the bridge by editing your netplan configuration found in /etc/netplan/ :

Note

Enter the appropriate values for your physical interface and network.

Now apply the configuration to enable the bridge:

The new bridge interface should now be up and running. The brctl provides useful information about the state of the bridge, controls which interfaces are part of the bridge, etc. See man brctl for more information.

networkd-dispatcher for pre-up, post-up, etc. hook scripts

Users of the former ifupdown may be familiar with using hook scripts (e.g pre-up, post-up, etc.) in their interfaces file. Netplan configuration does not currently support hook scripts in its configuration definition.

Instead to achieve this functionality with the networkd renderer , users can use networkd-dispatcher. The package provides users and packages hook points when specific network states are reached to aid in reacting to network state.

Note: If not on Ubuntu Server, but Desktop the network is driven by Network Manager - in that case you’d need NM Dispatcher scripts instead.

The Netplan FAQ has a great table that compares event timings between ifupdown / systemd-networkd / network-manager

It is important to be aware that those hooks run asychronous; that is they will not block transition into another state.

The Netplan FAQ also has an example on converting an old ifupdown hook to networkd-dispatcher .

Resources

The Ubuntu Wiki Network page has links to articles covering more advanced network configuration.

The netplan website has additional examples and documentation.

The netplan man page has more information on netplan.

The systemd-resolved man page has more information on systemd-resolved service.

Читайте также: