Skip to content

Latest commit

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

Notes:

  1. This script is designed for execution on Linux server environments, including VPS, VDS, Dedicated, and Bare Metal systems. It is not recommended for use on Linux desktop environments.
  2. Modifying the kernel (options 1 and 2) may result in removing or resetting some GPU drivers.
  3. Some VMs do not support kernel changes (options 1 and 2). Installing XanMod could cause the VM to break. Please be cautious and test beforehand.

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 Cloudflare-Security DNS servers (1.1.1.2, 1.0.0.2) nameservers 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. Disable Terminal Ads (Only on Ubuntu).

  4. Install XanMod Kernel (Only on Ubuntu & Debian):

  5. Install Useful Packages:

    apt-transport-httpsapt-utilsautoconfautomakebash-completionbcbinutilsbinutils-commonbinutils-x86-64-linux-gnubuild-essentialbusyboxca-certificatescroncurldialogepel-releasegnupg2githavegedhtopjqkeyringlibssl-devlibsqlite3-devlibtoollocaleslsb-releasemakenanonet-toolspackagekitpreloadpython3python3-pipqrencodesocatscreensoftware-properties-commonufwunzipvimwgetzip

  6. Enable Packages at Server Boot.

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

  8. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  9. Optimize the SYSCTL Configs:

    • Optimize File System Settings.
    • Optimize Network Core Settings.
    • Optimize SWAP.
    • Optimize TCP and UDP Settings.
    • Optimize UNIX Domain Sockets Settings.
    • Optimize Virtual memory (VM) Settings.
    • Optimize Network Configuration Settings.
    • Optimize the Kernel.
    • Activate BBR(BBRv3 with XanMod).

    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 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 and wget packages are installed on your system:

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

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/hawshemi/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.

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - hawshemi/linux-optimizer: Linux Optimizer · GitHub
Skip to content

Latest commit

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

Notes:

  1. This script is designed for execution on Linux server environments, including VPS, VDS, Dedicated, and Bare Metal systems. It is not recommended for use on Linux desktop environments.
  2. Modifying the kernel (options 1 and 2) may result in removing or resetting some GPU drivers.
  3. Some VMs do not support kernel changes (options 1 and 2). Installing XanMod could cause the VM to break. Please be cautious and test beforehand.

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 Cloudflare-Security DNS servers (1.1.1.2, 1.0.0.2) nameservers 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. Disable Terminal Ads (Only on Ubuntu).

  4. Install XanMod Kernel (Only on Ubuntu & Debian):

  5. Install Useful Packages:

    apt-transport-httpsapt-utilsautoconfautomakebash-completionbcbinutilsbinutils-commonbinutils-x86-64-linux-gnubuild-essentialbusyboxca-certificatescroncurldialogepel-releasegnupg2githavegedhtopjqkeyringlibssl-devlibsqlite3-devlibtoollocaleslsb-releasemakenanonet-toolspackagekitpreloadpython3python3-pipqrencodesocatscreensoftware-properties-commonufwunzipvimwgetzip

  6. Enable Packages at Server Boot.

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

  8. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  9. Optimize the SYSCTL Configs:

    • Optimize File System Settings.
    • Optimize Network Core Settings.
    • Optimize SWAP.
    • Optimize TCP and UDP Settings.
    • Optimize UNIX Domain Sockets Settings.
    • Optimize Virtual memory (VM) Settings.
    • Optimize Network Configuration Settings.
    • Optimize the Kernel.
    • Activate BBR(BBRv3 with XanMod).

    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 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 and wget packages are installed on your system:

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

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/hawshemi/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.

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - hawshemi/linux-optimizer: Linux Optimizer · GitHub
Skip to content

Latest commit

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

Notes:

  1. This script is designed for execution on Linux server environments, including VPS, VDS, Dedicated, and Bare Metal systems. It is not recommended for use on Linux desktop environments.
  2. Modifying the kernel (options 1 and 2) may result in removing or resetting some GPU drivers.
  3. Some VMs do not support kernel changes (options 1 and 2). Installing XanMod could cause the VM to break. Please be cautious and test beforehand.

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 Cloudflare-Security DNS servers (1.1.1.2, 1.0.0.2) nameservers 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. Disable Terminal Ads (Only on Ubuntu).

  4. Install XanMod Kernel (Only on Ubuntu & Debian):

  5. Install Useful Packages:

    apt-transport-httpsapt-utilsautoconfautomakebash-completionbcbinutilsbinutils-commonbinutils-x86-64-linux-gnubuild-essentialbusyboxca-certificatescroncurldialogepel-releasegnupg2githavegedhtopjqkeyringlibssl-devlibsqlite3-devlibtoollocaleslsb-releasemakenanonet-toolspackagekitpreloadpython3python3-pipqrencodesocatscreensoftware-properties-commonufwunzipvimwgetzip

  6. Enable Packages at Server Boot.

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

  8. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  9. Optimize the SYSCTL Configs:

    • Optimize File System Settings.
    • Optimize Network Core Settings.
    • Optimize SWAP.
    • Optimize TCP and UDP Settings.
    • Optimize UNIX Domain Sockets Settings.
    • Optimize Virtual memory (VM) Settings.
    • Optimize Network Configuration Settings.
    • Optimize the Kernel.
    • Activate BBR(BBRv3 with XanMod).

    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 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 and wget packages are installed on your system:

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

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/hawshemi/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.

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - hawshemi/linux-optimizer: Linux Optimizer · GitHub
Skip to content

