Как посмотреть ком порты линукс

Как посмотреть ком порты линукс

Как получить список доступных системе COM портов в Linux? Раньше искал в /dev файлы типа ttyS*, но что-то тут не так. На моем компе имеется один физический компорт. В /dev есть 4 порта (ttyS0, ttyS1, ttyS2, ttyS3). Но, например когда пытаюсь добавить в систему принтер, визард просит выбрать порт и показывает только ОДИН доступный компорт. Всё правильно, порт всего один. Хотя в девах их 4, в визарде только 1. На другом компе физически есть 1 компорт, а в /dev их аш 5. Как из кода в Linux-e можно получить список доступных компортов? или как проверить все ttyS0, ttyS1, ttyS2, ttyS3 и найти среди них рабочий(е)(реальный(е))?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

  • Как получить список доступных системе COM портов? , ACCA, 18:37 , 21-Янв-10, (1)
    • Как получить список доступных системе COM портов? , juvf, 08:06 , 08-Фев-10, (2)
      • Как получить список доступных системе COM портов? , ACCA, 23:44 , 10-Фев-10, (3)

Сообщения по теме [Сортировка по времени | RSS]

>Как получить список доступных системе COM портов в Linux? Раньше искал в

a) grep serial /proc/ioports
b) cat /proc/tty/driver/serial
c) dmesg | grep ttyS
d) setserial -g /dev/ttyS7 | grep -v unknown

setserial получает информацию о порте через ioctl = TIOCGSERIAL.

1. «Как получить список доступных системе COM портов? « + / –
Сообщение от ACCA (ok) on 21-Янв-10, 18:37
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. «Как получить список доступных системе COM портов? « + / –
Сообщение от juvf (ok) on 08-Фев-10, 08:06

Спасибо. Таким образом смог выделить из всех ttyS* только рабочие. А можно подобным образом получить инфу о портах типа ttyUSB*? Или достаточно по наличию в /dev/ttyUSB0 определить, что такой порт доступен системе?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. «Как получить список доступных системе COM портов? « + / –
Сообщение от ACCA (ok) on 10-Фев-10, 23:44

>подобным образом получить инфу о портах типа ttyUSB*? Или достаточно по
>наличию в /dev/ttyUSB0 определить, что такой порт доступен системе?

Смотря откуда этот /dev/ttyUSB* взялся. Если его udev или ещё какой hal сделал — почти достаточно.

Посмотри, что такое /dev. Если udev filesystem, то скорее всего можно — /dev/ttyUSB* создаются и убираются динамически, если udev скрипт не глюканул.

