Comment vérifier si une option de socket réseau est configurée sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si une option de socket réseau est configurée sous Linux. Nous allons explorer l'utilisation de la commande ss avec l'option -o pour afficher des informations étendues sur les sockets, vous permettant ainsi de visualiser diverses options de socket telles que la taille de la fenêtre TCP et le MSS (Maximum Segment Size).

Le laboratoire vous guide tout au long de l'utilisation de la commande ss -no state all pour examiner les détails des sockets, en évitant la résolution des noms de service pour obtenir une sortie plus rapide. Vous apprendrez également à interpréter la sortie, qui inclut l'état du socket, les adresses et des informations étendues essentielles pour diagnostiquer les problèmes de performance réseau.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/ls -.-> lab-558889{{"Comment vérifier si une option de socket réseau est configurée sous Linux"}} linux/cat -.-> lab-558889{{"Comment vérifier si une option de socket réseau est configurée sous Linux"}} linux/grep -.-> lab-558889{{"Comment vérifier si une option de socket réseau est configurée sous Linux"}} linux/ps -.-> lab-558889{{"Comment vérifier si une option de socket réseau est configurée sous Linux"}} linux/sudo -.-> lab-558889{{"Comment vérifier si une option de socket réseau est configurée sous Linux"}} linux/netstat -.-> lab-558889{{"Comment vérifier si une option de socket réseau est configurée sous Linux"}} linux/nano -.-> lab-558889{{"Comment vérifier si une option de socket réseau est configurée sous Linux"}} end

Vérifier les options de socket avec ss -o

Dans cette étape, nous allons explorer comment utiliser la commande ss pour vérifier les options de socket. La commande ss est un outil puissant pour l'investigation des sockets réseau. Elle est similaire à netstat, mais ss est généralement plus rapide et fournit des informations plus détaillées. Nous allons nous concentrer sur l'utilisation de l'option -o pour afficher des informations étendues sur les sockets.

Tout d'abord, comprenons ce qu'est un socket. Un socket est un point final d'une liaison de communication bidirectionnelle entre deux programmes en cours d'exécution sur le réseau. Les sockets sont fondamentaux pour la programmation réseau et il est essentiel de les comprendre pour la résolution de problèmes et l'optimisation du réseau.

La commande ss avec l'option -o vous permet de visualiser diverses options de socket, telles que la taille de la fenêtre TCP, le MSS (Maximum Segment Size) TCP et d'autres paramètres liés au TCP. Ces informations peuvent être inestimables pour diagnostiquer les problèmes de performance réseau.

Pour commencer, ouvrez votre terminal.

Maintenant, exécutons la commande ss avec l'option -o pour voir les informations sur les sockets. Nous allons également utiliser l'option -n pour empêcher ss d'essayer de résoudre les noms de service, ce qui peut ralentir la sortie.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

ss -no state all

Cette commande effectue les actions suivantes :

  • ss : Appelle l'outil de statistiques des sockets.
  • -n : Empêche la résolution des noms de service.
  • -o : Affiche des informations étendues.
  • state all : Affiche tous les sockets, quelle que soit leur état.

Vous devriez voir une sortie similaire à celle-ci :

Netid  State   Recv-Q Send-Q   Local Address:Port   Peer Address:Port  Process
nl     UNCONN  0      0                rtnl:kernel
nl     UNCONN  0      0          fib_trie:kernel
nl     UNCONN  0      0                 xfrm:kernel
tcp    LISTEN  0      4096               0.0.0.0:22          0.0.0.0:*
        skmem:(r0,rb369280,t0,tb87380) tclass 0 pclass 0
tcp    ESTAB   0      0           127.0.0.1:38768         127.0.0.1:22
        skmem:(r0,rb87380,t0,tb87380) tclass 0 pclass 0 rcv_space:2048,4194304,65535 rcv_qlen:0 snd_space:32768,4194304,65535 snd_qlen:0
tcp    LISTEN  0      4096                  [::]:22             [::]:*
        skmem:(r0,rb369280,t0,tb87380) tclass 0 pclass 0

La sortie montre diverses connexions de socket, leur état et d'autres informations pertinentes. Le champ skmem montre l'utilisation de la mémoire liée au socket. Les champs rcv_space et snd_space montrent les tailles des tampons de réception et d'envoi.

