Использование ser2net на Raspberry Pi
В настоящее время существует несколько решений для удаленных консолей, но, на мой взгляд, они довольно дороги; именно поэтому я решил написать эту статью: сделайте консольный сервер с более дешевыми компонентами!
В моем случае я купил raspberry pi zero w и адаптер USB-для консоли (в конце статьи вы увидите необходимые компоненты); менее чем за 50 евро у вас есть консольный сервер!
Что такое Raspberry Pi
Raspberry Pi-это серия небольших одноплатных компьютеров, разработанных в Соединенном Королевстве Фондом Raspberry Pi совместно с Broadcom.
Все модели оснащены системой Broadcom на чипе (SoC) со встроенным ARM-совместимым центральным процессором (CPU) и встроенным графическим процессором (GPU).

Установка
Загрузите и прошейте операционную систему. В этой статье я использую ОС 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:
- Америка: https://amzn.to/38SGEYS
- Соединенное Королевство: https://amzn.to/3mcuYTQ
- Канада: https://amzn.to/3pDXYXu
- Германия: https://amzn.to/3f7FtFM
- Франция: https://amzn.to/2IAtaGt
- Испания: https://amzn.to/2UCFfx0
- Италия: https://amzn.to/2MjwHdv
- Япония: https://amzn.to/35CJlLP
- Международный (Aliexpress): https://s.click.aliexpress.com/e/_9v2ktI
USB к RS232 DB9:
- Америка: https://amzn.to/3kLFPU4
- Соединенное Королевство: https://amzn.to/2W8UQoW
- Канада: https://amzn.to/3lEid4Z
- Германия: https://amzn.to/3kGSHKZ
- Франция: https://amzn.to/3pBAwtR
- Испания: https://amzn.to/35EmDTF
- Италия: https://amzn.to/3hzmpS8
- Япония: https://amzn.to/3lFKMyS
- Международный (Aliexpress): https://s.click.aliexpress.com/e/_9wmbjm