Использование ser2net на Raspberry Pi

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

В моем случае я купил raspberry pi zero w и адаптер USB-для консоли (в конце статьи вы увидите необходимые компоненты); менее чем за 50 евро у вас есть консольный сервер!

Что такое Raspberry Pi

Raspberry Pi-это серия небольших одноплатных компьютеров, разработанных в Соединенном Королевстве Фондом Raspberry Pi совместно с Broadcom.

Все модели оснащены системой Broadcom на чипе (SoC) со встроенным ARM-совместимым центральным процессором (CPU) и встроенным графическим процессором (GPU).

Стартовый КОМПЛЕКТ Raspberry Pi Zero W

Установка

Загрузите и прошейте операционную систему. В этой статье я использую ОС Raspberry Pi и прошиваю ее с помощью balenaEtcher.

Конфигурация малины

Если у вас нет клавиатуры и монитора, не волнуйтесь; есть способ настроить и работать без него. Это известно как запуск «без головы”. Следуйте этим советам:

  • Вставьте SD-карту с Raspbian в нее на свой компьютер и откройте SD-карту из проводника файлов; диск будет помечен как загрузочный.
  • Создайте файл wpa_supplicant.conf; убедитесь, что вы изменили расширение файла с .txt на .conf.
  • Отредактируйте файл wpa_supplicant.conf с помощью текстового редактора; измените и вставьте этот шаблон:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=<Вставьте здесь код из 2 букв ISO 3166-1>

network={
 ssid="<Ваш ssid>"
 psk="<Ваш пароль ssid>"
 scan_ssid=1 #Если ваш ssid не скрыт, удалите эту строку
}

Примечание: эта ссылка для списка из 2 букв ISO 3166-1 коды стран.

  • По умолчанию в текущей версии Raspbian SSH отключен. Чтобы включить его, Создать пустой файл в каталоге загрузки с названием ssh (убедитесь, что файл не имеет расширения файла).
  • Извлеките SD — карту из компьютера и вставьте ее в свой Pi, затем включите малину.

По умолчанию вы можете войти в систему, используя учетные данные pi/raspberry. Не забудьте изменить пароль пользователя “pi”, используя команду «passwd».

Примечание: если у вас есть монитор и клавиатура, и вы хотите настроить клиент wpa и sshd, используйте команду «sudo raspi-config»

Обновление операционной системы

Чтобы обновить систему и пакеты используйте следующие команды:

sudo apt update sudo apt upgrade

Установить ser2net для работы с serial портом

Ссылка на проект ser2net

sudo apt install ser2net

Подключите USB2Serial адаптер и найдите его используя:

dmesg | grep tty

Вывод будет примерно таким:

[email protected]:~$ dmesg | grep tty [ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 bcm2708_fb.fbwidth=720 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:B5:D0:EC vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 console=ttyS0,115200 console=tty1 root=PARTUUID=5e3da3da-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles [ 0.000637] console [tty1] enabled
[ 0.876650] 20201000.serial: ttyAMA0 at MMIO 0x20201000 (irq = 81, base_baud = 0) is a PL011 rev2
[22836.190080] usb 1-1: pl2303 converter now attached to ttyUSB0
[email protected]:~$

Что означает, что устройство находится на /dev/ttyUSB0.

Настройка ser2net

Настройки находятся в файле /etc/ser2net.conf. Файл с другим именем или путем может быть указан с помощью параметра -c, или отдельные строки конфигурации могут быть указаны с помощью параметра -C. Этот файл состоит из одной или нескольких записей следующего формата:

<TCP port>:<state>:<timeout>:<device>:<options>

BANNER:<banner name>:<banner text>

TRACEFILE:<tracefile name>:<tracefile>

Отредактируем файл конфигурации ser2net:

sudo nano /etc/ser2net.conf

Закомментируйте конфигурацию по умолчанию, используя “#” в начале каждой строки:

# BANNER:banner:\r\nser2net port \p device \d [\s] (Debian GNU/Linux)\r\n\r\n
# 2000:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner
# 2001:telnet:600:/dev/ttyS1:9600 8DATABITS NONE 1STOPBIT banner
# 3000:telnet:600:/dev/ttyS0:19200 8DATABITS NONE 1STOPBIT banner
# 3001:telnet:600:/dev/ttyS1:19200 8DATABITS NONE 1STOPBIT banner

затем вставьте текст:

BANNER:banner:\r\nCiscozine remote console port \p device \d [\s]\r\n\r\n
9600:telnet:600:/dev/ttyS0:9600 8DATABITS NONE 1STOPBIT banner

Примечание: В моем случае адаптер “/dev/ttyusb0”, но он зависит от адаптера консоли.
Помните: имена файлов и баннеры могут содержать обычные escape-последовательности “C”.:

\a - bell
\b - backspace
\f - form feed
\n - newline
\r - carraige return
\t - tab
\v - vertical tab
\ - \
\? - ?
\' - '
\" - "
\nnn - octal value for nnn
\xXX - hex value for XX

Они также могут содержать \d для имени устройства и \p для номера TCP-порта. Баннер может содержать \s для параметров последовательного порта (например, 9600N81) данного соединения.
Имя файла также может содержать следующие последовательности:

\Y -> year
\y -> day of the year (days since Jan 1)
\M -> month (Jan, Feb, Mar, etc.)
\m -> month (as a number)
\A -> day of the week (Mon, Tue, etc.)
\D -> day of the month
\e -> epoc (seconds since Jan 1, 1970)
\U -> microseconds in the current second
\p -> local port number
\d -> local device name
\I -> remote IP address (in dot format)
\H -> hour (24-hour time)
\h -> hour (12-hour time)
\i -> minute
\s -> second
\q -> am/pm
\P -> AM/PM

Перезапустите службу

systemctl restart ser2net.service

Подключитесь к своему сетевому устройству с помощью команды:

telnet <your_raspberry_ip> 9600

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

Необходимые материалы:

Ниже приведен краткий список необходимых материалов:

Базовый Стартовый комплект Raspberry Pi Zero W:

USB к RS232 DB9:

Добавить комментарий