Latest commit

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

Notes:

  1. This script is designed for execution on Linux server environments, including VPS, VDS, Dedicated, and Bare Metal systems. It is not recommended for use on Linux desktop environments.
  2. Modifying the kernel (options 1 and 2) may result in removing or resetting some GPU drivers.
  3. Some VMs do not support kernel changes (options 1 and 2). Installing XanMod could cause the VM to break. Please be cautious and test beforehand.

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 Cloudflare-Security DNS servers (1.1.1.2, 1.0.0.2) nameservers 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. Disable Terminal Ads (Only on Ubuntu).

  4. Install XanMod Kernel (Only on Ubuntu & Debian):

  5. Install Useful Packages:

    apt-transport-httpsapt-utilsautoconfautomakebash-completionbcbinutilsbinutils-commonbinutils-x86-64-linux-gnubuild-essentialbusyboxca-certificatescroncurldialogepel-releasegnupg2githavegedhtopjqkeyringlibssl-devlibsqlite3-devlibtoollocaleslsb-releasemakenanonet-toolspackagekitpreloadpython3python3-pipqrencodesocatscreensoftware-properties-commonufwunzipvimwgetzip

  6. Enable Packages at Server Boot.

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

  8. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  9. Optimize the SYSCTL Configs:

    • Optimize File System Settings.
    • Optimize Network Core Settings.
    • Optimize SWAP.
    • Optimize TCP and UDP Settings.
    • Optimize UNIX Domain Sockets Settings.
    • Optimize Virtual memory (VM) Settings.
    • Optimize Network Configuration Settings.
    • Optimize the Kernel.
    • Activate BBR(BBRv3 with XanMod).

    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 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 and wget packages are installed on your system:

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

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/hawshemi/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.

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - hawshemi/linux-optimizer: Linux Optimizer · GitHub
Skip to content

Latest commit

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

Notes:

  1. This script is designed for execution on Linux server environments, including VPS, VDS, Dedicated, and Bare Metal systems. It is not recommended for use on Linux desktop environments.
  2. Modifying the kernel (options 1 and 2) may result in removing or resetting some GPU drivers.
  3. Some VMs do not support kernel changes (options 1 and 2). Installing XanMod could cause the VM to break. Please be cautious and test beforehand.

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 Cloudflare-Security DNS servers (1.1.1.2, 1.0.0.2) nameservers 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. Disable Terminal Ads (Only on Ubuntu).

  4. Install XanMod Kernel (Only on Ubuntu & Debian):

  5. Install Useful Packages:

    apt-transport-httpsapt-utilsautoconfautomakebash-completionbcbinutilsbinutils-commonbinutils-x86-64-linux-gnubuild-essentialbusyboxca-certificatescroncurldialogepel-releasegnupg2githavegedhtopjqkeyringlibssl-devlibsqlite3-devlibtoollocaleslsb-releasemakenanonet-toolspackagekitpreloadpython3python3-pipqrencodesocatscreensoftware-properties-commonufwunzipvimwgetzip

  6. Enable Packages at Server Boot.

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

  8. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  9. Optimize the SYSCTL Configs:

    • Optimize File System Settings.
    • Optimize Network Core Settings.
    • Optimize SWAP.
    • Optimize TCP and UDP Settings.
    • Optimize UNIX Domain Sockets Settings.
    • Optimize Virtual memory (VM) Settings.
    • Optimize Network Configuration Settings.
    • Optimize the Kernel.
    • Activate BBR(BBRv3 with XanMod).

    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 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 and wget packages are installed on your system:

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

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/hawshemi/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.

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - hawshemi/linux-optimizer: Linux Optimizer · GitHub
Skip to content

Latest commit

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