Maintenant, filtrons la sortie pour nous concentrer sur les sockets TCP et inclure les informations sur les processus. Cela nous aidera à identifier quels processus utilisent des sockets spécifiques.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

sudo ss -tnpo state all

Cette commande ajoute les options suivantes :

  • -t : Filtre les sockets TCP.
  • -p : Affiche le processus utilisant le socket.

Vous devriez voir une sortie similaire à celle-ci :

State   Recv-Q Send-Q   Local Address:Port   Peer Address:Port  Process
LISTEN  0      4096               0.0.0.0:22          0.0.0.0:*    users:(("sshd",pid=942,fd=3))
ESTAB   0      0           127.0.0.1:22          127.0.0.1:49134  users:(("sshd",pid=1147,fd=5))
LISTEN  0      4096                  [::]:22             [::]:*    users:(("sshd",pid=942,fd=4))

La colonne Process montre maintenant le nom du processus et le PID (Process ID) associé à chaque socket. Cela peut être très utile pour identifier quelles applications utilisent des connexions réseau spécifiques.

En utilisant ss -o, vous pouvez obtenir des informations précieuses sur la configuration et l'état des sockets réseau de votre système. Ces informations peuvent être utilisées pour résoudre les problèmes réseau, optimiser les performances réseau et comprendre comment les applications utilisent les ressources réseau.

Vérifier les paramètres de socket dans /proc/sys/net

Dans cette étape, nous allons explorer comment vérifier les paramètres de socket en utilisant le répertoire /proc/sys/net. Le système de fichiers /proc est un système de fichiers virtuel qui fournit des informations sur les processus en cours d'exécution et la configuration du noyau. Le répertoire /proc/sys/net contient divers fichiers qui contrôlent les paramètres réseau, y compris les paramètres de socket.

Comprendre ces paramètres est essentiel pour optimiser les performances réseau et résoudre les problèmes liés au réseau. Ces paramètres influencent la façon dont le noyau gère les connexions réseau, les tailles de tampon, les délais d'attente et d'autres paramètres critiques.

Pour commencer, ouvrez votre terminal.

Commençons par lister le contenu du répertoire /proc/sys/net/ipv4. Ce répertoire contient des paramètres spécifiques au réseau IPv4.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

ls /proc/sys/net/ipv4

Cette commande listera les fichiers dans le répertoire /proc/sys/net/ipv4. Chaque fichier représente un paramètre réseau spécifique.

Vous devriez voir une sortie similaire à celle-ci :

conf  icmp_echo_ignore_all  icmp_ignore_bogus_error_responses  icmp_timestamp_ignore_replies  ip_default_ttl  ip_forward  ip_local_port_range  neigh  route  tcp_abc  tcp_adv_win_scale  tcp_allowed_congestion_control  tcp_congestion_control  tcp_dsack  tcp_ecn  tcp_fack  tcp_fastopen  tcp_fin_timeout  tcp_frto  tcp_keepalive_intvl  tcp_keepalive_probes  tcp_keepalive_time  tcp_low_latency  tcp_max_syn_backlog  tcp_max_tw_buckets  tcp_moderate_rcvbuf  tcp_mtu_probing  tcp_no_metrics_save  tcp_orphan_retries  tcp_reordering  tcp_retries1  tcp_retries2  tcp_rfc1337  tcp_rmem  tcp_sack  tcp_slow_start_after_idle  tcp_syn_retries  tcp_syncookies  tcp_timestamps  tcp_tw_recycle  tcp_tw_reuse  tcp_wmem

Maintenant, examinons la valeur d'un paramètre spécifique. Par exemple, vérifions la valeur de tcp_syn_retries. Ce paramètre détermine combien de fois le noyau tentera de réémettre un paquet SYN lors de l'établissement d'une connexion TCP.

Pour afficher la valeur de tcp_syn_retries, utilisez la commande cat :

cat /proc/sys/net/ipv4/tcp_syn_retries

Vous devriez voir un nombre en sortie, généralement 6. Cela signifie que le noyau tentera de réémettre le paquet SYN jusqu'à 6 fois.

6