Сделай `lshal’, почитаешь много интересного про ttyUSB. dmesg | grep ttyUSB тоже поможет.

Источник

Как проверить открытые порты Linux

Операционная система Linux передаёт сетевые пакеты определенным программам. Выбор программы осуществляется посредством такого механизма, как сетевой порт. Опытные пользователи Линукс прекрасно знают, о чем идет речь, а вот новичкам было бы проще понять это явление на примере. Представьте себе ситуацию, когда курьеру нужно доставить посылку по определенному адресу. Дом, в котором окажется курьер – это IP-адрес ПК. Он просит вахтёра помочь разобраться, кому отнести свёрток. Номер нужной квартиры – то же самое, что и сетевой порт.

Когда порт имеет статус «открытый», подразумевается, что программа уже использует этот порт для связи с какой-либо иной программой. Это может происходить локально или через Internet. Теперь осталось разобраться с тем, как получить данные об открытых портах в ОС Линукс.

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

Программа Netstat

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

Главные опции Netstat:

  • -l – просмотр портов, которые прослушиваются;
  • -p – поиск имени программы и её PID;
  • -t – поиск tsp портов в Линукс;
  • -u – поиск udp портов в Линукс;
  • -n – просмотр IP-адресов, указанных в числовом формате.

Более подробно о netstat написано в другой статье www.vseprolinux.ru/netstat-linux

Программа SS

Помимо команды netstat можно использовать программу ss. Эта утилита относится к числу современных программ. Некоторые пользователи отмечают повышенное удобство при работе с SS, ведь она отличается от своего «собрата» одним немаловажным нюансом – способностью связаться с ядром Линукс напрямую. В результате пользователь быстро получает необходимую информацию и видит перед собой обширные данные по запросу, чего нельзя сказать о Netstat.

При работе с SS также применяется опционал, прописанный ранее.

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

# ss -tulpn | grep :8080

Инструмент LSOF

При помощи данной программы пользователь может ознакомиться с данными относительно всех открытых соединений в Линукс. Опция, которую необходимо использовать для реализации задуманного: -i.

Если информация о сетевых службах не требуется, а хочется посмотреть только данные о портах, необходимо использовать опцию -P.

На практике это выглядит следующим образом:

И вновь просматриваем процесс, который работает на 80-м порту:

# lsof -I -P| grep :80

Утилита NMAP

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

Установка утилиты NMAP осуществляется посредством специальной команды:

# apt install nmap

Затем нужно ввести:

Запуск программы вполне реален и без использования каких-либо опций – утилита способна работать в режиме стандартного сканирования.

Как посмотреть IP-адрес:

# wget -O — — q eth0.me

Теперь нужно поставить сканирование на отправную точку. Это делается так:

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

Источник

Как посмотреть открытые порты в Linux

Сетевые порты — это механизм, с помощью которого операционная система определяет какой именно программе необходимо передать сетевой пакет. Здесь можно привести пример с домом. Например, почтальону необходимо доставить посылку. Он доставляет посылку к дому, это IP адрес компьютера. А дальше в самом доме уже должны разобраться в какую квартиру направить эту посылку. Номер квартиры — это уже порт.

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

Как посмотреть открытые порты linux

1. netstat

Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:

  • -l или —listening — посмотреть только прослушиваемые порты;
  • -p или —program — показать имя программы и ее PID;
  • -t или —tcp — показать tcp порты;
  • -u или —udp показать udp порты;
  • -n или —numeric показывать ip адреса в числовом виде.

Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:

sudo netstat -tulpn

Утилита ss — это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux, поэтому работает быстрее и её данные более точные, если вы хотите выполнить просмотр открытых портов это не имеет большого значения. Опции у неё такие же:

Можно вывести только процессы, работающие на 80-том порту:

sudo ss -tulpn | grep :80

3. lsof

Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию -i, а чтобы отображались именно порты, а не названия сетевых служб следует использовать опцию -P:

Ещё один пример, смотрим какие процессы работают с портом 80:

sudo lsof -i -P | grep :80

4. Nmap

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

sudo apt install nmap

Затем можно использовать:

Для простого сканирования можно запускать утилиту без опций. Детальнее о её опциях можно узнать в статье про сканирование сети в Nmap. Эта утилита ещё будет полезна если вы хотите посмотреть какие порты на компьютере доступны из интернета.

Если это публичный сервер, то результат скорее всего не будет отличатся от локального сканирования, но на домашнем компьютере все немного по другому. Первый вариант — используется роутер и в сеть будут видны только порты роутера, еще одним порогом защиты может стать NAT-сервер провайдера. Технология NAT позволяет нескольким пользователям использовать один внешний IP адрес. И так для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:

wget -O — -q eth0.me

Дальше запускаем сканирование:

В результате мы видим, что открыт порт 80 веб-сервера и 22 — порт службы ssh, я их не открывал, эти порты открыты роутером, 80 — для веб-интерфейса, а 22 для может использоваться для обновления прошивки. А еще можно вообще не получить результатов, это будет означать что все порты закрыты, или на сервере установлена система защиты от вторжений IDS. Такая проверка портов может оказаться полезной для того, чтобы понять находится ли ваш компьютер в безопасности и нет ли там лишних открытых портов, доступных всем.

5. Zenmap

Программа Zenmap — это графический интерфейс для nmap. Она не делает ничего нового кроме того, что может делать nmap, просто предоставляет ко всему этому удобный интерфейс. Для её установки выполните:

sudo apt install zenmap

Запустить программу можно из главного меню или командой:

Затем введите адрес localhost в поле Цель и нажмите кнопку Сканирование:

После завершения сканирования утилита вывела список открытых портов Linux.

Выводы

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

Источник

Работа с COM-портом (RS-232) в Linux

Урок посвящен интерфейсу RS-232, который в простонародье называют COM-порт. Мы разберемся как он представлен в Linux, какой у него интерфейс, научимся его конфигурировать, а также узнаем, что написание программы для коммуникации через COM-порт в Linux не представляет сложности.

Разговор o коммуникации через COM-порт в Linux следует начать с того, что заметить, что каждому COM-порту в операционной системе соответствует файл устройства телетайп или tty. Он находится в каталоге dev и имеет имя /dev/ttyS и номер. Если посмотреть на мой каталог, то мы увидим следующее, что у меня таких файлов очень много [0:55]. Но по факту, в моем компьютере есть один физический COM-порт. Давайте попробуем его найти. Сделать это можно с помощью команды dmesg, которая выводит сообщения с момента инициализации системы. Если набрать

$dmeg | grep «ttyS»

то мы увидим, что, в действительности , у меня только один файл ttyS4 связанный с конкретным COM-портом, у которого есть некоторый диапазон ввода/вывода, номер прерывания, и который сейчас настроен на скорость обмена 150200 бит в секунду (или бод).

Для того, чтобы сконфигурировать мой COM-порт по умолчанию в Linux можно воспользоваться программой mincom, запускать её нужно от суперпользователя, либо добавить текущего пользователя в группу dialout. Запустим

$sudo minicom -s

Ключ -s – обозначает конфигурацию (setup),

Здесь мы видим следующее [2:24]. Есть параметры последовательного порта, важно прописать правильно файл, то есть указать тот файл, который у вас в системе связан с физическим COM-портом, Второй важный момент – это настройка параметров обмена (ключ Е). Дело в том, что корректный обмен данными по последовательному соединению возможен только тогда, когда обе стороны имеют один и тот же набор параметров. В этом окне можно набор этих параметров менять [3:08]. Мы видим, что у нас задана скорость 8 бит, нет контроля четности, и один стоповый бит. Именно здесь можно это все увидеть и настроить так, как требуется или, как требует ваше устройство.

Сохраняем конфигурацию по умолчанию. Дальше будем взаимодействовать — сначала с помощью команды терминала, чтобы проверить, как вручную это работает; а потом напишем небольшую программу, которая будет слать данные в COM-порт. Выйти из Mincom можно набрав ctrl-A-X.

Для того чтобы проверить, как работает COM-порт можно воспользоваться программой miniterm [4:03]. Я создал виртуальную машину с обычным linux, у неё указал, что в наличии имеется один COM-порт (это COM1), по умолчанию назначились линии обработки запросов прерывания. Я ассоциировал этот COM-порт с файлом на моей host-машине. С этого файла мы будем читать данные записанные в порт.

Итак, мы видим, что в левой части экрана у нас есть логин на виртуальную машину [4:46]. Давайте проверим с помощью minicom -s, как настроены коммуникации. Проверим, что /dev/ttyS0 – это действительно правильный физический порт – да, это именно так. Теперь мы можем вызвать команду

$sudo miniterm

она говорит, что есть следующие доступные порты, и просит ввести, через какой порт работать. Далее я попадаю терминал, связанный с COM-портом, где могу набирать текст. Набирая команды, я вижу «эхо» в моем файле справа. Обратите внимание, что я пишу в левом окне, а на экране надпись мы видим в правом. В левом окошке – виртуальная машина, на которой настроен порт. В правом – тот лог, который мы видим в файле ассоциированном с этим COM-портом на host-машине.

Создадим какой-нибудь каталог, в котором будем разрабатывать приложение. Как это ни странно, приложение будет выглядеть очень просто, потому что все действия, которые мы делаем с COM-портом в linux, это действия с файлами с использованием тех же самых файловых операций. Нам потребуется stdio.h, unistd.h, чтобы получить доступ – функциям open/read/write, fcntl.h, чтобы иметь возможность использовать файловые флажки. Открываем файловый дескриптор, COM-порт, имя, и флаги из COM-порта. Проверим, что файловый дескриптор у нас открылся, то есть если порт меньше или равен 0, то есть какая-то ошибка, оповестим об этом пользователя и вернем управление. В противном случае, можно писать в этот файловый дескриптор. write принимает файловый дескриптор, указатель на буфер, размер. Дальше мы закрываем файловый дескриптор и возвращаем управление. Приложение готово.

Теперь давайте попробуем запустить то, что у нас вышло, вернее, скомпилировать и запустить [10:40]. При запуске приложения произошла ошибка, но она вызвана понятными причинами, потому что пользователь должен был быть включен группу dialout [11:03], или нам надо запускать приложение от суперпользователя. Сделаем это. И сразу видим, что в нашем окошке появилась запись «hello world». Можно повторить и увидеть, что все работает корректно.

Точно таким же образом можно осуществлять чтение из COM-порта, то есть использовать не функцию write, а функцию read.

Источник

Читайте также:  Viber для windows phone поддержка
Оцените статью