Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 64|Відповідь: 0

UNIX доменний сокет (UDS) через TCP-комунікацію

[Копіювати посилання]
Опубліковано 02.03.2026 14:03:34 | | | |
Вимоги: Припустимо, програма на сервері A має увімкнене лише прослуховування UDS, що має робити сервер B, якщо він хоче викликати програму на сервері A? Ви можете використовувати UNIX Domain Socket (UDS) через TCP для переадресації процесу з сервера A на сервер B.

огляд
Зворотний проксі Nginx php-fpm використовує UDS для спілкування
https://www.itsvse.com/thread-11068-1-1.html

Зворотний проксі Nginx ASP.NET Core використовує комунікацію UDS
https://www.itsvse.com/thread-11069-1-1.html

Процеси .NET/C# взаємодіють між сокетами домену gRPC та Unix
https://www.itsvse.com/thread-11051-1-1.html

Сокети домену UNIX — це механізм міжпроцесної комунікації на основі шляхів файлів, а не файлів у файловій системі. Навіть за допомогою SFTP або SSHFS доменні сокети UNIX неможливо отримати доступ через мережу.

socat використовує сокети домену UNIX

Команди встановлення:
Запусти сервер

По-перше, припустимо, серверний процес /tmp/example-server.sock слухає сервер під назвою "server-program". /tmp/example-server.sock Якщо ви можете підключитися до цього сокета з іншого хоста і отримати до нього доступ, то можете сказати, що вам вдалося перевершити мережу, використовуючи його як UNIX-доменний сокет.

Якщо просто хочете протестувати, можна скористатися socat.
Тестовий виклик, команда виглядає так:
Як показано нижче:



Або підключитися за допомогою команди socat, як показано нижче:



Використовуйте TCP-з'єднання

Використовуйте команду socat на хості, на якому працює серверний процес.
Підключіться до TCP з віддаленого хоста

Він прослуховує доменний сокет UNIX з такою ж назвою і підключає його до хоста, на якому працює серверний процес.
Використовуйте клієнт на віддаленому хості

Тепер, коли все готово, давайте підключимося до серверного процесу через мережу. Якщо хочете теж протестувати, можете скористатися socat.

Використання OpenSSH

Якщо у вас є доступ до SSH, є простіший спосіб. /tmp/example-server.sock Спочатку запустіть серверний хост (опущено). Використовуйте -L на клієнтському хості. Команда звучить так:
Тепер він доступний через клієнтський хост.




Попередній:Оптимізація продуктивності фронтенду: відмовтеся від XMLHttpRequest на користь інтерфейсів для вилучення
Наступний:Короткий вступ до мережевого ICMP (Протокол керування повідомленнями Інтернету).
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com