Vous pouvez également afficher le contenu d'autres fichiers dans le répertoire /proc/sys/net/ipv4 pour voir leurs valeurs actuelles. Par exemple, pour afficher la plage de ports locaux que le système peut utiliser, vous pouvez afficher le fichier ip_local_port_range :

cat /proc/sys/net/ipv4/ip_local_port_range

La sortie montrera les bornes inférieure et supérieure de la plage de ports locaux :

32768   60999

Pour explorer les paramètres liés à toutes les versions d'IP, vous pouvez également vérifier /proc/sys/net/core.

ls /proc/sys/net/core
default_qdisc  dev_weight  message_burst  message_cost  netdev_max_backlog  optmem_max  rmem_default  rmem_max  somaxconn  warnings  wmem_default  wmem_max

Et vérifiez la valeur de rmem_default :

cat /proc/sys/net/core/rmem_default
212992

En examinant les fichiers dans le répertoire /proc/sys/net, vous pouvez mieux comprendre comment votre système est configuré pour le réseau. Cette connaissance peut être inestimable pour résoudre les problèmes réseau et optimiser les performances réseau.

Inspecter la configuration des sockets avec sysctl

Dans cette étape, nous allons explorer comment inspecter les configurations des sockets en utilisant la commande sysctl. sysctl est un utilitaire en ligne de commande qui vous permet de visualiser et de modifier les paramètres du noyau à l'exécution. C'est un outil puissant pour affiner le comportement de votre système, y compris les paramètres réseau.

sysctl lit et écrit des valeurs à partir du système de fichiers virtuel /proc/sys. Dans l'étape précédente, nous avons utilisé cat pour lire directement les valeurs à partir des fichiers dans /proc/sys/net. sysctl offre un moyen plus pratique et structuré d'accéder et de modifier ces paramètres.

Pour commencer, ouvrez votre terminal.

Commençons par lister tous les paramètres sysctl liés au réseau disponibles. Pour ce faire, nous pouvons utiliser la commande sysctl -a et filtrer la sortie à l'aide de grep pour nous concentrer sur les paramètres réseau.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

sysctl -a | grep net.

Cette commande effectue les actions suivantes :

  • sysctl -a : Liste tous les paramètres du noyau.
  • grep net. : Filtre la sortie pour afficher uniquement les paramètres commençant par net..

Vous devriez voir une longue liste de paramètres liés au réseau et leurs valeurs actuelles. La sortie sera similaire à celle-ci :

