Что такое u_dgr UNCONN, когда я запускаю ss -lnp | grep sshd
Я бегал ss -lnp | grep sshd
и получил следующий вывод (в дополнение к портам LISTEN, которые я ожидал. Не уверен, что это так:
u_dgr UNCONN 0 0 *78056 *12438 users:(("sshd",pid=22409, fd=4), ("sshd",pid=22337,fd=4)
Заранее спасибо за помощь в расшифровке этого.
1 ответ
Я пытался понять это. Ниже мои заметки:
u_dgr = u для UDS (сокет домена Unix). «Программы, работающие на одном сервере, также могут взаимодействовать друг с другом с помощью сокетов домена Unix (UDS). Сокеты домена Unix могут быть основаны на потоках или на основе дейтаграмм. ядро системы через файлы в файловой системе хоста. Чтобы отправлять или получать данные с использованием сокетов домена, программы читают и записывают в свой общий файл сокета, полностью минуя сетевые сокеты и протоколы" (src). dgr для дейтаграммы. Дейтаграмма противопоставляется str, что означает поток. dgr подобен UDP, а str подобен TCP для протоколов IP.
UNCONN = не подключен. То же, что Закрыто. Протоколы дейтаграмм не имеют состояния, поэтому ss всегда показывает такие соединения как UNCONN.
0 0 для recv-q и send-q. Показывает, сколько байтов в очереди. 0 означает, что в очереди нет байтов.
*78056 *12438 говорит, что программы, упомянутые в 'users:', используют любой адрес и порт 78056 для отправки данных на удаленный порт 12438 и любой адрес. Программа sshd использует порт 78056 для отправки журналов в systemd. журналы отправляются на порт 12438. Если вы
ss -lxnp | grep 12438
то вы увидите, что systemd прослушивает 12438.
В
users:(("sshd",pid=22409, fd=4), ("sshd",pid=22337,fd=4)
pid для идентификатора процесса. fd для файлового дескриптора. Вы можете проверить это с помощью
ls -lh /proc/22409/fd/