Notes:

  1. This script is designed for execution on Linux server environments, including VPS, VDS, Dedicated, and Bare Metal systems. It is not recommended for use on Linux desktop environments.
  2. Modifying the kernel (options 1 and 2) may result in removing or resetting some GPU drivers.
  3. Some VMs do not support kernel changes (options 1 and 2). Installing XanMod could cause the VM to break. Please be cautious and test beforehand.

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 Cloudflare-Security DNS servers (1.1.1.2, 1.0.0.2) nameservers 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. Disable Terminal Ads (Only on Ubuntu).

  4. Install XanMod Kernel (Only on Ubuntu & Debian):

  5. Install Useful Packages:

    apt-transport-httpsapt-utilsautoconfautomakebash-completionbcbinutilsbinutils-commonbinutils-x86-64-linux-gnubuild-essentialbusyboxca-certificatescroncurldialogepel-releasegnupg2githavegedhtopjqkeyringlibssl-devlibsqlite3-devlibtoollocaleslsb-releasemakenanonet-toolspackagekitpreloadpython3python3-pipqrencodesocatscreensoftware-properties-commonufwunzipvimwgetzip

  6. Enable Packages at Server Boot.

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

  8. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  9. Optimize the SYSCTL Configs:

    • Optimize File System Settings.
    • Optimize Network Core Settings.
    • Optimize SWAP.
    • Optimize TCP and UDP Settings.
    • Optimize UNIX Domain Sockets Settings.
    • Optimize Virtual memory (VM) Settings.
    • Optimize Network Configuration Settings.
    • Optimize the Kernel.
    • Activate BBR(BBRv3 with XanMod).

    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 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 and wget packages are installed on your system:

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

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/hawshemi/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.

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - hawshemi/linux-optimizer: Linux Optimizer · GitHub
Skip to content

Latest commit

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

Notes:

  1. This script is designed for execution on Linux server environments, including VPS, VDS, Dedicated, and Bare Metal systems. It is not recommended for use on Linux desktop environments.
  2. Modifying the kernel (options 1 and 2) may result in removing or resetting some GPU drivers.
  3. Some VMs do not support kernel changes (options 1 and 2). Installing XanMod could cause the VM to break. Please be cautious and test beforehand.

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 Cloudflare-Security DNS servers (1.1.1.2, 1.0.0.2) nameservers 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. Disable Terminal Ads (Only on Ubuntu).

  4. Install XanMod Kernel (Only on Ubuntu & Debian):

  5. Install Useful Packages:

    apt-transport-httpsapt-utilsautoconfautomakebash-completionbcbinutilsbinutils-commonbinutils-x86-64-linux-gnubuild-essentialbusyboxca-certificatescroncurldialogepel-releasegnupg2githavegedhtopjqkeyringlibssl-devlibsqlite3-devlibtoollocaleslsb-releasemakenanonet-toolspackagekitpreloadpython3python3-pipqrencodesocatscreensoftware-properties-commonufwunzipvimwgetzip

  6. Enable Packages at Server Boot.

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

  8. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  9. Optimize the SYSCTL Configs:

    • Optimize File System Settings.
    • Optimize Network Core Settings.
    • Optimize SWAP.
    • Optimize TCP and UDP Settings.
    • Optimize UNIX Domain Sockets Settings.
    • Optimize Virtual memory (VM) Settings.
    • Optimize Network Configuration Settings.
    • Optimize the Kernel.
    • Activate BBR(BBRv3 with XanMod).

    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 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 and wget packages are installed on your system:

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

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/hawshemi/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.

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - hawshemi/linux-optimizer: Linux Optimizer · GitHub
Skip to content

Latest commit

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Linux Optimizer

This Bash script automates the optimization of your Linux server.

Notes:

  1. This script is designed for execution on Linux server environments, including VPS, VDS, Dedicated, and Bare Metal systems. It is not recommended for use on Linux desktop environments.
  2. Modifying the kernel (options 1 and 2) may result in removing or resetting some GPU drivers.
  3. Some VMs do not support kernel changes (options 1 and 2). Installing XanMod could cause the VM to break. Please be cautious and test beforehand.

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 Cloudflare-Security DNS servers (1.1.1.2, 1.0.0.2) nameservers 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. Disable Terminal Ads (Only on Ubuntu).

  4. Install XanMod Kernel (Only on Ubuntu & Debian):

  5. Install Useful Packages:

    apt-transport-httpsapt-utilsautoconfautomakebash-completionbcbinutilsbinutils-commonbinutils-x86-64-linux-gnubuild-essentialbusyboxca-certificatescroncurldialogepel-releasegnupg2githavegedhtopjqkeyringlibssl-devlibsqlite3-devlibtoollocaleslsb-releasemakenanonet-toolspackagekitpreloadpython3python3-pipqrencodesocatscreensoftware-properties-commonufwunzipvimwgetzip

  6. Enable Packages at Server Boot.

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

  8. Create & Enable SWAP File:

    • Swap Path: "/swapfile"
    • Swap Size: 2Gb
  9. Optimize the SYSCTL Configs:

    • Optimize File System Settings.
    • Optimize Network Core Settings.
    • Optimize SWAP.
    • Optimize TCP and UDP Settings.
    • Optimize UNIX Domain Sockets Settings.
    • Optimize Virtual memory (VM) Settings.
    • Optimize Network Configuration Settings.
    • Optimize the Kernel.
    • Activate BBR(BBRv3 with XanMod).

    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 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 and wget packages are installed on your system:

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

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/hawshemi/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.

Contributors

Languages