- Открытие портов в Linux
- Открываем порты в Linux
- Шаг 1: Установка Iptables и просмотр правил
- Шаг 2: Разрешение обмена данными
- Шаг 3: Открытие необходимых портов
- Как прослушать новый порт сервера Ubuntu из командной строки?
- 1 ответ
- Как создать прослушиватель портов в Windows или Linux – удобный для тестирования подключения
- Создание почтового прослушивателя в ОС Windows
- Чтобы создать прослушиватель портов в ОС Linux
- Как создать прослушиватель портов с помощью Python
- Заметки о Linux, электронике, радиолюбительстве
- воскресенье, 27 июля 2014 г.
- Работа с последовательным портом из консоли Linux
Открытие портов в Linux
Безопасное соединение узлов сети и обмен информацией между ними напрямую связан с открытыми портами. Подключение и передача трафика производится именно через определенный порт, а если в системе он закрыт, выполнить такой процесс не представится возможным. Из-за этого некоторые пользователи заинтересованы в пробросе одного или нескольких номеров для наладки взаимодействия устройств. Сегодня мы покажем, как выполняется поставленная задача в операционных системах, основанных на ядре Linux.
Открываем порты в Linux
Хоть во многих дистрибутивах по умолчанию присутствует встроенный инструмент по управлению сетями, все же такие решения часто не позволяют в полной мере осуществить настройку открытия портов. Инструкции данной статьи будут основаны на дополнительном приложении под названием Iptables — решение для редактирования параметров межсетевого экрана с использованием прав суперпользователя. Во всех сборках ОС на Линуксе она работает одинаково, разве что отличается команда для установки, но об этом мы поговорим ниже.
Если вы хотите узнать, какие из портов уже открыты на компьютере, вы можете воспользоваться встроенной или дополнительной утилитой консоли. Детальные инструкции по поиску необходимой информации вы найдете в другой нашей статье, перейдя по следующей ссылке, а мы же приступаем к пошаговому разбору открытия портов.
Шаг 1: Установка Iptables и просмотр правил
Утилита Iptables изначально не входит в состав операционной системы, из-за чего ее нужно самостоятельно инсталлировать из официального репозитория, а уже потом работать с правилами и всячески изменять их. Установка не занимает много времени и выполняется через стандартную консоль.
- Откройте меню и запустите «Терминал». Сделать это также можно, используя стандартную горячую клавишу Ctrl + Alt + T.
Активируйте права суперпользователя, написав пароль от своей учетной записи. Обратите внимание, что символы во время ввода не отображаются, сделано это для обеспечения безопасности.
Ожидайте завершения инсталляции и можете убедиться в активности работы инструмента, просмотрев стандартный список правил, задействовав sudo iptables -L .
Как видите, в дистрибутиве теперь появилась команда iptables , отвечающая за управление одноименной утилитой. Еще раз напомним, что работает этот инструмент от прав суперпользователя, поэтому в строке обязательно должна содержаться приставка sudo , а уже потом остальные значения и аргументы.
Шаг 2: Разрешение обмена данными
Никакие порты не будут нормально функционировать, если утилита запрещает обмен информацией на уровне собственных правил межсетевого экрана. Кроме всего, отсутствие необходимых правил в дальнейшем может вызывать появление различных ошибок при пробросе, поэтому мы настоятельно советуем выполнить следующие действия:
- Убедитесь, что в конфигурационном файле отсутствуют какие-либо правила. Лучше сразу же прописать команду для их удаления, а выглядит она так: sudo iptables -F .
Теперь добавляем правило для вводимых данных на локальном компьютере, вставив строку sudo iptables -A INPUT -i lo -j ACCEPT .
Примерно такая же команда — sudo iptables -A OUTPUT -o lo -j ACCEPT — отвечает за новое правило для отправки информации.
Осталось только обеспечить нормальное взаимодействие указанных выше правил, чтобы сервер смог отправлять обратно пакеты. Для этого нужно запретить новые соединения, а старые — разрешить. Производится это через sudo iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT .
Благодаря указанным выше параметрам вы обеспечили корректную отправку и прием данных, что позволит без проблем взаимодействовать с сервером или другим компьютером. Осталось только открыть порты, через которые и будет осуществляться то самое взаимодействие.
Шаг 3: Открытие необходимых портов
Вы уже ознакомлены с тем, по какому принципу добавляются новые правила в конфигурацию Iptables. Существуют и несколько аргументов, позволяющих открыть определенные порты. Давайте разберем эту процедуру на примере популярных портов под номерами 22 и 80.
- Запустите консоль и введите туда две следующие команды поочередно:
sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp —dport 80 -j ACCEPT .
Теперь проверьте список правил, чтобы убедиться в том, что порты были успешно проброшены. Используется для этого уже знакомая команда sudo iptables -L .
Придать ей читабельный вид и вывести все детали можно с помощью дополнительного аргумента, тогда строка будет такой: sudo iptables -nvL .
Поменяйте политику на стандартную через sudo iptables -P INPUT DROP и можете смело приступать к работе между узлами.
В случае когда уже администратор компьютера внес свои правила в инструмент, организовал сброс пакетов при подходе к точке, например, через sudo iptables -A INPUT -j DROP , вам нужно использовать другую команду sudo iptables: -I INPUT -p tcp —dport 1924 -j ACCEPT , где 1924 — номер порта. Она добавляет необходимый порт в начало цепи, и тогда пакеты не сбрасываются.
Далее вы можете прописать все ту же строку sudo iptables -L и убедиться в том, что все настроено корректно.
Теперь вы знаете, как пробрасываются порты в операционных системах Linux на примере дополнительной утилиты Iptables. Советуем обязательно следить за появляющимися строками в консоли при вводе команд, это поможет вовремя обнаружить какие-либо ошибки и оперативно устранить их.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник
Как прослушать новый порт сервера Ubuntu из командной строки?
Я хочу слушать новый порт на сервере Ubuntu.
Я в root-доступе.
Я хочу запустить свой файл.js на порту 3000. Итак, я запустил команду:
Но тогда нет выхода.
Я новичок в Ubuntu, Кто-нибудь может мне помочь с этим?
Я хочу слушать новый порт 3000 так же, как следующий порт:
1 ответ
Сам Ubuntu Server не будет слушать ни один порт. Установленные и запущенные на сервере службы приложений прослушивают порты. Например, по умолчанию:
- sshd слушайте на 22,
- apache2/nginx слушает 80 и 443 и т. д.
Если вы хотите получить имена служб, которые прослушивают порты вашей системы, используйте netstat от root через sudo таким образом:
- 127.0.0.1 означает петлевой интерфейс (localhost),
- 0.0.0.0 означает все доступные интерфейсы (localhost, сетевые адаптеры и т. д.),
- некоторые службы могут прослушивать определенные интерфейсы, т.е. 192.168.1.100 или это может быть какой-то IPv6-адрес.
Если есть брандмауэр, и вы хотите получить доступ к своим службам извне, вам необходимо разрешить входной / выходной трафик на порты, которые они прослушивают.
Используя nc -l 3000 команда nc сам начнет прослушивать порт 3000. ИМО, эта опция предназначена для тестовых целей, то есть вы настраиваете брандмауэр или около того.
Скажем, в терминале, который вы запустили:
Затем в другом терминале вы можете проверить, слушает ли что-то порт 3000:
Вы должны разработать свою службу (программу, сценарий, команду) для прослушивания на желаемом порту 3000, и когда этот порт не используется какой-либо другой службой, когда вы запустите свою службу, она начнет прослушивать порт.
С другой стороны, если вам нужно что-то постоянно слушать . 3000 Самый простой способ, на мой взгляд, для проведения ваших тестов — создать модуль systemd. Для этого:
В качестве содержания /etc/systemd/system/listen-3000.service место:
Включите и запустите listen-3000.service :
Отключить и остановить listen-3000.service :
Источник
Как создать прослушиватель портов в Windows или Linux – удобный для тестирования подключения
Одной из сложных задач при работе в команде проекта является выполнение необходимого теста на связность, хотя службы не существуют.
Это часто приходится делать, когда вы работаете в среде DMZ для миграции или нового проекта.
Давайте рассмотрим пример в реальном времени – вы работаете над миграцией, и вам нужно обеспечить связь между приложениями «A» и «B» на определенном порту.
Что ж. Вы можете выполнить telnet, но как насчет того, когда «B» не работает? Здесь вам понадобится прослушиватель портов, чтобы помочь в этой ситуации.
Если у вас есть аналогичная ситуация или вы почувствуете, что это будет полезно для вас на работе, то здесь есть несколько способов добиться этого на платформе Windows или UNIX.
Создание почтового прослушивателя в ОС Windows
Чтобы иметь прослушиватель портов на определенном порту в Windows, вы можете использовать утилиту «Port Listener».
Эта утилита доступна бесплатно от Windows 95 до Windows 10.
- Загрузить Listener в формате zip или exe отсюда
- В этом руководстве я загружу exe-формат
- Дважды щелкните файл загруженного postlistener.exe
- Он предложит выбрать местоположение для извлечения файлов, нажмите на unzip
Перейдите по пути, в котором вы извлекли файлы, в этом примере;
Дважды щелкните на listener , чтобы запустить утилиту
Введите номер порта, который вы хотите проверить, и нажмите кнопку start.
В приведенном выше примере я начал прослушивать порт на 5500, и пришло время проверить, работает ли он.
Откройте командную строку и запустите netstat, чтобы проверить, прослушивается ли порт 5500
Чтобы создать прослушиватель портов в ОС Linux
Процедура немного отличается в Linux; здесь мы будем использовать команду netcat (nc) для запуска слушателя.
Чтобы установить nc, вы можете использовать команду yum
После установки используйте следующую команду, чтобы запустить прослушиватель портов как 5500 в фоновом режиме.
Чтобы проверить, давайте использовать команду netstat
Так вот, у меня порт 5500 прослушивается успешно. Выполнение этого в Linux немного более удобно, не так ли?
Как создать прослушиватель портов с помощью Python
я нашел ниже код python, который работает на Windows и Linux. Создайте файл – допустим, portlistener.py с кодом ниже
Сохраните файл и запустите его с помощью команды python, как показано ниже.
Источник
Заметки о Linux, электронике, радиолюбительстве
Личный блог Вадима Кузнецова, RA3XDH
воскресенье, 27 июля 2014 г.
Работа с последовательным портом из консоли Linux
В предыдущем посте было показано как запустить UART на отладочной плате Launchpad для MSP430. Теперь рассмотрим как общаться с платой при помощи средств командной строки Linux. Используется плата с прошивкой из предыдущего поста. Для подробностей — см. под кат
Как известно, все устройства последовательных портов представлены файлами устройств в каталоге /dev.Через эти файлы и происходит общение ОС Linux с внешним устройством на последовательном порту. Чтобы передать что-то на внешнее устройство нужно записать данные в файл устройства, а чтобы считать информацию из устройства — прочитать данные из файла устройства. Это можно делать при помощи команд cat и echo так же как для обычных файлов на диске. Или внутри программы на С при помощи вызовов ioctl(), read() и write() или библиотеки termios.
Физическим последовательным портам RS232, к которым подключались диалапные модемы на старых компьютерах, соответствуют файлы устройств /dev/ttyS*, начиная с /dev/ttyS0. Виртуальным последовательным портам, которые создаются различными конвертерами USB UART соответствуют файлы устройств /dev/ttyUSB* и /dev/ttyACM*. Ядро Linux автоматически разпознаёт подключенное устройство, загружает для него драйвер и создаёт файл устройства. Вручную устанавливать драйвер, как в ОС Windows не требуется. Например, если подключить к USB преобразователь USB UART FT232, то создаётся файл устройства /dev/ttyUSB0, с которым можно работать также как и с обычным последовательным портом. На плате Launcpad находится микросхема TUSB3410, которая тоже представляет собой конвертер USB UART. Если подключить её к USB, то создаётся файл устройства /dev/ttyACM0. Чтобы общаться с платой нужно что-либо писать/читать с этого файла.
Чтобы пользователь мог читать или писать в файл устройства последовательного порта, его нужно добавить в группу dialout. Иначе работать с последовательным портом сможет только администратор root.
Простейшим приложением с графическим интерфейсом, которое работает с последовательным портом, является CuteCOM. Он обычно уже есть в вашем дистрибутиве Linux. Его можно установить из репозиториев. При помощи CuteCOM мы работали с платой в предыдущем посте. Выглядит CuteCOM вот так:
Работать с ним крайне просто. Указываем нужное устройство, если его нет в списке, то его можно впечатать вручную. Затем указываем скорость и параметры и нажимаем OpenDevice. В окне видим данные, которые пришли от устройства. В поле ввода в нижней части можем печать строку символов, которые предаются на устройство. Чтобы передать данный нажимаем Enter и смотрим ответ устройства в окне.
Теперь рассмотрим как работать с COM-портом из командной строки. Для этого служат три команды: stty, cat и echo.
Команда stty устанавливает параметры и скорость COM-порта. Её формат:
stty -F
Чтобы установить параметры для платы Launchpad для соединения на скорости 9600 нужно выполнить:
$ stty 9600 -F /dev/ttyACM0 raw -echo
Параметр raw устанавливает, что данные в компьютер передаются байт за байтом так же как приходят в порт без преобразований. Аппаратное управление потоком отключено. Подробнее о том, что включает и выключает raw — см. man stty. Если не включить raw, то скорее всего ничего работать не будет.
Теперь в той же консоли нужно набрать
$ cat /dev/ttyACM0
И можно смотреть данные, которые приходят от платы. Выход — нажать Ctrl+C.
Теперь нажимаем на плате RESET и видим, что в консоди напечатался текст.
Чтобы передать в плату данные, в другой консоли нужно использовать команду echo и перенаправление вывода в файл устройства. Наберём в другой консоли:
$ echo "1">/dev/ttyACM0
Видим, что на плате загорелся красный светодиод и в первой консоли было выдано сообщение об этом. Чтобы убрать конец строки в передаваемых данных, то нужно использовать запуск echo -n, а чтобы интерпретировать 16-ричные коды — нужно echo -e. Ключи можно комбинировать.
В итоге должно получиться так:
Чтобы увидеть 16-ричные коды данных, приходящих от устройства, нужно использовать команду hexdump:
$ cat /dev/ttyACM0|hexdump -C
Получится вот так:
Чтобы иметь вывод данных от устройство на экран и в текстовый файл нужно использовать tee:
Источник