Skip to content

irantechh/Linux-Optimizer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

It performs the following tasks:

  1. Set the server TimeZone to Asia/Tehran.

  2. Update, Upgrade, and Clean the server:

    • Update
    • Upgrade
    • Dist-Upgrade
    • AutoRemove
    • AutoClean
    • Clean
  3. Install Useful Packages:

    software-properties-common build-essential apt-transport-https epel-release nftables iptables iptables-persistent lsb-release ca-certificates keyring gnupg2 apt-utils cron bash-completion curl git zip unzip ufw wget preload locales nano vim python3 python3-pip jq qrencode socat busybox net-tools haveged htop libssl-dev libsqlite3-dev dialog bc binutils binutils-common binutils-x86-64-linux-gnu packagekit make automake autoconf libtool

  4. Enable Packages at Server Boot.

  5. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  6. Enable IPv6 Support.

  7. Optimize the SYSCTL Configs.

    • Optimize SWAP.
    • Optimize Network Settings.
    • Activate BBR.
    • Optimize the Kernel.

    Original file is backed up at /etc/sysctl.conf.bak.

  8. Optimize SSH:

    • Back up the original sshd_config file.
    • Disable DNS lookups for connecting clients.
    • Remove less efficient encryption ciphers.
    • Enable and Configure TCP keep-alive messages.
    • Allow agent & TCP forwarding.
    • Enable gateway ports, Tunneling & Compression.
    • Enable X11 Forwarding.

    Original file is backed up at /etc/ssh/sshd_config.bak.

  9. Optimize the System Limits:

    • Soft & Hard nproc limits.
    • Soft & Hard nofile limits.
  10. Optimize UFW & Open Common Ports.

    • Open Ports 21, 22, 80, 443.
    • With IPv6, TCP & UDP.

Reboot at the end is Recommended.

Pre-Run

Packages wget and sudo must be installed.

  • Ubuntu & Debian:
apt install -y sudo wget
  • CentOS & Fedora:
dnf install -y sudo wget

Run

Tested on: Ubuntu 18+, Debian 11+, CentOS 8+, Fedora 37+

Root Access is Required. If the user is not root, first run:

sudo -i

Then:

wget "https://raw.githubusercontent.com/hawshemi/Linux-Optimizer/main/linux-optimizer.sh" -O linux-optimizer.sh && chmod +x linux-optimizer.sh && bash linux-optimizer.sh 

Menu Image

Menu

Disclaimer

This script is provided as-is, without any warranty or guarantee. Use it at your own risk.

License

This script is licensed under the MIT License.

About

Linux Optimizer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%