net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.core.bpf_jit_enable = 0
net.core.busy_poll = 50
net.core.busy_read = 50
net.core.default_qdisc = fq_codel
net.core.dev_weight = 64
net.core.message_burst = 10
net.core.message_cost = 5
net.core.netdev_max_backlog = 1000
net.core.optmem_max = 20480
net.core.rmem_default = 212992
net.core.rmem_max = 1703936
net.core.somaxconn = 128
net.core.warnings = 1
net.core.wmem_default = 212992
net.core.wmem_max = 1703936
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.all.arp_ignore = 0
net.ipv4.conf.all.arp_notify = 0
net.ipv4.conf.all.bootp_relay = 0
net.ipv4.conf.all.forwarding = 0
net.ipv4.conf.all.ignore_routes_with_linkdown = 0
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.all.medium_id = 0
net.ipv4.conf.all.promote_secondaries = 1
net.ipv4.conf.all.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.accept_redirects = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.default.arp_ignore = 0
net.ipv4.conf.default.arp_notify = 0
net.ipv4.conf.default.bootp_relay = 0
net.ipv4.conf.default.forwarding = 0
net.ipv4.conf.default.ignore_routes_with_linkdown = 0
net.ipv4.conf.default.log_martians = 0
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.default.medium_id = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.secure_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.lo.accept_redirects = 1
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_notify = 0
net.ipv4.conf.lo.bootp_relay = 0
net.ipv4.conf.lo.forwarding = 0
net.ipv4.conf.lo.ignore_routes_with_linkdown = 0
net.ipv4.conf.lo.log_martians = 0
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.lo.medium_id = 0
net.ipv4.conf.lo.promote_secondaries = 1
net.ipv4.conf.lo.proxy_arp = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.secure_redirects = 1
net.ipv4.conf.lo.send_redirects = 1
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.icmp_timestamp_ignore_replies = 0
net.ipv4.ip_default_ttl = 64
net.ipv4.ip_forward = 0
net.ipv4.ip_local_port_range = 32768	60999
net.ipv4.neigh.default.anycast_delay = 1
net.ipv4.neigh.default.app_solicit = 0
net.ipv4.neigh.default.base_reachable_time_ms = 30000
net.ipv4.neigh.default.gc_interval = 30
net.ipv4.neigh.default.gc_stale_time = 60
net.ipv4.neigh.default.locktime = 0
net.ipv4.neigh.default.mcast_solicit = 3
net.ipv4.neigh.default.proxy_qlen = 64
net.ipv4.neigh.default.retrans_time_ms = 1000
net.ipv4.neigh.default.ucast_solicit = 3
net.ipv4.route.flush = 0
net.ipv4.route.gc_elasticity = 9
net.ipv4.route.gc_interval = 30
net.ipv4.route.gc_min_interval = 0
net.ipv4.route.gc_timeout = 210
net.ipv4.route.max_size = 4096
net.ipv4.route.min_adv_mss = 536
net.ipv4.route.mtu_expires = 600
net.ipv4.tcp_abc = 0
net.ipv4.tcp_adv_win_scale = 1
net.ipv4.tcp_allowed_congestion_control = reno
net.ipv4.tcp_congestion_control = reno
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_fack = 1
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_frto = 2
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_max_syn_backlog = 256
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_mtu_probing = 0
net.ipv4.tcp_no_metrics_save = 0
net.ipv4.tcp_orphan_retries = 8
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_retries1 = 8
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_rmem = 4096	212992	6291456
net.ipv4.tcp_sack = 1
net.ipv4.tcp_slow_start_after_idle = 1
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_wmem = 4096	16384	4194304
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.ignore_routes_with_linkdown = 0
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.mldv1_unsolicited_report_interval = 1000
net.ipv6.conf.all.mldv2_unsolicited_report_interval = 100
net.ipv6.conf.all.mtu = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_random_factor = 600
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitations = -1
net.ipv6.conf.all.seg6_enabled = 1
net.ipv6.conf.all.seg6_require_hmac = 0
net.ipv6.conf.all.use_optimistic_dad = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.ignore_routes_with_linkdown = 0
net.ipv6.conf.default.max_addresses = 16
net.ipv6.conf.default.mldv1_unsolicited_report_interval = 1000
net.ipv6.conf.default.mldv2_unsolicited_report_interval = 100
net.ipv6.conf.default.mtu = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_random_factor = 600
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitations = -1
net.ipv6.conf.default.seg6_enabled = 1
net.ipv6.conf.default.seg6_require_hmac = 0
net.ipv6.conf.default.use_optimistic_dad = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.force_mld_version = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.ignore_routes_with_linkdown = 0
net.ipv6.conf.eth0.max_addresses = 16
net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 1000
net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 100
net.ipv6.conf.eth0.mtu = 1500
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_random_factor = 600
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.eth0.router_solicitation_interval = 4
net.ipv6.conf.eth0.router_solicitations = -1
net.ipv6.conf.eth0.seg6_enabled = 1
net.ipv6.conf.eth0.seg6_require_hmac = 0
net.ipv6.conf.eth0.use_optimistic_dad = 0
net.ipv6.conf.eth0.use_tempaddr = 0
net.ipv6.conf.lo.accept_dad = 1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.ignore_routes_with_linkdown = 0
net.ipv6.conf.lo.max_addresses = 16
net.ipv6.conf.lo.mldv1_unsolicited_report_interval = 1000
net.ipv6.conf.lo.mldv2_unsolicited_report_interval = 100
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_random_factor = 600
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitations = -1
net.ipv6.conf.lo.seg6_enabled = 1
net.ipv6.conf.lo.seg6_require_hmac = 0
net.ipv6.conf.lo.use_optimistic_dad = 0
net.ipv6.conf.lo.use_tempaddr = 0
net.netfilter.nf_conntrack_acct = 0
net.netfilter.nf_conntrack_buckets = 65536
net.netfilter.nf_conntrack_checksum = 0
net.netfilter.nf_conntrack_count = 256
net.netfilter.nf_conntrack_expect_max = 128
net.netfilter.nf_conntrack_frag6_high_thresh = 1048576
net.netfilter.nf_conntrack_frag6_low_thresh = 524288
net.netfilter.nf_conntrack_frag6_timeout = 60
net.netfilter.nf_conntrack_frag_high_thresh = 1048576
net.netfilter.nf_conntrack_frag_low_thresh = 524288
net.netfilter.nf_conntrack_frag_timeout = 60
net.netfilter.nf_conntrack_generic_timeout = 3600
net.netfilter.nf_conntrack_helper = 1
net.netfilter.nf_conntrack_icmpv6_timeout = 10
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_max = 262144
net.netfilter.nf_conntrack_sctp_timeout_closed = 0
net.netfilter.nf_conntrack_sctp_timeout_cookie_echoed = 120
net.netfilter.nf_conntrack_sctp_timeout_cookie_wait = 120
net.netfilter.nf_conntrack_sctp_timeout_heartbeat_ack = 0
net.netfilter.nf_conntrack_sctp_timeout_heartbeat_sent = 30
net.netfilter.nf_conntrack_sctp_timeout_shutdown_ack_sent = 0
net.netfilter.nf_conntrack_sctp_timeout_shutdown_recd = 0
net.netfilter.nf_conntrack_sctp_timeout_shutdown_sent = 0
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 86400
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.unix.max_dgram_qlen = 512

