Skip to content

dpteam/Linux-Optimizer

 
 

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

It performs the following tasks:

  1. Fix hosts file and DNS (temporarily):

    • Check and add 127.0.1.1 and server hostname to /etc/hosts.

    Original hosts file is backed up at /etc/hosts.bak.

    • Add 77.88.8.8 and 1.1.1.1 to /etc/resolv.conf.

    Original dns file is backed up at /etc/resolv.conf.bak.

  2. Update, Upgrade, and Clean the server:

    • Update
    • Upgrade
    • Full-Upgrade
    • AutoRemove
    • AutoClean
    • Clean
  3. Install XanMod LTS Kernel (Only on Ubuntu & Debian):

  4. Install Useful Packages:

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

  5. Enable Packages at Server Boot.

  6. Set the server TimeZone to the VPS IP address location.

  7. Create & Enable SWAP File:

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

  9. Optimize the SYSCTL Configs:

    • Optimize SWAP.
    • Optimize Network Settings.
    • Activate BBR (BBRv3 with XanMod).
    • Optimize the Kernel.

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

  10. Optimize SSH:

    • 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 and compression.
    • Enable X11 Forwarding.

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

  11. Optimize the System Limits:

    • Soft and Hard ulimit -c -d -f -i -l -n -q -s -u -v -x optimizations.
  12. Optimize UFW and open Common Ports:

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

Reboot at the end is Recommended.

Prerequisites

Ensure that the sudo, wget and jq packages are installed on your system:

  • Ubuntu & Debian:
apt update -q && apt install -y sudo wget jq
  • CentOS & Fedora:
dnf up -y && dnf install -y sudo wget jq

Run

Tested on: Ubuntu 20+, Debian 11+, CentOS Stream 8+, AlmaLinux 8+, Fedora 37+

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

sudo -i

Then:

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

Menu Image

Debian & Ubuntu:

debian-based-menu

CentOS, AlmaLinux & Fedora:

rhel-based-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 DPT Fork

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%