はじめに
この実験では、Linux でネットワークソケットオプションが設定されているかどうかを確認する方法を学びます。拡張ソケット情報を表示するために -o オプション付きの ss コマンドの使用方法を調べます。これにより、TCP ウィンドウサイズや MSS などのさまざまなソケットオプションを表示できます。
この実験では、ss -no state all を使用してソケットの詳細を調べる方法を案内します。このコマンドはサービス名の解決を行わないため、出力が高速になります。また、ソケットの状態、アドレス、およびネットワークパフォーマンスの問題を診断するために重要な拡張情報を含む出力の解釈方法も学びます。
ss -o でソケットオプションを確認する
このステップでは、ss コマンドを使用してソケットオプションを確認する方法を探ります。ss コマンドはネットワークソケットを調査するための強力なツールです。netstat に似ていますが、一般的に ss の方が高速で、より詳細な情報を提供します。ここでは、拡張ソケット情報を表示する -o オプションの使用に焦点を当てます。
まず、ソケットとは何かを理解しましょう。ソケットは、ネットワーク上で実行されている 2 つのプログラム間の双方向通信リンクのエンドポイントです。ソケットはネットワークプログラミングの基礎であり、ネットワークのトラブルシューティングや最適化において理解することが重要です。
-o オプション付きの ss コマンドを使用すると、TCP ウィンドウサイズ、TCP MSS (Maximum Segment Size)、その他の TCP 関連パラメータなど、さまざまなソケットオプションを表示できます。この情報は、ネットワークパフォーマンスの問題を診断するために非常に役立ちます。
まず、ターミナルを開きましょう。
では、-o オプション付きの ss コマンドを実行して、ソケット情報を表示しましょう。また、-n オプションを使用して、ss がサービス名を解決しようとするのを防ぎます。これにより、出力が遅くなるのを防げます。
ターミナルに以下のコマンドを入力し、Enter キーを押します。
ss -no state all
このコマンドは以下のことを行います。
ss: ソケット統計ツールを起動します。-n: サービス名の解決を行いません。-o: 拡張情報を表示します。state all: ソケットの状態に関係なく、すべてのソケットを表示します。
以下のような出力が表示されるはずです。
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
この出力には、さまざまなソケット接続、その状態、およびその他の関連情報が表示されます。skmem フィールドには、ソケットに関連するメモリ使用量が表示されます。rcv_space と snd_space には、受信および送信バッファのサイズが表示されます。
では、出力をフィルタリングして、TCP ソケットに焦点を当て、プロセス情報を含めましょう。これにより、特定のソケットを使用しているプロセスを特定するのに役立ちます。
ターミナルに以下のコマンドを入力し、Enter キーを押します。
sudo ss -tnpo state all
このコマンドには以下のオプションが追加されています。
-t: TCP ソケットをフィルタリングします。-p: ソケットを使用しているプロセスを表示します。
以下のような出力が表示されるはずです。
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))
Process 列には、各ソケットに関連付けられたプロセス名と PID (Process ID) が表示されます。これは、特定のネットワーク接続を使用しているアプリケーションを特定するのに非常に役立ちます。
ss -o を使用することで、システム上のネットワークソケットの構成と状態に関する貴重な洞察を得ることができます。この情報は、ネットワークの問題をトラブルシューティングし、ネットワークパフォーマンスを最適化し、アプリケーションがネットワークリソースをどのように使用しているかを理解するために使用できます。
/proc/sys/net のソケット設定を確認する
このステップでは、/proc/sys/net ディレクトリを使用してソケット設定を確認する方法を探ります。/proc ファイルシステムは、実行中のプロセスやカーネル設定に関する情報を提供する仮想ファイルシステムです。/proc/sys/net ディレクトリには、ソケット設定を含むさまざまなネットワーキングパラメータを制御するファイルが含まれています。
これらの設定を理解することは、ネットワークパフォーマンスを最適化し、ネットワーク関連の問題をトラブルシューティングするために重要です。これらの設定は、カーネルがネットワーク接続、バッファサイズ、タイムアウト、およびその他の重要なパラメータをどのように処理するかに影響を与えます。
まず、ターミナルを開きましょう。
まず、/proc/sys/net/ipv4 ディレクトリの内容を一覧表示しましょう。このディレクトリには、IPv4 ネットワーキングに固有の設定が含まれています。
ターミナルに以下のコマンドを入力し、Enter キーを押します。
ls /proc/sys/net/ipv4
このコマンドは、/proc/sys/net/ipv4 ディレクトリ内のファイルを一覧表示します。各ファイルは特定のネットワーキングパラメータを表しています。
以下のような出力が表示されるはずです。
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
では、特定の設定の値を調べてみましょう。たとえば、tcp_syn_retries の値を確認してみましょう。この設定は、TCP 接続を確立する際にカーネルが SYN パケットを再送信する試行回数を決定します。
tcp_syn_retries の値を表示するには、cat コマンドを使用します。
cat /proc/sys/net/ipv4/tcp_syn_retries
出力として数字が表示されるはずで、通常は 6 です。これは、カーネルが SYN パケットを最大 6 回再送信することを意味します。
6
/proc/sys/net/ipv4 ディレクトリ内の他のファイルの内容を表示して、それらの現在の値を確認することもできます。たとえば、システムが使用できるローカルポートの範囲を表示するには、ip_local_port_range ファイルを表示できます。
cat /proc/sys/net/ipv4/ip_local_port_range
出力には、ローカルポート範囲の下限と上限が表示されます。
32768 60999
すべての IP バージョンに関連する設定を調べるには、/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
そして、rmem_default の値を確認します。
cat /proc/sys/net/core/rmem_default
212992
/proc/sys/net ディレクトリ内のファイルを調べることで、システムがネットワーキングにどのように設定されているかをよりよく理解することができます。この知識は、ネットワークの問題をトラブルシューティングし、ネットワークパフォーマンスを最適化するために非常に役立ちます。
sysctl でソケット設定を確認する
このステップでは、sysctl コマンドを使用してソケット設定を調べる方法を探ります。sysctl は、実行時にカーネルパラメータを表示および変更できるコマンドラインユーティリティです。これは、ネットワーク設定を含むシステムの動作を微調整するための強力なツールです。
sysctl は、/proc/sys 仮想ファイルシステムから値を読み書きします。前のステップでは、cat を使用して /proc/sys/net 内のファイルから直接値を読み取りました。sysctl は、これらのパラメータにアクセスして変更するための、より便利で構造化された方法を提供します。
まず、ターミナルを開きましょう。
まず、利用可能なすべてのネットワーク関連の sysctl パラメータを一覧表示しましょう。これを行うには、sysctl -a コマンドを使用し、grep を使用して出力をフィルタリングして、ネットワーク設定に焦点を当てます。
ターミナルに以下のコマンドを入力し、Enter キーを押します。
sysctl -a | grep net.
このコマンドは以下のことを行います。
sysctl -a: すべてのカーネルパラメータを一覧表示します。grep net.: 出力をフィルタリングして、net.で始まるパラメータのみを表示します。
ネットワーク関連のパラメータとその現在の値の長いリストが表示されるはずです。出力は以下のようになります。
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
特定のパラメータの値を表示するには、sysctl コマンドの後にパラメータ名を入力します。たとえば、net.ipv4.ip_forward の値を表示するには、以下のコマンドを入力して Enter キーを押します。
sysctl net.ipv4.ip_forward
このコマンドは、net.ipv4.ip_forward パラメータの現在の値を表示します。
net.ipv4.ip_forward = 0
sysctl パラメータを変更するには、-w オプションの後にパラメータ名と新しい値を指定します。ただし、-w オプションで行った変更は一時的で、再起動後に失われることに注意してください。
たとえば、IP 転送を一時的に有効にする(net.ipv4.ip_forward を 1 に設定する)には、以下のコマンドを入力して Enter キーを押します。
sudo sysctl -w net.ipv4.ip_forward=1
sysctl コマンドを再度実行することで、値が変更されたことを確認できます。
sysctl net.ipv4.ip_forward
出力は以下のように表示されるはずです。
net.ipv4.ip_forward = 1
変更を永続的にするには、/etc/sysctl.conf ファイルを編集するか、/etc/sysctl.d/ ディレクトリに新しい設定ファイルを作成する必要があります。
たとえば、/etc/sysctl.d/ ディレクトリに 99-labex.conf という名前の新しいファイルを作成し、それに net.ipv4.ip_forward=1 設定を追加しましょう。
まず、nano を使用してファイルを作成します。
sudo nano /etc/sysctl.d/99-labex.conf
次に、以下の行をファイルに追加します。
net.ipv4.ip_forward=1
Ctrl+X を押し、次に Y を押し、最後に Enter を押してファイルを保存します。
最後に、以下のコマンドを実行して変更を適用します。
sudo sysctl -p /etc/sysctl.d/99-labex.conf
このコマンドは、設定ファイルを読み取り、設定を適用します。
sysctl コマンドを使用し、/etc/sysctl.conf ファイルを変更することで、システムのネットワーク設定を微調整して、パフォーマンスとセキュリティを最適化することができます。
まとめ
この実験では、ss コマンドを使用して Linux でネットワークソケットオプションを確認する方法を探りました。重要なポイントは、ss -no state all を使用して、TCP ウィンドウサイズや最大セグメントサイズ(MSS)などの拡張ソケット情報を表示する方法を理解することです。これらの情報は、ネットワークパフォーマンスの問題を診断するために重要です。
この実験では、ソケットがネットワーク通信のエンドポイントとして重要であることを強調し、ss コマンドがソケットパラメータに関する詳細な洞察を提供し、効果的なネットワークのトラブルシューティングと最適化を可能にすることを示しました。



