Prerequisites
Before changing kernel parameters, make sure you have:
- SSH access to your VPS
- Root or sudo privileges
⚠️ Incorrect kernel parameters can cause system instability. Only change parameters you understand.
Step 1: View Current Kernel Parameters
Connect to your VPS:
ssh hxroot@YOUR_SERVER_IP -p 22
sysctl -a
To filter specific parameters:
sysctl -a | grep net.ipv4.tcp
Step 2: Temporary Changes (Apply Until Reboot)
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
Step 3: Permanent Changes (Edit /etc/sysctl.conf)
sudo nano /etc/sysctl.conf
Add lines at the end:
# TCP performance tuning
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65535
net.core.somaxconn = 1024
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_syncookies = 1
Step 4: Apply Changes
sudo sysctl -p
This reloads all settings from /etc/sysctl.conf.
Common Tuning Parameters
| Parameter | Description | Typical Value |
|---|---|---|
| net.ipv4.tcp_tw_reuse | Reuse TIME_WAIT sockets | 1 |
| net.ipv4.tcp_fin_timeout | Time to keep sockets in FIN-WAIT-2 | 30 |
| net.ipv4.tcp_keepalive_time | Keepalive idle time (seconds) | 1200 |
| net.ipv4.ip_local_port_range | Local port range | 1024 65535 |
| net.core.somaxconn | Max backlog for listen() | 1024 |
| net.core.rmem_max | Max receive buffer size | 134217728 |
| net.core.wmem_max | Max send buffer size | 134217728 |
Apply Specific Parameters with sysctl.conf Snippets
Create separate file for network tuning:
sudo nano /etc/sysctl.d/99-network.conf
Add parameters, then apply:
sudo sysctl -p /etc/sysctl.d/99-network.conf
Revert to Defaults
Remove or comment out custom lines in /etc/sysctl.conf, then:
sudo sysctl -p
✅ Kernel parameters have been updated. Monitor system performance to ensure desired results.