Skip to content

Latest commit

 

History

History
105 lines (66 loc) · 2.8 KB

README.md

File metadata and controls

105 lines (66 loc) · 2.8 KB

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.