Skip to content

Instantly share code, notes, and snippets.

@derak-kilgo
Created April 14, 2025 18:23
Show Gist options
  • Save derak-kilgo/81e861cdf0cd39af9422450133db435f to your computer and use it in GitHub Desktop.
Save derak-kilgo/81e861cdf0cd39af9422450133db435f to your computer and use it in GitHub Desktop.
check for common kernel network settings in RHEL 5 and 6
#!/bin/bash
echo Tweaking the linux kernel...
echo disable pmtu discovery
echo /proc/sys/net/ipv4/ip_no_pmtu_disc:
cat /proc/sys/net/ipv4/ip_no_pmtu_disc
echo recommended value is 1
echo enable workaround when broken window scaling is detected.
echo /proc/sys/net/ipv4/tcp_workaround_signed_windows:
cat /proc/sys/net/ipv4/tcp_workaround_signed_windows
echo recommended value is 1
echo globally disable ip4 tcp window scaling
echo /proc/sys/net/ipv4/tcp_window_scaling:
cat /proc/sys/net/ipv4/tcp_window_scaling
echo recommended value is 0
echo globally disable ip4 tcp sack
echo /proc/sys/net/ipv4/tcp_sack:
cat /proc/sys/net/ipv4/tcp_sack
echo recommended value is 0
echo globally disable ip4 tcp timestamps
echo /proc/sys/net/ipv4/tcp_timestamps:
cat /proc/sys/net/ipv4/tcp_timestamps
echo recommended value is 0
echo Decrease the time default value for tcp_fin_timeout connection in seconds
echo /proc/sys/net/ipv4/tcp_fin_timeout:
cat /proc/sys/net/ipv4/tcp_fin_timeout
echo recommended value is 15 seconds
echo Decrease the time default value for tcp_keepalive_time connection in seconds.
echo /proc/sys/net/ipv4/tcp_keepalive_time:
cat /proc/sys/net/ipv4/tcp_keepalive_time
echo recommended value is 400 seconds
echo Lower syn retry rates.
echo /proc/sys/net/ipv4/tcp_synack_retries:
cat /proc/sys/net/ipv4/tcp_synack_retries
echo recommended value is 2
echo /proc/sys/net/ipv4/tcp_syn_retries:
cat /proc/sys/net/ipv4/tcp_syn_retries
echo recommended value is 3
echo Turn off logging of bogus icmp error messages.
echo /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses:
cat /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo recommended value is 1
echo Set mss on eth0 to mtu which is small enought not to fail.
/sbin/ifconfig eth0 | grep mtu
echo recommended value is 1492
echo Done
@derak-kilgo
Copy link
Author

To actually adjust those settings (in a temporary way)

echo Tweaking the linux kernel...
#disable pmtu discovery
echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
#enable workaround when broken window scaling is detected.
echo 1 > /proc/sys/net/ipv4/tcp_workaround_signed_windows
#globally disable ip4 tcp window scaling
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
#globally disable ip4 tcp sack
echo 0 > /proc/sys/net/ipv4/tcp_sack
#globally disable ip4 tcp timestamps
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
# Decrease the time default value for tcp_fin_timeout connection in seconds
echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout
# Decrease the time default value for tcp_keepalive_time connection in seconds.
echo 400 > /proc/sys/net/ipv4/tcp_keepalive_time
## Lower syn retry rates
#echo 2 > /proc/sys/net/ipv4/tcp_synack_retries
#echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
## Turn off logging of bogus icmp error messages.
#echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#set mss on eth0
/sbin/ifconfig eth0 mtu 1492
echo 'Done's

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment