The problem
1. How to modify the telnet timeout period?
2. Telnet connection is disconnected after some idle time. How to disable the timeout in telnet?
The Solution
Using the tcp_keepalive_time parameter
To modify the telnet timeout you need to change the value of the parameter tcp_keepalive_time. Below is the details of the parameter from the man page of tcp.
# man tcp tcp_keepalive_time (integer; default: 7200; since Linux 2.2) The number of seconds a connection needs to be idle before TCP begins sending out keep-alive probes. Keep-alives are sent only when the SO_KEEPALIVE socket option is enabled. The default value is 7200 seconds (2 hours). An idle connection is terminated after approximately an additional 11 minutes (9 probes an interval of 75 seconds apart) when keep-alive is enabled.
1. To view the current value of the tcp_keepalive_time parameter, use the below command.
# sysctl -a | grep tcp_keepalive_time net.ipv4.tcp_keepalive_time = 7200
2. To set a new value of the tcp_keepalive_time parameter, use the below command.
# echo 3600 > /proc/sys/net/ipv4/tcp_keepalive_time
3. To keep the change permanent add a line to /etc/sysctl.conf similar to the following.
# vi /etc/sysctl.conf net.ipv4.tcp_keepalive_time = 3600
4. Now run the command below for the changes to be effective in the current session as well.
# sysctl -p net.ipv4.tcp_keepalive_time = 3600
Using the TMOUT environment variable
You can also adjust timeout by using ‘TMOUT=’ environment variable. If you don’t want to use auto logging out, please put the below in ~/.bashrc file of the respective user.
# export TMOUT=0