Unix socket

Een Unix socket (of Unix domain socket) is een communicatiekanaal tussen processen op dezelfde computer. Het werkt als een netwerkverbinding, maar verloopt via het bestandssysteem en is veel sneller omdat er geen netwerkstack aan te pas komt.

Verschil met TCP-socket

Unix socketTCP-socket
CommunicatieLokaal (zelfde machine)Netwerk of lokaal
AdresBestandspad (/run/nginx.sock)IP-adres + poort
SnelheidSneller (geen TCP-overhead)Langzamer
BeveiligingBestandspermissiesFirewallregels

Herkennen

Unix sockets zijn te herkennen aan het type s in ls -l:

ls -la /run/nginx.sock
# srw-rw---- 1 www-data www-data 0 jun 25 nginx.sock

Gebruiken

# Alle Unix sockets bekijken
ss -x
# Verbinding maken met een socket
nc -U /run/myapp.sock
curl --unix-socket /run/nginx.sock http://localhost/

Zie ook

linuxprocessen