Pour afficher la valeur d'un paramètre spécifique, utilisez la commande sysctl suivie du nom du paramètre. Par exemple, pour afficher la valeur de net.ipv4.ip_forward, tapez la commande suivante et appuyez sur Entrée :

sysctl net.ipv4.ip_forward

Cette commande affichera la valeur actuelle du paramètre net.ipv4.ip_forward.

net.ipv4.ip_forward = 0

Pour modifier un paramètre sysctl, vous pouvez utiliser l'option -w suivie du nom du paramètre et de la nouvelle valeur. Cependant, gardez à l'esprit que les modifications apportées avec l'option -w sont temporaires et seront perdues après un redémarrage.

Par exemple, pour activer temporairement le transfert IP (définir net.ipv4.ip_forward sur 1), tapez la commande suivante et appuyez sur Entrée :

sudo sysctl -w net.ipv4.ip_forward=1

Vous pouvez vérifier que la valeur a été modifiée en exécutant à nouveau la commande sysctl :

sysctl net.ipv4.ip_forward

La sortie devrait maintenant afficher :

net.ipv4.ip_forward = 1

Pour rendre la modification permanente, vous devez éditer le fichier /etc/sysctl.conf ou créer un nouveau fichier de configuration dans le répertoire /etc/sysctl.d/.

Par exemple, créons un nouveau fichier nommé 99-labex.conf dans le répertoire /etc/sysctl.d/ et ajoutons-y le paramètre net.ipv4.ip_forward=1.

Tout d'abord, créez le fichier à l'aide de nano :

sudo nano /etc/sysctl.d/99-labex.conf

Ensuite, ajoutez la ligne suivante au fichier :

net.ipv4.ip_forward=1

Appuyez sur Ctrl+X, puis sur Y, puis sur Entrée pour enregistrer le fichier.

Enfin, appliquez les modifications en exécutant la commande suivante :

sudo sysctl -p /etc/sysctl.d/99-labex.conf

Cette commande lira le fichier de configuration et appliquera les paramètres.

En utilisant la commande sysctl et en modifiant le fichier /etc/sysctl.conf, vous pouvez affiner les paramètres réseau de votre système pour optimiser les performances et la sécurité.

Résumé

Dans ce laboratoire (lab), nous avons exploré comment vérifier les options de socket réseau sous Linux en utilisant la commande ss. Le principal point à retenir est de comprendre comment utiliser ss -no state all pour afficher des informations étendues sur les sockets, y compris la taille de la fenêtre TCP et la MSS (Maximum Segment Size), qui sont cruciales pour diagnostiquer les problèmes de performance réseau.

Le laboratoire a souligné l'importance des sockets en tant que points terminaux de communication réseau et a démontré comment la commande ss fournit des informations détaillées sur les paramètres des sockets, permettant une résolution efficace des problèmes réseau et une optimisation.