Как использовать команду ip в linux

Параметры

Параметры зависят от объекта и указанной команды. Рассмотрим самые основные:

  • dev имя_устройства — сетевое устройство;
  • up — включить;
  • down — выключить;
  • lladdr — MAC — адрес;
  • initcwnd — размер окна перегрузки TCP при инициализации;
  • window — размер окна TCP;
  • cwnd — размер окна перегрузки TCP;
  • type — тип;
  • via — подключиться к роутеру;
  • default — маршрут по умолчанию;
  • blackhole — маршрут «черная дыра» — отбрасывать пакеты и не посылать ICMP сообщения о недоступности;
  • prohibit — маршрут «запрета» — отбрасывать пакеты и возвращать ICMP сообщения о запрете доступа;
  • unreachable — маршрут «недостижимый» — отбрасывать пакеты и посылать ICMP пакеты о недостижимости узла.

Сетевые уровни

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

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

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

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

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

Модель OSI

OSI (Open Systems Interconnect) – это базовая модель взаимодействия открытых систем, которая состоит из 7 уровней:

  • 7 — Прикладной: уровень, с которым чаще всего взаимодействуют пользователи и пользовательские приложения. Он отвечает за передачу служебных данных, предоставляет приложениям сведения об ошибках и формирует запросы к следующему уровню.
  • 6 – Представительский уровень (или уровень представления) отвечает за организацию данных при пересылке и преобразование данных в формат приложений.
  • 5 – Сеансовый уровень управляет соединением. Он создаёт, поддерживает и сбрасывает соединения между нодами.
  • 4 – Транспортный уровень отвечает за обработку и соединение между другими уровнями модели, а также за передачу данных от отправителя к получателю.
  • 3 – Сетевой уровень обеспечивает маршрутизацию данных между нодами сети, транслирует логические адреса и имена в физические. Также этот уровень определяет путь передачи данных
  • 2 — Канальный уровень отвечает за установление и поддержку надёжных соединений между нодами или устройствами сети.
  • 1 – Физический уровень – нижний уровень модели; отвечает за обработку физических устройств, которые используются для установления соединения. Этот уровень включает в себя простое программное обеспечение, которое управляет физическими соединениями, а также аппаратное обеспечение (например, Ethernet).

Модель TCP/IP

Модель TCP/IP (набор протоколов Internet) – ещё одна популярная модель, которая состоит из 4 уровней (они совпадают  с некоторыми уровнями OSI):

  • Прикладной уровень отвечает за обмен данными между приложениями. Здесь работает большинство сетевых приложений. Конечный пользователь будет видеть удалённое приложение как локальное.
  • Транспортный уровень поддерживает взаимодействие между процессами. Этот уровень использует порты для обращения к различным сервисам. Он может создавать небезопасные и безопасные соединения в зависимости от типа используемого протокола.
  • Сетевой уровень обеспечивает передачу данных между нодами сети. IP-адреса используются как способ удаленного доступа к системам.
  • Канальный уровень описывает среду, принципы и характеристики передачи данных. Он устанавливает соединения между соседними нодами для отправки данных.

FAQ по сетям

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

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

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

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

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

sudo netstat -nlpA inet,inet6

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

sudo netstat -nlpA inet,inet6 | grep :80

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

ps aux | grep 2671

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

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

sudo ip addr add 192.168.1.1/24 dev eth0

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

#исправить строку auto
auto eth0 eth0:1

# добавить алиас
iface eth0:1 inet static
  address 192.168.1.1
  netmask 255.255.255.0

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

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

iptables -t nat -A PREROUTING -p tcp -d внешний_ір --dport 8081 -j DNAT --to-destination внутренний_ір:8081
iptables -t nat -A POSTROUTING -p tcp --dst внутренний_ір --dport 8081 -j SNAT --to-source внешний_ір

И обязательно нужно что-то вроде

iptables -t filter -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
Добавить комментарий

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