CentOS 上优化 Telnet 性能的可执行方案
一 内核网络与传输层优化
- 增大 TCP 缓冲区,提升高带宽/高延迟链路下的吞吐与稳定性:
- net.core.rmem_max=16777216
- net.core.wmem_max=16777216
- net.ipv4.tcp_rmem=4096 87380 16777216
- net.ipv4.tcp_wmem=4096 65536 16777216
- 启用并选择合适拥塞控制算法(内核需支持):net.ipv4.tcp_congestion_control=bbr 或 cubic。
- 启用 TCP Keepalive,快速清理半开/死连接:
- net.ipv4.tcp_keepalive_time=60
- net.ipv4.tcp_keepalive_intvl=10
- net.ipv4.tcp_keepalive_probes=6
- 缩短连接回收时间,避免资源长期占用:net.ipv4.tcp_fin_timeout=30
- 如内核与客户端均支持,开启 TCP Fast Open:net.ipv4.tcp_fastopen=3
- 应用生效:执行 sysctl -p;若需持久化,写入 /etc/sysctl.conf 或 /etc/sysctl.d/*.conf。
二 Telnet 服务与系统资源调优
- 服务并发与访问控制(xinetd 场景):编辑 /etc/xinetd.d/telnet
- 提升并发:instances=64(按内存与 CPU 调整)
- 限制单源并发:per_source=11
- 空闲超时:在 server_args 中设置 -t 30
- 仅允许可信网段:only_from=192.168.1.0/24
- systemd 场景:确认服务单元(如 telnet.socket)按需启用与开机自启。
- 文件描述符限制:编辑 /etc/security/limits.conf
- 监控与排障:使用 top/htop、vmstat 观察 CPU/内存/IO;必要时用 tcpdump/wireshark 抓包定位会话层问题。
三 网络与链路层优化
- 正确设置 MTU:多数以太网为 1500 字节;命令:ip link set dev eth0 mtu 1500。
- 在交换机/网卡支持时启用 Jumbo Frames(示例:ethtool -G eth0 rx 4096 tx 4096),并确保整条链路一致。
- 降低时延与丢包:用 ping、traceroute 检查路径质量;必要时优化路由或就近接入。
- 保障关键会话:在路由器/交换机配置 QoS,为 Telnet(TCP 23)分配更高优先级。
- 带宽与拥塞管理:使用 tc 做速率限制/整形,避免突发流量影响交互体验。
四 安全与替代建议
- 强烈建议优先使用 SSH 替代 Telnet(加密、完整性、压缩等),仅在受控内网或兼容性测试场景保留 Telnet。
- 若必须使用 Telnet:通过 firewalld 限制来源网段访问
- firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“23” protocol=“tcp” accept’
- firewall-cmd --reload
- 客户端侧优化:使用 screen/tmux 复用会话,减少频繁建立/断开;必要时用 nc 做连通性与性能快速验证。
五 快速检查清单与回退
- 验证内核参数:sysctl net.core.rmem_max net.ipv4.tcp_rmem net.ipv4.tcp_congestion_control
- 验证服务并发与访问控制:grep -E “instances|per_source|only_from” /etc/xinetd.d/telnet
- 验证文件描述符:ulimit -n(应≥65536)
- 验证防火墙:firewall-cmd --list-all | grep 23/tcp
- 回退方案:保留变更前的配置文件备份(如 sysctl.conf、xinetd.d/telnet、limits.conf),出现异常时逐项恢复并 sysctl -p 重载。