
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux - Category</title>
	<atom:link href="https://evoxt.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://evoxt.com/category/linux/</link>
	<description>High CPU Frequency Virtual Machines at Low Prices</description>
	<lastBuildDate>Wed, 11 Feb 2026 09:45:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://evoxt.com/wp-content/uploads/2021/05/favicon-1.png</url>
	<title>Linux - Category</title>
	<link>https://evoxt.com/category/linux/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Install OpenClaw on Evoxt VPS</title>
		<link>https://evoxt.com/one-click-installation/how-to-install-openclaw-on-evoxt-vps/</link>
		
		<dc:creator><![CDATA[jinyao]]></dc:creator>
		<pubDate>Wed, 11 Feb 2026 09:29:16 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[One-Click Installation]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6515</guid>

					<description><![CDATA[<p>This step‑by‑step guide explains how to install and configure OpenClaw on an Evoxt VPS. It is optimized for beginners, developers, and businesses looking to deploy a self‑hosted AI agent securely and efficiently. Whether you are testing AI automation or running production workloads, Evoxt VPS provides a stable and affordable environment for OpenClaw. Why Run OpenClaw ... <a title="How to Install OpenClaw on Evoxt VPS" class="read-more" href="https://evoxt.com/one-click-installation/how-to-install-openclaw-on-evoxt-vps/" aria-label="More on How to Install OpenClaw on Evoxt VPS">Read more</a></p>
<p>The post <a href="https://evoxt.com/one-click-installation/how-to-install-openclaw-on-evoxt-vps/">How to Install OpenClaw on Evoxt VPS</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p data-pm-slice="1 1 []">This step‑by‑step guide explains how to install and configure <strong>OpenClaw on an Evoxt VPS</strong>. It is optimized for beginners, developers, and businesses looking to deploy a <strong>self‑hosted AI agent securely and efficiently</strong>.</p>
Whether you are testing AI automation or running production workloads, Evoxt VPS provides a stable and affordable environment for OpenClaw.
<div>
<hr />
<h2>Why Run OpenClaw on Evoxt VPS?</h2>
Deploying <a href="https://openclaw.ai/">OpenClaw</a> on Evoxt offers:
<ul data-spread="false">
 	<li>Affordable VM plans</li>
 	<li>Full root access</li>
 	<li>SSD storage</li>
 	<li>Reliable network uptime</li>
 	<li>Support for AI workloads</li>
</ul>
Running OpenClaw on a VPS ensures 24/7 availability without depending on a local computer.

<hr />

</div>
<h2>1. Recommended Evoxt VPS Plan</h2>
For a smooth and stable OpenClaw experience, we recommend using:

<strong>Evoxt VM‑2 or above</strong>

This plan offers balanced CPU and memory resources that are well‑suited for OpenClaw without requiring complex tuning or optimization.

<strong>Why Evoxt VM‑2+ works well with OpenClaw:</strong>
<ul data-spread="false">
 	<li>Consistent VPS performance</li>
 	<li>Sufficient memory for AI workloads</li>
 	<li>Stable environment for long‑running services</li>
</ul>
Can get more information about the <a href="https://evoxt.com/pricing/">VM Plan</a>.
<div>

<hr />

</div>
<h2>2. System Preparation</h2>
Before installing OpenClaw, make sure your Evoxt VPS is fully up to date.
<h3>Update your system</h3>
<pre><code># AlmaLinux / Rocky Linux
sudo dnf update -y

# Ubuntu
sudo apt update &amp;&amp; sudo apt upgrade -y</code></pre>
<h3>Install required system packages</h3>
<pre><code>sudo dnf install -y libatomic tar python3 cmake # RHEL-based (AlmaLinux / Rocky / RHEL)
sudo dnf groupinstall -y "Development Tools" # RHEL-based (AlmaLinux / Rocky / RHEL)
sudo apt install -y libatomic1 build-essential tar python3 cmake #Debian/Ubuntu
</code></pre>
These packages ensure OpenClaw and its dependencies run correctly in a production environment.
<div></div>
<hr />
<h2>3. Install OpenClaw on Evoxt VPS</h2>
Install OpenClaw using the official installation script:
<pre><code>curl -fsSL https://openclaw.ai/install.sh | bash</code></pre>
<div>
<p data-pm-slice="1 1 []">The script will automatically download and configure OpenClaw on your VPS.</p>
Wait until the installation completes successfully.

</div>
<br><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-6530" src="https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-53.png" alt="" width="882" height="891" srcset="https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-53.png 882w, https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-53-297x300.png 297w, https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-53-768x776.png 768w" sizes="(max-width: 882px) 100vw, 882px" />
<hr />

<h2 data-pm-slice="1 1 []">4. OpenClaw Onboarding Process</h2>
After installation, OpenClaw will start an interactive setup in the terminal (TUI mode).
<hr />
<h2>a) Onboarding Mode</h2>
You will be asked to choose between:
<ul data-spread="false">
 	<li><strong>Quick Start</strong> (Recommended for beginners)</li>
 	<li>Manual Configuration (Advanced users)</li>
</ul>
We recommend selecting <strong>Quick Start</strong> to skip complex configuration.

After Quick Start, the terminal will display confirmation messages.

&nbsp;

<br><img decoding="async" class="alignnone size-full wp-image-6526" src="https://evoxt.com/wp-content/uploads/2026/02/Onboarding-mode.png" alt="" width="718" height="295" srcset="https://evoxt.com/wp-content/uploads/2026/02/Onboarding-mode.png 718w, https://evoxt.com/wp-content/uploads/2026/02/Onboarding-mode-300x123.png 300w" sizes="(max-width: 718px) 100vw, 718px" />
<div>

<hr />

</div>
<h2>b) Select the AI Model</h2>
Next, choose the AI model provider.

<br><img decoding="async" class="alignnone size-full wp-image-6525" src="https://evoxt.com/wp-content/uploads/2026/02/AI-model.png" alt="" width="335" height="374" srcset="https://evoxt.com/wp-content/uploads/2026/02/AI-model.png 335w, https://evoxt.com/wp-content/uploads/2026/02/AI-model-269x300.png 269w" sizes="(max-width: 335px) 100vw, 335px" />

<br>If using <strong>Google Gemini</strong>:
<ol start="1" data-spread="false">
 	<li>Visit Google AI Studio</li>
 	<li>Generate a Gemini API key</li>
 	<li>Paste the key into the terminal when prompted</li>
</ol>
After entering your API key, OpenClaw will display available model options based on your subscription.

Select the preferred model.

<br><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6523" src="https://evoxt.com/wp-content/uploads/2026/02/Model-Plan.png" alt="" width="605" height="605" srcset="https://evoxt.com/wp-content/uploads/2026/02/Model-Plan.png 605w, https://evoxt.com/wp-content/uploads/2026/02/Model-Plan-300x300.png 300w, https://evoxt.com/wp-content/uploads/2026/02/Model-Plan-150x150.png 150w" sizes="auto, (max-width: 605px) 100vw, 605px" />

&nbsp;
<div>

<hr />

</div>
<h2>c) Select the Chat Interface Channel</h2>
OpenClaw supports multiple chat platforms, including:
<ul data-spread="false">
 	<li>Telegram</li>
 	<li>WhatsApp</li>
 	<li>Discord</li>
</ul>
You may configure a chat interface during onboarding or skip it and configure later.

<br><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6522" src="https://evoxt.com/wp-content/uploads/2026/02/Select-channel.png" alt="" width="384" height="410" srcset="https://evoxt.com/wp-content/uploads/2026/02/Select-channel.png 384w, https://evoxt.com/wp-content/uploads/2026/02/Select-channel-281x300.png 281w" sizes="auto, (max-width: 384px) 100vw, 384px" />
<div>

<hr />

</div>
<h2>d) Setting Up Skills</h2>
OpenClaw supports “skills,” which are tools that allow the AI agent to perform specific tasks.

When prompted:
<ul data-spread="false">
 	<li>Select <strong>Yes</strong> to enable skills</li>
 	<li>Choose <strong>npm</strong> as the preferred Node manager</li>
</ul>
If you do not want to install skills now:
<ul data-spread="false">
 	<li>Press the spacebar to select <strong>Skip for now</strong></li>
 	<li>Press Enter to continue</li>
</ul>
Skills can be configured later.

<br><img loading="lazy" decoding="async" class="alignnone size-large wp-image-6532" src="https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-57-677x1024.png" alt="" width="677" height="1024" srcset="https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-57-677x1024.png 677w, https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-57-198x300.png 198w, https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-57.png 752w" sizes="auto, (max-width: 677px) 100vw, 677px" />
<div>

<hr />

</div>
<h2>e) Configure Additional API Keys</h2>
OpenClaw may ask for additional third‑party API keys.

If you do not have any:

Select <strong>No</strong> to skip each option.

<br><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6521" src="https://evoxt.com/wp-content/uploads/2026/02/Config-API-Keys-for-Your-bot.png" alt="" width="456" height="416" srcset="https://evoxt.com/wp-content/uploads/2026/02/Config-API-Keys-for-Your-bot.png 456w, https://evoxt.com/wp-content/uploads/2026/02/Config-API-Keys-for-Your-bot-300x274.png 300w" sizes="auto, (max-width: 456px) 100vw, 456px" />
<div>

<hr />

</div>
<h2>f) Enable Hooks</h2>
Hooks provide additional automation features such as:
<ul data-spread="false">
 	<li>boot-md (Run Boot.md at startup)</li>
 	<li>command-logger (Centralized command logging)</li>
 	<li>session-memory (Session context saving)</li>
</ul>
For initial setup, you may select <strong>Skip for now</strong>.

Hooks can be enabled later through configuration.

<br><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6531" src="https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-57_1.png" alt="" width="612" height="284" srcset="https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-57_1.png 612w, https://evoxt.com/wp-content/uploads/2026/02/2026-02-11_16-57_1-300x139.png 300w" sizes="auto, (max-width: 612px) 100vw, 612px" />

&nbsp;
<div>

<hr />

</div>
<h2 data-pm-slice="1 1 []">5. How to Run OpenClaw</h2>
After setup is complete, OpenClaw launches its <strong>TUI (Terminal User Interface)</strong>.
<h3>Hatch Mode (Recommended)</h3>
Inside the TUI, select <strong>Hatch</strong>.

With Hatch mode, you can:
<ul data-spread="false">
 	<li>Use the AI bot directly in a <strong>GUI‑style interface</strong>, or</li>
 	<li>Launch the <strong>OpenClaw Web UI</strong> for browser‑based interaction</li>
</ul>
This makes OpenClaw extremely beginner‑friendly while remaining powerful for advanced users.

<br><img loading="lazy" decoding="async" class="alignnone size-large wp-image-6520" src="https://evoxt.com/wp-content/uploads/2026/02/TUI-testing-1024x186.png" alt="" width="1024" height="186" srcset="https://evoxt.com/wp-content/uploads/2026/02/TUI-testing-1024x186.png 1024w, https://evoxt.com/wp-content/uploads/2026/02/TUI-testing-300x54.png 300w, https://evoxt.com/wp-content/uploads/2026/02/TUI-testing-768x139.png 768w, https://evoxt.com/wp-content/uploads/2026/02/TUI-testing.png 1262w" sizes="auto, (max-width: 1024px) 100vw, 1024px" />
<div>

<hr />

</div>
<h2>6. Access OpenClaw Web GUI via SSH Tunnel</h2>
To securely access the OpenClaw Web UI from your local machine, create an SSH tunnel:
<pre><code>ssh -N -L 18789:127.0.0.1:18789 root@YOUR_SERVER_IP</code></pre>
<br><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6518" src="https://evoxt.com/wp-content/uploads/2026/02/Web-dashboard.png" alt="" width="765" height="316" srcset="https://evoxt.com/wp-content/uploads/2026/02/Web-dashboard.png 765w, https://evoxt.com/wp-content/uploads/2026/02/Web-dashboard-300x124.png 300w" sizes="auto, (max-width: 765px) 100vw, 765px" />

<br>After entering your SSH password, open the URL shown by OpenClaw in your browser.

If the page loads successfully, you now have full access to the <strong>OpenClaw Web GUI running on Evoxt VPS</strong>.

<br><img loading="lazy" decoding="async" class="alignnone wp-image-6519" src="https://evoxt.com/wp-content/uploads/2026/02/Web-Interface-1024x1017.png" alt="" width="652" height="648" srcset="https://evoxt.com/wp-content/uploads/2026/02/Web-Interface-1024x1017.png 1024w, https://evoxt.com/wp-content/uploads/2026/02/Web-Interface-300x298.png 300w, https://evoxt.com/wp-content/uploads/2026/02/Web-Interface-150x150.png 150w, https://evoxt.com/wp-content/uploads/2026/02/Web-Interface-768x763.png 768w, https://evoxt.com/wp-content/uploads/2026/02/Web-Interface.png 1279w" sizes="auto, (max-width: 652px) 100vw, 652px" />
<div>

<hr />

</div>
<h2 data-pm-slice="1 1 []">7. OpenClaw Commands &amp; Documentation</h2>
If you are unsure about commands, run:
<pre><code>openclaw help</code></pre>
This displays available CLI commands.

<br><img loading="lazy" decoding="async" class="alignnone size-large wp-image-6527" src="https://evoxt.com/wp-content/uploads/2026/02/clawbot-help-817x1024.png" alt="" width="817" height="1024" srcset="https://evoxt.com/wp-content/uploads/2026/02/clawbot-help-817x1024.png 817w, https://evoxt.com/wp-content/uploads/2026/02/clawbot-help-239x300.png 239w, https://evoxt.com/wp-content/uploads/2026/02/clawbot-help-768x962.png 768w, https://evoxt.com/wp-content/uploads/2026/02/clawbot-help.png 1049w" sizes="auto, (max-width: 817px) 100vw, 817px" />

<br>For advanced configuration and integrations, refer to the <a href="https://docs.openclaw.ai">official documentation</a>.

You will find:
<ul data-spread="false">
 	<li>Complete CLI references</li>
 	<li>Web UI guides</li>
 	<li>API integration examples</li>
 	<li>Advanced configuration options</li>
</ul>
<div>

<hr />

</div>
<h2>Security Best Practices for OpenClaw on Evoxt VPS</h2>
For production deployments, consider the following:
<ul data-spread="false">
 	<li>Create a dedicated non‑root user to run OpenClaw</li>
 	<li>Avoid mixing sensitive system files with OpenClaw‑managed directories</li>
 	<li>Grant minimal permissions to the AI agent</li>
 	<li>Avoid connecting OpenClaw to public or unmoderated shared chat groups</li>
 	<li>Keep your VPS updated regularly</li>
 	<li>Secure SSH access (disable password login if possible)</li>
</ul>
Security should always be prioritized when deploying AI automation tools.

&nbsp;
<h2 id="header-12">Quick Commands</h2>
<pre><code>sudo dnf install -y libatomic tar python3 cmake # RHEL-based (AlmaLinux / Rocky / RHEL) 
sudo dnf groupinstall -y "Development Tools"# RHEL-based (AlmaLinux / Rocky / RHEL) 
sudo apt install -y libatomic1 build-essential tar python3 cmake #Debian/Ubuntu
curl -fsSL https://openclaw.ai/install.sh | bash
</code></pre>
&nbsp;
<div>

<hr />

</div>
<h2>Conclusion</h2>
Running <strong>OpenClaw on an Evoxt VPS</strong> is a reliable and scalable way to deploy self‑hosted AI solutions.

With Evoxt’s stable VM infrastructure and OpenClaw’s intuitive TUI and Web UI, you can move from installation to production quickly and efficiently.

Whether for development, internal automation, or AI‑powered services, the combination of <strong>Evoxt + OpenClaw</strong> provides a powerful foundation for modern AI workloads.
<div>

<hr />

</div>
For more Evoxt VPS guides, visit <a href="https://evoxt.com/category/">Evoxt Tutorials.</a><p>The post <a href="https://evoxt.com/one-click-installation/how-to-install-openclaw-on-evoxt-vps/">How to Install OpenClaw on Evoxt VPS</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Set Up Startup Scripts with systemd</title>
		<link>https://evoxt.com/linux/how-to-set-up-startup-scripts-with-systemd/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Wed, 05 Nov 2025 09:08:05 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6490</guid>

					<description><![CDATA[<p>This guide explains how to set up Linux startup scripts using systemd. It shows how to automatically run commands when your server starts, optionally run scripts during shutdown, and manage service behavior. This method works on Linux systems such as Ubuntu, Debian, AlmaLinux, Rocky Linux, and RHEL. Step 1: Create the Startup Script Systemd runs ... <a title="How to Set Up Startup Scripts with systemd" class="read-more" href="https://evoxt.com/linux/how-to-set-up-startup-scripts-with-systemd/" aria-label="More on How to Set Up Startup Scripts with systemd">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/how-to-set-up-startup-scripts-with-systemd/">How to Set Up Startup Scripts with systemd</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[This guide explains how to set up Linux startup scripts using systemd. It shows how to automatically run commands when your server starts, optionally run scripts during shutdown, and manage service behavior. This method works on Linux systems such as Ubuntu, Debian, AlmaLinux, Rocky Linux, and RHEL.

<hr />

<h2>Step 1: Create the Startup Script</h2>
Systemd runs scripts at boot using service units. First, create a script that performs the startup actions you want.
<pre>sudo nano /usr/local/bin/startup.sh
</pre>
Add the following lines:
<pre>#!/bin/bash
echo "Startup script executed at $(date)"
# Add your startup commands below
</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6498" src="https://evoxt.com/wp-content/uploads/2025/11/script.png" alt="" width="1090" height="508" srcset="https://evoxt.com/wp-content/uploads/2025/11/script.png 1090w, https://evoxt.com/wp-content/uploads/2025/11/script-300x140.png 300w, https://evoxt.com/wp-content/uploads/2025/11/script-1024x477.png 1024w, https://evoxt.com/wp-content/uploads/2025/11/script-768x358.png 768w" sizes="auto, (max-width: 1090px) 100vw, 1090px" />
<pre>sudo chmod +x /usr/local/bin/startup.sh
</pre>
<strong>Tips:</strong>
<ul>
 	<li>Always use the full path to your script (e.g. <code>/usr/local/bin/startup.sh</code>).</li>
 	<li>Store your script in <code>/usr/local/bin</code> for easy access.</li>
 	<li>Make sure the script is executable using <code>chmod +x</code>.</li>
</ul>

<hr />

<h2>Step 2: Create a systemd Service</h2>
Now, create a service file that runs the script on boot.
<pre>sudo nano /etc/systemd/system/startup.service
</pre>
Add the following content:
<pre>[Unit]
Description=Run startup script at boot
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/startup.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6499" src="https://evoxt.com/wp-content/uploads/2025/11/systemd-service.png" alt="" width="1089" height="493" srcset="https://evoxt.com/wp-content/uploads/2025/11/systemd-service.png 1089w, https://evoxt.com/wp-content/uploads/2025/11/systemd-service-300x136.png 300w, https://evoxt.com/wp-content/uploads/2025/11/systemd-service-1024x464.png 1024w, https://evoxt.com/wp-content/uploads/2025/11/systemd-service-768x348.png 768w" sizes="auto, (max-width: 1089px) 100vw, 1089px" />
<pre>sudo systemctl daemon-reload
sudo systemctl enable --now startup.service
</pre>
Systemd will now execute your script automatically when the VPS boots.

<hr />

<h2>Step 3: Add a Shutdown Script (Optional)</h2>
Systemd can also run a command when the system shuts down or when a service stops. Repeat steps 1 and 2, but use<code>ExecStop</code> instead of <code>ExecStart</code>to your service configuration.
<pre>[Service]
ExecStop=/usr/local/bin/stop.sh
</pre>
This is useful for saving data or cleaning up temporary files during shutdown.

<hr />

<h2>Step 4: Monitor and Troubleshoot</h2>
You can monitor service logs and verify if the script ran successfully:
<pre># Check status
sudo systemctl status startup.service

# View logs
sudo journalctl -u startup.service -n 10
</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6497" src="https://evoxt.com/wp-content/uploads/2025/11/check.png" alt="" width="1047" height="322" srcset="https://evoxt.com/wp-content/uploads/2025/11/check.png 1047w, https://evoxt.com/wp-content/uploads/2025/11/check-300x92.png 300w, https://evoxt.com/wp-content/uploads/2025/11/check-1024x315.png 1024w, https://evoxt.com/wp-content/uploads/2025/11/check-768x236.png 768w" sizes="auto, (max-width: 1047px) 100vw, 1047px" />

<p>Use <code>sudo systemd-analyze verify /etc/systemd/system/startup.service</code> to check for syntax issues in your service file.

<hr />

<h2>Conclusion</h2>
Using systemd for startup scripts is the most reliable and modern way to automate tasks on Linux. It ensures your scripts run at boot, can restart automatically, and provides centralized logging for easy troubleshooting. Optional shutdown hooks make it easy to clean up resources safely.

<p>By following these steps, you can confidently manage startup, background, and shutdown behavior on your Evoxt Linux VPS with full control and stability.

<hr />

For more Evoxt VPS guides, visit <a href="https://evoxt.com/category/" target="_blank" rel="noopener">Evoxt Tutorials</a>. If you need assistance, <a href="https://console.evoxt.com/submitticket.php" target="_blank" rel="noopener">open a support ticket</a>.<p>The post <a href="https://evoxt.com/linux/how-to-set-up-startup-scripts-with-systemd/">How to Set Up Startup Scripts with systemd</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Monitor Internet Traffic on Linux VPS</title>
		<link>https://evoxt.com/linux/how-to-monitor-internet-traffic-on-linux-vps/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Wed, 29 Oct 2025 09:02:07 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6430</guid>

					<description><![CDATA[<p>If you want to monitor your Linux VPS's internet traffic, vnStat is a lightweight and efficient tool for tracking network bandwidth without slowing down your system. Whether you’re hosting on Evoxt VPS or another provider, this guide shows you how to set up vnStat, view monthly usage, and configure custom billing cycles. What is vnStat ... <a title="How to Monitor Internet Traffic on Linux VPS" class="read-more" href="https://evoxt.com/linux/how-to-monitor-internet-traffic-on-linux-vps/" aria-label="More on How to Monitor Internet Traffic on Linux VPS">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/how-to-monitor-internet-traffic-on-linux-vps/">How to Monitor Internet Traffic on Linux VPS</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[If you want to monitor your Linux VPS's internet traffic, vnStat is a lightweight and efficient tool for tracking network bandwidth without slowing down your system. Whether you’re hosting on <a href="https://evoxt.com/" target="_blank" rel="noopener">Evoxt VPS</a> or another provider, this guide shows you how to set up vnStat, view monthly usage, and configure custom billing cycles.

<hr />

<h2>What is vnStat and Why Monitor Traffic on Your Linux VPS?</h2>
vnStat is a console-based network traffic monitor that records incoming and outgoing data per interface. It’s ideal for VPS owners who want to:
<p><ul>
 	<li>Track monthly bandwidth usage per interface.</li>
 	<li>Monitor data consumption over time for accurate billing and performance monitoring.</li>
 	<li>Detect abnormal traffic or possible misuse.</li>
</ul></p>
Unlike packet-capture tools, vnStat doesn’t impact performance. It simply reads statistics from the Linux kernel network counters, making it suitable for any VPS running Ubuntu, Debian, AlmaLinux, Rocky, or RHEL.

<hr />

<h2>Step 1: Install &amp; enable vnStat</h2>
<pre># Debian / Ubuntu
sudo apt install vnstat -y

# RHEL-based (AlmaLinux / Rocky / RHEL)
sudo dnf install vnstat -y

# Enable and check the service (daemon creates DB automatically)
sudo systemctl enable --now vnstat
sudo systemctl status vnstat</pre>

<hr />

<h2>Step 2: View monthly usage</h2>
<pre># Monthly summary
vnstat -m

#To select interface
vnstat -m -i eth0

# Daily / hourly if needed
vnstat -d
vnstat -h
</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6455" src="https://evoxt.com/wp-content/uploads/2025/10/vnstat-m.png" alt="" width="690" height="172" srcset="https://evoxt.com/wp-content/uploads/2025/10/vnstat-m.png 690w, https://evoxt.com/wp-content/uploads/2025/10/vnstat-m-300x75.png 300w" sizes="auto, (max-width: 690px) 100vw, 690px" /></p>

Example output will display received (rx), transmitted (tx), and total data per month.

<hr />

<h2>Step 3: Set custom monthly rotation date (match billing cycle)</h2>
To reset monthly counters on a date other than the 1st, edit vnStat’s config and set <code>MonthRotate</code>:
<pre>sudo nano /etc/vnstat.conf
</pre>
<pre>MonthRotate 18
</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6454" src="https://evoxt.com/wp-content/uploads/2025/10/MonthRotate.png" alt="" width="1105" height="579" srcset="https://evoxt.com/wp-content/uploads/2025/10/MonthRotate.png 1105w, https://evoxt.com/wp-content/uploads/2025/10/MonthRotate-300x157.png 300w, https://evoxt.com/wp-content/uploads/2025/10/MonthRotate-1024x537.png 1024w, https://evoxt.com/wp-content/uploads/2025/10/MonthRotate-768x402.png 768w" sizes="auto, (max-width: 1105px) 100vw, 1105px" /></p>

After editing, restart the service to apply:
<pre>sudo systemctl restart vnstat
</pre>
With <code>MonthRotate 18</code>, vnStat treats the statistics window as “billing months” that end on the 18th and reset on the 19th.

<hr />

<h2>Optional: Reset or delete statistics</h2>
<pre># remove DB for an interface (example: eth0)
sudo vnstat --remove --force -i eth0
sudo vnstat --add -i eth0

# OR delete DB file directly
sudo rm -f /var/lib/vnstat/vnstat.db

sudo systemctl restart vnstat
</pre>

<hr />

<h2>Quick Commands</h2>
<pre># Install &amp; enable

sudo apt install vnstat -y    #Debian / Ubuntu 
sudo dnf install vnstat -y    # RHEL-based (AlmaLinux / Rocky / RHEL) 
sudo systemctl enable --now vnstat

# Result
vnstat

# Change monthly rotate date
sudo nano /etc/vnstat.conf

MonthRotate 10

sudo systemctl restart vnstat</pre>

<hr />

<h2>Conclusion</h2>
<p>Using vnStat to monitor monthly internet traffic on your Linux VPS helps you understand bandwidth usage, avoid unexpected overages, and identify abnormal traffic.

<p>If you see unexpected usage after enabling vnStat, check for open services, review firewall rules, or <a href="https://console.evoxt.com/submitticket.php" target="_blank" rel="noopener">open a support ticket</a> with Evoxt for assistance.

<p>For more Evoxt VPS guides, visit <a href="https://evoxt.com/category/">Evoxt Tutorials.</a><p>The post <a href="https://evoxt.com/linux/how-to-monitor-internet-traffic-on-linux-vps/">How to Monitor Internet Traffic on Linux VPS</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux VPS Firewall Setup Guide (UFW &#038; firewalld)</title>
		<link>https://evoxt.com/linux/linux-vps-firewall-setup-guide-ufw-firewalld/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Thu, 23 Oct 2025 09:13:37 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6373</guid>

					<description><![CDATA[<p>This guide covers a concise Linux VPS firewall setup for Evoxt customers, including how to install the firewall tools (UFW and firewalld), allow custom ports, and remove or deny rules safely. Follow these steps to avoid locking yourself out and to manage runtime vs permanent rules correctly. Why this matters Allowing only required ports reduces ... <a title="Linux VPS Firewall Setup Guide (UFW &#38; firewalld)" class="read-more" href="https://evoxt.com/linux/linux-vps-firewall-setup-guide-ufw-firewalld/" aria-label="More on Linux VPS Firewall Setup Guide (UFW &#38; firewalld)">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/linux-vps-firewall-setup-guide-ufw-firewalld/">Linux VPS Firewall Setup Guide (UFW &amp; firewalld)</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[This guide covers a concise <strong>Linux VPS firewall setup</strong> for Evoxt customers, including how to install the firewall tools (UFW and firewalld), allow custom ports, and remove or deny rules safely. Follow these steps to avoid locking yourself out and to manage runtime vs permanent rules correctly.

<hr />

<h2>Why this matters</h2>
<ul>
 	<li>Allowing only required ports reduces exposure to attacks.</li>
 	<li>Knowing how to remove or deny a port prevents unauthorized access.</li>
 	<li>Understanding runtime vs permanent rules avoids unexpected behavior after reboot.</li>
</ul>

<hr />

<h2>Quick safety checklist (always do this first)</h2>
<ul>
 	<li>Allow your SSH port before enabling the firewall (or you may lock yourself out).</li>
 	<li>Keep a separate console/VNC session or another working SSH session open while testing.</li>
 	<li>Prefer testing with a non-root user if possible.</li>
</ul>

<hr />

<h2>UFW (Ubuntu / Debian)</h2>
<h3>Install &amp; enable</h3>
<pre>sudo apt update
sudo apt install ufw -y

# ensure SSH allowed first:
sudo ufw allow ssh

# enable firewall
sudo ufw enable
</pre>
<h3>Allow a custom port (example: 12345)</h3>
Allow TCP port 12345:
<pre>sudo ufw allow 12345/tcp
</pre>
Allow UDP port 12345:
<pre>sudo ufw allow 12345/udp
</pre>
Allow a port from a specific IP only (example: allow 12345 from 203.0.113.5):
<pre>sudo ufw allow from 203.0.113.5 to any port 12345 proto tcp
</pre>
<h3>Check rules and status</h3>
<pre>sudo ufw status numbered
sudo ufw status verbose</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6419" src="https://evoxt.com/wp-content/uploads/2025/10/ufw.png" alt="" width="722" height="319" srcset="https://evoxt.com/wp-content/uploads/2025/10/ufw.png 722w, https://evoxt.com/wp-content/uploads/2025/10/ufw-300x133.png 300w" sizes="auto, (max-width: 722px) 100vw, 722px" /></p>
<h3>Remove or deny a rule</h3>
Remove a previously added allow by specifying the rule (recommended to use numbered deletion):
<pre># see rule numbers
sudo ufw status numbered

# delete rule by number (example deletes rule #3)
sudo ufw delete 3
</pre>
Or delete by exact rule text:
<pre>sudo ufw delete allow 12345/tcp
</pre>
To explicitly block (deny) a port:
<pre>sudo ufw deny 12345/tcp
</pre>
<h3>Notes about UFW</h3>
<ul>
 	<li>UFW applies rules immediately. <code>ufw enable</code> persists across reboots.</li>
 	<li>Use <code>sudo ufw logging on</code> to view blocked attempts in <code>/var/log/ufw.log</code>.</li>
</ul>

<hr />

<h2>firewalld (AlmaLinux / Rocky / CentOS / RHEL)</h2>
<h3>Install &amp; enable</h3>
<pre>sudo dnf install firewalld -y
sudo systemctl enable --now firewalld
</pre>
<h3>Zone basics</h3>
firewalld uses zones (default is usually <code>public</code>). You can add ports/services to the active zone or to a specific zone.
<pre># show default zone
sudo firewall-cmd --get-default-zone

# list active zones &amp; settings
sudo firewall-cmd --list-all
</pre>
<h3>Allow a custom port (example: 12345)</h3>
Permanent (persists after reboot):
<pre>sudo firewall-cmd --permanent --add-port=12345/tcp
sudo firewall-cmd --reload
</pre>
Runtime only (temporarily persists until next reload/reboot):
<pre>sudo firewall-cmd --add-port=12345/tcp
</pre>
<h3>Allow HTTPS (example)</h3>
<pre>sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
</pre>
<h3>Check ports and services</h3>
<pre>sudo firewall-cmd --list-ports
sudo firewall-cmd --list-services
sudo firewall-cmd --list-all</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6418" src="https://evoxt.com/wp-content/uploads/2025/10/firewalld.png" alt="" width="482" height="290" srcset="https://evoxt.com/wp-content/uploads/2025/10/firewalld.png 482w, https://evoxt.com/wp-content/uploads/2025/10/firewalld-300x180.png 300w" sizes="auto, (max-width: 482px) 100vw, 482px" /></p>
<h3>Remove or deny a port</h3>
Remove a permanently added port:
<pre>sudo firewall-cmd --permanent --remove-port=12345/tcp
sudo firewall-cmd --reload
</pre>
Remove a runtime-only port:
<pre>sudo firewall-cmd --remove-port=12345/tcp
</pre>
Remove a service (e.g., HTTPS):
<pre>sudo firewall-cmd --permanent --remove-service=https
sudo firewall-cmd --reload
</pre>
<h3>Notes about firewalld</h3>
<ul>
 	<li>Use <code>--permanent</code> to persist across reboots; otherwise rules are runtime-only.</li>
 	<li>Use zones to apply different policies to interfaces or networks.</li>
</ul>

<hr />

<h2>Testing your port rules (from another machine)</h2>
Use <code>nc</code> (netcat) to test TCP ports:
<pre># test port 12345
nc -zv YOUR-SERVER-IP 12345
</pre>
<p>Result meanings:
<ul>
 	<li><code>Connection succeeded</code> — port open &amp; allowed</li>
 	<li><code>Connection refused</code> — service not listening on that port</li>
 	<li><code>Connection timed out</code> — port likely filtered/blocked by firewall or network-level filter</li>
</ul></p>
Check UFW logs if UFW is expected to block:
<pre>sudo ufw logging on
sudo tail -f /var/log/ufw.log
</pre>
For firewalld, enable denied logging and check the journal:
<pre>sudo firewall-cmd --set-log-denied=all
sudo journalctl -f -u firewalld
</pre>

<hr />

<h2>Quick commands</h2>
<h3>UFW</h3>
<pre>sudo apt install ufw -y
sudo ufw allow ssh
sudo ufw enable

# allow custom TCP/UDP port
sudo ufw allow 12345/tcp
sudo ufw allow 12345/udp

# allow from specific IP
sudo ufw allow from 203.0.113.5 to any port 12345 proto tcp

# remove by rule number
sudo ufw status numbered
sudo ufw delete [number]

# delete by rule
sudo ufw delete allow 12345/tcp

# explicitly deny
sudo ufw deny 12345/tcp

# status
sudo ufw status verbose
</pre>
<h3>firewalld</h3>
<pre>sudo dnf install firewalld -y
sudo systemctl enable --now firewalld

# allow custom TCP port permanently
sudo firewall-cmd --permanent --add-port=12345/tcp
sudo firewall-cmd --reload

# allow runtime-only
sudo firewall-cmd --add-port=12345/tcp

# remove permanent port
sudo firewall-cmd --permanent --remove-port=12345/tcp
sudo firewall-cmd --reload

# allow a service (HTTPS)
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# list rules
sudo firewall-cmd --list-ports
sudo firewall-cmd --list-services
</pre>

<hr />

<h2>Further reading &amp; support</h2>
<ul>
 	<li><a href="https://evoxt.com/category/">More Evoxt VPS guides</a></li>
 	<li><a href="https://console.evoxt.com/submitticket.php" target="_blank" rel="noopener">Open a support ticket</a> if you need help</li>
</ul><p>The post <a href="https://evoxt.com/linux/linux-vps-firewall-setup-guide-ufw-firewalld/">Linux VPS Firewall Setup Guide (UFW &amp; firewalld)</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Enable SSH 2FA on Linux</title>
		<link>https://evoxt.com/linux/how-to-enable-ssh-2fa-on-linux/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Thu, 16 Oct 2025 09:37:02 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6365</guid>

					<description><![CDATA[<p>Securing your Evoxt VPS is essential, and enabling Two-Factor Authentication (2FA) for SSH is one of the most effective ways to prevent unauthorized access. This guide explains how to enable SSH 2FA on Linux, covering major distributions like Ubuntu, Debian, and RHEL-based systems (including AlmaLinux, Rocky Linux, and CentOS). Why Enable SSH 2FA on Linux? ... <a title="How to Enable SSH 2FA on Linux" class="read-more" href="https://evoxt.com/linux/how-to-enable-ssh-2fa-on-linux/" aria-label="More on How to Enable SSH 2FA on Linux">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/how-to-enable-ssh-2fa-on-linux/">How to Enable SSH 2FA on Linux</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[Securing your Evoxt VPS is essential, and enabling Two-Factor Authentication (2FA) for SSH is one of the most effective ways to prevent unauthorized access. This guide explains how to enable SSH 2FA on Linux, covering major distributions like Ubuntu, Debian, and RHEL-based systems (including AlmaLinux, Rocky Linux, and CentOS).

<hr />

<h2>Why Enable SSH 2FA on Linux?</h2>
Adding 2FA to SSH provides an extra layer of security for your VPS. It prevents brute-force attacks, works with TOTP apps like Google Authenticator or Authy, and is compatible with both password and key-based logins.

<hr />

<h2>Step 1: Install Google Authenticator Module</h2>
First, install the required package:
<pre># Debian/Ubuntu
sudo apt update
sudo apt install libpam-google-authenticator -y

# RHEL
sudo dnf install epel-release -y
sudo dnf install google-authenticator -y
</pre>

<hr />

<h2>Step 2: Set Up 2FA for Your User</h2>
Run the setup tool and follow the prompts:
<pre>google-authenticator
</pre>
Scan the QR code using a TOTP app (Google Authenticator, Authy, etc.) and answer <code>yes</code> to all prompts. This generates a <code>.google_authenticator</code> file in your home directory.

<p><strong>QR code not showing?</strong> Install <code>qrencode</code> (<code>sudo apt install libqrencode3</code> or <code>sudo dnf install qrencode</code>).</p>

<img loading="lazy" decoding="async" class="alignnone size-full wp-image-6368" src="https://evoxt.com/wp-content/uploads/2025/10/Google-auth.png" alt="" width="1215" height="1182" srcset="https://evoxt.com/wp-content/uploads/2025/10/Google-auth.png 1215w, https://evoxt.com/wp-content/uploads/2025/10/Google-auth-300x292.png 300w, https://evoxt.com/wp-content/uploads/2025/10/Google-auth-1024x996.png 1024w, https://evoxt.com/wp-content/uploads/2025/10/Google-auth-768x747.png 768w" sizes="auto, (max-width: 1215px) 100vw, 1215px" />

<hr />

<h2>Step 3: Configure PAM for SSH</h2>
Edit the PAM configuration file and add the Google Authenticator line:
<pre>sudo nano /etc/pam.d/sshd
</pre>
Add this line at the top:
<pre>auth required pam_google_authenticator.so</pre>
<strong>nano not found?</strong> Install it with <code>sudo apt install nano</code> or <code>sudo yum install nano</code>.

<hr />

<h2>Step 4: Update SSH Configuration</h2>
Edit your SSH configuration file:
<pre>
#Ubuntu/Debian/RHEL
sudo nano /etc/ssh/sshd_config

#RHEL 9+ (AlmaLinux 9+, Rocky 9+)
sudo nano /etc/ssh/sshd_config.d/50-redhat.conf</pre>
Ensure the following lines are present:
<pre>ChallengeResponseAuthentication yes
UsePAM yes
KbdInteractiveAuthentication yes
</pre>

<hr />

<h2>Step 5: Restart SSH Service</h2>
Restart the SSH service to apply changes:
<pre># Debian/Ubuntu
sudo systemctl restart ssh

# RHEL
sudo systemctl restart sshd
</pre>

<hr />

<h2>Step 6: Test SSH 2FA Login</h2>
Log out, then log back in to your server:
<pre>ssh USERNAME@IP
</pre>
After entering your password or SSH key, you'll be prompted to enter the 2FA verification code from your authenticator app. If successful, you’ll be logged in securely.

<img loading="lazy" decoding="async" class="alignnone size-full wp-image-6369" src="https://evoxt.com/wp-content/uploads/2025/10/login.png" alt="" width="400" height="57" srcset="https://evoxt.com/wp-content/uploads/2025/10/login.png 400w, https://evoxt.com/wp-content/uploads/2025/10/login-300x43.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" />

<hr />

<h2>(Optional) Remove SSH 2FA on Linux</h2>
<p>If you want to disable SSH Two-Factor Authentication (2FA) on your Linux VPS, follow these steps carefully. Keep a console or secondary SSH session open to avoid locking yourself out during the process.</p>
<p><b>Remove PAM Google Authenticator Line</b></p>
Delete the line that enables Google Authenticator in the PAM SSH configuration file:
<pre>sudo sed -i '/pam_google_authenticator.so/d' /etc/pam.d/sshd
</pre>
<p><b>Revert SSH Configuration</b></p>
Reset SSH settings to disable 2FA prompts:

<pre>
#Ubuntu/Debian/RHEL
sudo sed -i 's/^#*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#*KbdInteractiveAuthentication.*/KbdInteractiveAuthentication no/' /etc/ssh/sshd_config

#RHEL 9+ (AlmaLinux 9+, Rocky 9+)
sudo sed -i 's/^#*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config.d/50-redhat.conf
sudo sed -i 's/^#*KbdInteractiveAuthentication.*/KbdInteractiveAuthentication no/' /etc/ssh/sshd_config.d/50-redhat.conf
</pre>
<p><b>Test SSH Configuration and Restart</b></p>
Before applying the changes, validate the SSH configuration:
<pre>sudo sshd -t
</pre>
If no errors appear, restart SSH:
<pre>sudo systemctl restart sshd
</pre>
<b>Important Notes</b>
<ul>
 	<li>Keep <code>UsePAM</code> enabled unless you are sure it’s not needed by other services.</li>
 	<li>Always test logins in a separate SSH session before closing your active one.</li>
</ul>

<hr />

<h2>Quick Commands</h2>
<pre># Install required packages
# Ubuntu / Debian
sudo apt update
sudo apt install libpam-google-authenticator libqrencode3 -y

# RHEL-based (AlmaLinux, Rocky, CentOS)
sudo dnf install epel-release -y
sudo dnf install google-authenticator qrencode -y

# Run setup for your user (scan QR code)
google-authenticator

# Add PAM module
sudo sed -i '$a auth required pam_google_authenticator.so' /etc/pam.d/sshd

# Update SSH config (Ubuntu/Debian &amp; CentOS 7)
sudo sed -i '/^#\?ChallengeResponseAuthentication.* /d' /etc/ssh/sshd_config
sudo sed -i '$a ChallengeResponseAuthentication yes' /etc/ssh/sshd_config
sudo sed -i 's/^#*UsePAM.*/UsePAM yes/' /etc/ssh/sshd_config
sudo sed -i 's/^#*KbdInteractiveAuthentication.*/KbdInteractiveAuthentication yes/' /etc/ssh/sshd_config
# AlmaLinux / Rocky / RHEL 9+ SSH config
sudo sed -i 's/^#*ChallengeResponseAuthentication.*/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config.d/50-redhat.conf
sudo sed -i 's/^#*UsePAM.*/UsePAM yes/' /etc/ssh/sshd_config.d/50-redhat.conf
sudo sed -i 's/^#*KbdInteractiveAuthentication.*/KbdInteractiveAuthentication yes/' /etc/ssh/sshd_config.d/50-redhat.conf
sudo grep -q '^KbdInteractiveAuthentication' /etc/ssh/sshd_config.d/50-redhat.conf || sudo sed -i '$a KbdInteractiveAuthentication yes' /etc/ssh/sshd_config.d/50-redhat.conf

# Restart SSH
# Ubuntu / Debian
sudo systemctl restart ssh
# RHEL-based
sudo systemctl restart sshd
</pre>

<hr />

<h2>Conclusion</h2>
<p>By enabling SSH 2FA on Linux, you add a powerful security layer to your Evoxt VPS. Whether you're managing websites, Nextcloud, or critical infrastructure, this step greatly reduces the risk of unauthorized access.</p>

<p>For added security, you can also <a href="https://evoxt.com/linux/how-to-set-up-ssh-keys-on-linux/" target="_blank" rel="noopener">set up SSH keys</a> in conjunction with 2FA.</p>

<p>Need help? <a href="https://console.evoxt.com/submitticket.php" target="_blank" rel="noopener">Open a support ticket</a> and Evoxt's support team will assist you.</p><p>The post <a href="https://evoxt.com/linux/how-to-enable-ssh-2fa-on-linux/">How to Enable SSH 2FA on Linux</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Manage Users on Linux VPS</title>
		<link>https://evoxt.com/linux/how-to-manage-users-on-linux-vps/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Wed, 15 Oct 2025 07:23:54 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6349</guid>

					<description><![CDATA[<p>Managing users on a Linux VPS is crucial for maintaining security and effective access control. This guide explains how to create, secure, and manage user accounts on common distributions used with Evoxt VPS. Use the sections below for quick, distro-specific commands and best practices. What is Linux User Management? Create and control access for multiple ... <a title="How to Manage Users on Linux VPS" class="read-more" href="https://evoxt.com/linux/how-to-manage-users-on-linux-vps/" aria-label="More on How to Manage Users on Linux VPS">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/how-to-manage-users-on-linux-vps/">How to Manage Users on Linux VPS</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[Managing users on a Linux VPS is crucial for maintaining security and effective access control. This guide explains how to create, secure, and manage user accounts on common distributions used with <a href="https://evoxt.com/" target="_blank" rel="noopener">Evoxt VPS</a>. Use the sections below for quick, distro-specific commands and best practices.

<hr />

<h2>What is Linux User Management?</h2>
<ul>
 	<li>Create and control access for multiple users</li>
 	<li>Improve server security by assigning limited permissions</li>
 	<li>Enable team collaboration</li>
 	<li>Isolate application environments</li>
</ul>

<hr />

<h2>1. Create a New User</h2>
<strong>Ubuntu / Debian</strong>:
<pre>sudo adduser USERNAME</pre>
<code>adduser</code> prompts you to set a password and basic info.

<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6351" src="https://evoxt.com/wp-content/uploads/2025/10/New-user-ubuntu.png" alt="" width="660" height="381" srcset="https://evoxt.com/wp-content/uploads/2025/10/New-user-ubuntu.png 660w, https://evoxt.com/wp-content/uploads/2025/10/New-user-ubuntu-300x173.png 300w" sizes="auto, (max-width: 660px) 100vw, 660px" /></p>
<strong>AlmaLinux / Rocky / RHEL</strong>:
<pre>sudo useradd -m -s /bin/bash USERNAME
sudo passwd USERNAME</pre>
This creates a home directory and sets the login shell, then lets you set the password.

<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6352" src="https://evoxt.com/wp-content/uploads/2025/10/New-user.png" alt="" width="541" height="121" srcset="https://evoxt.com/wp-content/uploads/2025/10/New-user.png 541w, https://evoxt.com/wp-content/uploads/2025/10/New-user-300x67.png 300w" sizes="auto, (max-width: 541px) 100vw, 541px" /></p>

<hr />

<h2>2. Grant or Remove Sudo (Admin) Privileges</h2>
<strong>Ubuntu / Debian</strong> :
<pre>#add to sudo group
sudo usermod -aG sudo USERNAME

# remove from sudo group
sudo deluser USERNAME sudo</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6358" src="https://evoxt.com/wp-content/uploads/2025/10/sudo-ubuntu1.png" alt="" width="444" height="56" srcset="https://evoxt.com/wp-content/uploads/2025/10/sudo-ubuntu1.png 444w, https://evoxt.com/wp-content/uploads/2025/10/sudo-ubuntu1-300x38.png 300w" sizes="auto, (max-width: 444px) 100vw, 444px" /></p>
<strong>AlmaLinux / Rocky / RHEL</strong>:
<pre># add to wheel group
sudo usermod -aG wheel USERNAME

# remove from wheel group
sudo gpasswd -d USERNAME wheel</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6354" src="https://evoxt.com/wp-content/uploads/2025/10/sudo.png" alt="" width="468" height="59" srcset="https://evoxt.com/wp-content/uploads/2025/10/sudo.png 468w, https://evoxt.com/wp-content/uploads/2025/10/sudo-300x38.png 300w" sizes="auto, (max-width: 468px) 100vw, 468px" />

<hr />

<h2>3. Set or Change a User Password</h2>
<pre>sudo passwd USERNAME</pre>

<hr />

<h2>4. Lock or Unlock a User</h2>
<strong>Lock</strong> (disable login)<strong>:</strong>
<pre>sudo passwd -l USERNAME</pre>
<strong>Unlock:</strong>
<pre>sudo passwd -u USERNAME</pre>

<hr />

<h2>5. Delete a User</h2>
<strong>Delete user only </strong>(keep files)<strong>:</strong>
<pre>sudo userdel USERNAME</pre>
<strong>Delete user and home directory:</strong>
<pre>sudo userdel -r USERNAME</pre>

<hr />

<h2>6. List Users &amp; Groups</h2>
<strong>List all local users:</strong>
<pre>cut -d: -f1 /etc/passwd</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6350" src="https://evoxt.com/wp-content/uploads/2025/10/all-user.png" alt="" width="422" height="420" srcset="https://evoxt.com/wp-content/uploads/2025/10/all-user.png 422w, https://evoxt.com/wp-content/uploads/2025/10/all-user-300x300.png 300w, https://evoxt.com/wp-content/uploads/2025/10/all-user-150x150.png 150w" sizes="auto, (max-width: 422px) 100vw, 422px" /></p>
<strong>List groups for a user:</strong>
<pre>groups USERNAME</pre>

<hr />

<h2>Optional: Use SSH Key Authentication (Recommended)</h2>
SSH keys provide stronger, passwordless authentication. Generate keys locally and add the public key to <code>~/.ssh/authorized_keys</code> on the server. See our guide: <a href="https://evoxt.com/category/how-to-set-up-ssh-keys-on-linux/" target="_blank" rel="noopener">How to Set Up SSH Keys on Linux</a>.

<hr />

<h2>Quick Commands Cheat Sheet</h2>
<pre># Create <strong>(Debian/Ubuntu)</strong>
sudo adduser USERNAME

# Create <strong>(RHEL-family)</strong>
sudo useradd -m -s /bin/bash USERNAME
sudo passwd USERNAME

# Grant sudo <strong>(Debian/Ubuntu)</strong>
sudo usermod -aG sudo USERNAME

# Grant sudo <strong>(RHEL-family)
</strong>sudo usermod -aG wheel USERNAME

# Remove sudo <strong>(Debian/Ubuntu)</strong>
sudo deluser USERNAME sudo

# Remove sudo <strong>(RHEL-family)</strong>
sudo gpasswd -d USERNAME wheel

# Lock / Unlock
sudo passwd -l USERNAME
sudo passwd -u USERNAME

# Delete
sudo userdel USERNAME
sudo userdel -r USERNAME

# List users
cut -d: -f1 /etc/passwd

# List groups for a user
groups USERNAME
</pre>

<hr />

<h2>Best Practices &amp; Notes</h2>
<ul>
 	<li>Create a non-root admin account and disable direct root SSH login when possible.</li>
 	<li>Prefer SSH keys over passwords for server access.</li>
 	<li>Whitelist your admin IP to avoid accidental lockout when you apply restrictive controls.</li>
 	<li>Regularly review group memberships and remove unused accounts.</li>
</ul>

<hr />

<h2>Need Help?</h2>
If you need assistance, <span style="margin: 0px;padding: 0px"><a href="https://console.evoxt.com/submitticket.php" target="_blank" rel="noopener">please open a support ticket</a> or browse our <a href="https://evoxt.com/category/" target="_blank" rel="noopener">Evoxt VPS Tutorials</a></span> for more guides.<p>The post <a href="https://evoxt.com/linux/how-to-manage-users-on-linux-vps/">How to Manage Users on Linux VPS</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Use Fail2Ban SSH on Linux</title>
		<link>https://evoxt.com/linux/how-to-use-fail2ban-ssh-on-linux/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Fri, 03 Oct 2025 08:50:53 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6333</guid>

					<description><![CDATA[<p>If you’re running a Linux server on Evoxt VPS, setting up Fail2Ban SSH protection is one of the most effective ways to secure your server. Fail2Ban helps automatically block brute-force login attempts, reducing risk and improving security. What is Fail2Ban? Fail2Ban is a log-monitoring tool that detects suspicious activity, such as repeated failed login attempts, ... <a title="How to Use Fail2Ban SSH on Linux" class="read-more" href="https://evoxt.com/linux/how-to-use-fail2ban-ssh-on-linux/" aria-label="More on How to Use Fail2Ban SSH on Linux">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/how-to-use-fail2ban-ssh-on-linux/">How to Use Fail2Ban SSH on Linux</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[If you’re running a Linux server on Evoxt VPS, setting up Fail2Ban SSH protection is one of the most effective ways to secure your server. Fail2Ban helps automatically block brute-force login attempts, reducing risk and improving security.

<hr />

<h2>What is Fail2Ban?</h2>
Fail2Ban is a log-monitoring tool that detects suspicious activity, such as repeated failed login attempts, and automatically bans those IPs using firewall rules. It’s an essential layer of server protection for any <strong>VPS</strong>, including those hosted on Evoxt.

<hr />

<h2>Why Use Fail2Ban on Evoxt VPS?</h2>
<ul>
 	<li>Defend against brute-force SSH attacks</li>
 	<li>Automatically block malicious IP addresses</li>
 	<li>Reduce server load from constant login attempts</li>
 	<li>Strengthen Evoxt’s performance with extra security</li>
</ul>

<hr />

<h2>Step 1. Update Your System</h2>
<pre># Debian/Ubuntu
sudo apt update -y

# AlmaLinux/Rocky Linux/RHEL
sudo yum update -y
sudo yum install epel-release -y
</pre>

<hr />

<h2>Step 2. Install Fail2Ban</h2>
<pre># Debian/Ubuntu
sudo apt install fail2ban -y

# AlmaLinux/Rocky Linux/RHEL
sudo yum install fail2ban -y
</pre>

<hr />

<h2>Step 3. Enable and Start Fail2Ban</h2>
<pre>sudo systemctl enable fail2ban --now
</pre>

<hr />

<h2>Step 4. Configure SSH Protection</h2>
We copy <code>/etc/fail2ban/jail.conf</code> to <code>/etc/fail2ban/jail.local</code> because updates may overwrite <code>jail.conf</code>. By using <code>jail.local</code>, your custom settings stay safe and won’t be lost during system upgrades.
<pre>sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo sed -i '/^\[sshd\]/a enabled = true' /etc/fail2ban/jail.local</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6344" src="https://evoxt.com/wp-content/uploads/2025/10/Jail-conf1.png" alt="" width="862" height="514" srcset="https://evoxt.com/wp-content/uploads/2025/10/Jail-conf1.png 862w, https://evoxt.com/wp-content/uploads/2025/10/Jail-conf1-300x179.png 300w, https://evoxt.com/wp-content/uploads/2025/10/Jail-conf1-768x458.png 768w" sizes="auto, (max-width: 862px) 100vw, 862px" /></p>
<h3>Optional: Permanent Ban Logic</h3>
If you prefer a stricter approach, you can set Fail2Ban to permanently ban IPs:
<pre>sudo nano /etc/fail2ban/jail.local</pre>
And edit:
<pre>bantime = -1</pre>
Once an IP is banned, it won’t be unbanned automatically. You’ll need to remove it manually if necessary:
<pre>sudo fail2ban-client set sshd unbanip YOUR_IP
</pre>
If needed, you can also manually configure the <code>jail.local</code> file to adjust settings like <code>bantime</code>, <code>maxretry</code>, or specific services you want to protect.

<hr />

<h2>Step 5. Restart Fail2Ban</h2>
<pre>sudo systemctl restart fail2ban
</pre>

<hr />

<h2>Step 6. Verify SSH Jail</h2>
<pre>sudo fail2ban-client status
sudo fail2ban-client status sshd</pre>
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-6345" src="https://evoxt.com/wp-content/uploads/2025/10/SSH-Jail1.png" alt="" width="907" height="495" srcset="https://evoxt.com/wp-content/uploads/2025/10/SSH-Jail1.png 907w, https://evoxt.com/wp-content/uploads/2025/10/SSH-Jail1-300x164.png 300w, https://evoxt.com/wp-content/uploads/2025/10/SSH-Jail1-768x419.png 768w" sizes="auto, (max-width: 907px) 100vw, 907px" />

<hr />

<h3>Step 7. Test Fail2Ban</h3>
Try logging in with the wrong password multiple times from another IP (VPN or different device). After 5 failed attempts, the IP should be banned.

<hr />

<h2>Step 8. Manually Manage IPs</h2>
Unban an IP:
<pre>sudo fail2ban-client set sshd unbanip YOUR_IP</pre>
Ban an IP:
<pre>sudo fail2ban-client set sshd banip YOUR_IP</pre>

<hr />

<h2>Optional: Monitor Logs</h2>
Monitor logs in real time:
<pre>sudo tail -f /var/log/fail2ban.log
</pre>

<hr />

<h2>Quick Commands</h2>
<strong>Ubuntu/Debian:</strong>
<pre>sudo apt update -y
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable fail2ban --now
sudo sed -i '/^\[sshd\]/a enabled = true' /etc/fail2ban/jail.local
sudo systemctl restart fail2ban
</pre>
<strong>AlmaLinux/Rocky Linux/RHEL:</strong>
<pre>sudo yum update -y
sudo yum install epel-release -y
sudo yum install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable fail2ban --now
sudo sed -i '/^\[sshd\]/a enabled = true' /etc/fail2ban/jail.local
sudo systemctl restart fail2ban
</pre>

<hr />

<h2>Conclusion</h2>
Fail2Ban is a simple yet powerful tool to protect SSH from brute-force attacks. By installing and configuring it, you significantly improve your server’s security and reduce risks from malicious login attempts. Adding Fail2Ban ensures that your Evoxt VPS runs both securely and reliably. Looking for more Linux security tips? Check out our other <a class="decorated-link" href="https://evoxt.com/category/" target="_new" rel="noopener" data-start="1315" data-end="1362">Evoxt VPS Guides.</a>

Still having issues? <a class="decorated-link" href="https://console.evoxt.com/submitticket.php" target="_new" rel="noopener" data-start="1490" data-end="1557">Open a support ticket</a> with Evoxt for assistance.<p>The post <a href="https://evoxt.com/linux/how-to-use-fail2ban-ssh-on-linux/">How to Use Fail2Ban SSH on Linux</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fix SSH Man-in-the-Middle Warning</title>
		<link>https://evoxt.com/linux/how-to-fix-ssh-man-in-the-middle-warning/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Thu, 25 Sep 2025 09:08:01 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6313</guid>

					<description><![CDATA[<p>If you see an SSH Man-in-the-Middle warning after reinstalling your Evoxt Linux VPS, don’t panic. This guide explains why the SSH Man-in-the-Middle warning appears on Linux servers and shows you how to fix it safely. Why This Warning Appears When you reinstall your Linux server at Evoxt, the system generates a new SSH host key. ... <a title="Fix SSH Man-in-the-Middle Warning" class="read-more" href="https://evoxt.com/linux/how-to-fix-ssh-man-in-the-middle-warning/" aria-label="More on Fix SSH Man-in-the-Middle Warning">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/how-to-fix-ssh-man-in-the-middle-warning/">Fix SSH Man-in-the-Middle Warning</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[If you see an <strong>SSH Man-in-the-Middle warning</strong> after reinstalling your <strong>Evoxt Linux VPS</strong>, don’t panic. This guide explains why the SSH Man-in-the-Middle warning appears on Linux servers and shows you how to fix it safely.

<hr />

<h2>Why This Warning Appears</h2>
When you reinstall your Linux server at Evoxt, the system generates a new SSH host key. Your local machine stores the old fingerprint and detects the change, triggering an <strong>SSH Man-in-the-Middle warning</strong>. This feature helps prevent impersonation or eavesdropping attempts, but it can also appear after a legitimate server reinstall.

<img loading="lazy" decoding="async" class="alignnone wp-image-6316 size-full" src="https://evoxt.com/wp-content/uploads/2025/09/MitM.png" alt="Fix SSH Man-in-the-Middle Warning" width="791" height="274" srcset="https://evoxt.com/wp-content/uploads/2025/09/MitM.png 791w, https://evoxt.com/wp-content/uploads/2025/09/MitM-300x104.png 300w, https://evoxt.com/wp-content/uploads/2025/09/MitM-768x266.png 768w" sizes="auto, (max-width: 791px) 100vw, 791px" />

<hr />

<h2>Step 1: Confirm the Server Was Reinstalled</h2>
First, ensure that you have actually reinstalled your Evoxt Linux server, the IP address hasn’t changed unexpectedly, and the activity was authorized by you.

<hr />

<h2>Step 2: Remove the Old SSH Fingerprint</h2>
On Linux, macOS, or WSL, run:
<pre>ssh-keygen -R your.server.ip</pre>
Example:
<pre>ssh-keygen -R 197.123.123.1</pre>
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-6317" src="https://evoxt.com/wp-content/uploads/2025/09/SSH-keygen.png" alt="" width="624" height="94" srcset="https://evoxt.com/wp-content/uploads/2025/09/SSH-keygen.png 624w, https://evoxt.com/wp-content/uploads/2025/09/SSH-keygen-300x45.png 300w" sizes="auto, (max-width: 624px) 100vw, 624px" />

This command deletes the outdated fingerprint stored in your local <code>known_hosts</code> file.

<hr />

<h2>Step 3: Reconnect to the Evoxt Server</h2>
<pre>ssh root@your.server.ip</pre>
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-6315" style="font-size: 16px" src="https://evoxt.com/wp-content/uploads/2025/09/fingerprint.png" alt="" width="707" height="106" srcset="https://evoxt.com/wp-content/uploads/2025/09/fingerprint.png 707w, https://evoxt.com/wp-content/uploads/2025/09/fingerprint-300x45.png 300w" sizes="auto, (max-width: 707px) 100vw, 707px" />

When prompted, type <strong>yes</strong> and press Enter. The new fingerprint will be saved automatically.

<hr />

<h2>Step 4 (Optional): Verify the New Fingerprint</h2>
For extra security, open the Evoxt VPS console and run:
<pre>ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub</pre>
If you haven’t reinstalled your Evoxt Linux server and still receive an <strong>SSH Man-in-the-Middle warning</strong>, do not continue. This could be a real attack. Contact Evoxt Support immediately to verify server integrity.

<hr />

<h2>Security Note</h2>
If you did <strong>not</strong> reinstall your server and still see this warning, stop immediately — it could be a real attack.
<h2>Conclusion</h2>
Seeing an <strong>SSH Man-in-the-Middle warning</strong> after reinstalling your Evoxt Linux VPS is expected due to a new SSH key. Simply remove the old key from your system and verify the new fingerprint to re-establish a secure connection. By following these steps, you ensure a safer and more reliable connection for future sessions.

Need help? <a href="https://console.evoxt.com/submitticket.php">Contact Evoxt Support</a> — our technical team is ready to assist.<p>The post <a href="https://evoxt.com/linux/how-to-fix-ssh-man-in-the-middle-warning/">Fix SSH Man-in-the-Middle Warning</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to install Nextcloud on AlmaLinux 9.4</title>
		<link>https://evoxt.com/one-click-installation/how-to-install-and-set-up-nextcloud-on-almalinux-9-4/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Wed, 13 Aug 2025 09:48:17 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[One-Click Installation]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6259</guid>

					<description><![CDATA[<p>Nextcloud is an open-source platform for private file sharing and self-hosted cloud storage. This guide explains how to install and configure Nextcloud on AlmaLinux 9.4 using an Evoxt VPS. Why Install Nextcloud on Evoxt VPS? Private &#38; Secure Cloud: Full control over your data. High Performance: Fast and reliable cloud storage with Evoxt infrastructure. Flexible ... <a title="How to install Nextcloud on AlmaLinux 9.4" class="read-more" href="https://evoxt.com/one-click-installation/how-to-install-and-set-up-nextcloud-on-almalinux-9-4/" aria-label="More on How to install Nextcloud on AlmaLinux 9.4">Read more</a></p>
<p>The post <a href="https://evoxt.com/one-click-installation/how-to-install-and-set-up-nextcloud-on-almalinux-9-4/">How to install Nextcloud on AlmaLinux 9.4</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[Nextcloud is an open-source platform for private file sharing and self-hosted cloud storage. This guide explains how to install and configure Nextcloud on AlmaLinux 9.4 using an Evoxt VPS.

<strong>Why Install Nextcloud on Evoxt VPS?</strong>
<ul>
 	<li style="list-style-type: none">
<ul>
 	<li><strong>Private &amp; Secure Cloud:</strong> Full control over your data.</li>
 	<li><strong>High Performance:</strong> Fast and reliable cloud storage with Evoxt infrastructure.</li>
 	<li><strong>Flexible Access:</strong> Connect via browser, mobile app, or desktop sync clients.</li>
</ul>
</li>
</ul>

<hr />

<h2>Step 1: Update AlmaLinux</h2>
<pre>sudo dnf update -y
sudo dnf install epel-release -y
</pre>

<hr />

<h2>Step 2: Install Apache, MariaDB, and PHP</h2>
<h3>Install Apache:</h3>
<pre>sudo dnf install httpd -y
sudo systemctl enable --now httpd
</pre>
<h3>Install MariaDB:</h3>
<pre>sudo dnf install mariadb-server -y
sudo systemctl enable --now mariadb</pre>
<h3>Secure MariaDB:</h3>
<pre>sudo mysql_secure_installation</pre>
Set the root password and remove insecure defaults.
<img loading="lazy" decoding="async" class="alignnone size-large wp-image-6272" src="https://evoxt.com/wp-content/uploads/2025/08/2-586x1024.png" alt="" width="586" height="1024" srcset="https://evoxt.com/wp-content/uploads/2025/08/2-586x1024.png 586w, https://evoxt.com/wp-content/uploads/2025/08/2-172x300.png 172w, https://evoxt.com/wp-content/uploads/2025/08/2.png 739w" sizes="auto, (max-width: 586px) 100vw, 586px" />
<h3>Or use this automated script:</h3>
<pre>sudo dnf install expect -y
mkdir -p /root/scripts
cat &lt;&lt; 'EOF' &gt; /root/scripts/secure_mysql.expect
#!/usr/bin/expect -f

set timeout 10
spawn mysql_secure_installation
expect "Enter password for user root:" { send "\r" }
expect "Switch to unix_socket authentication" { send "n\r" }
expect "Change the root password?" { send "n\r" }
expect "Remove anonymous users?" { send "y\r" }
expect "Disallow root login remotely?" { send "y\r" }
expect "Remove test database and access to it?" { send "y\r" }
expect "Reload privilege tables now?" { send "y\r" }
expect eof
EOF

chmod +x /root/scripts/secure_mysql.expect
/root/scripts/secure_mysql.expect</pre>
<h3>Install PHP 8.2 and Extensions:</h3>
<pre>sudo dnf module reset php -y
sudo dnf module enable php:8.2 -y
sudo dnf install php php-mysqlnd php-gd php-xml php-mbstring php-curl php-zip php-cli php-bcmath php-intl php-json php-common php-opcache -y
sudo systemctl restart httpd
php -v
</pre>

<hr />

<h2>Step 3: Create a Database for Nextcloud</h2>
<pre>sudo mysql -u root -p
</pre>
<pre>CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'StrongPassword123';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
</pre>
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-6270" src="https://evoxt.com/wp-content/uploads/2025/05/1.png" alt="" width="862" height="484" srcset="https://evoxt.com/wp-content/uploads/2025/05/1.png 862w, https://evoxt.com/wp-content/uploads/2025/05/1-300x168.png 300w, https://evoxt.com/wp-content/uploads/2025/05/1-768x431.png 768w" sizes="auto, (max-width: 862px) 100vw, 862px" />

<hr />

<h2>Step 4: Download and Configure Nextcloud</h2>
<pre>cd /var/www/
sudo curl -O https://download.nextcloud.com/server/releases/nextcloud-31.0.4.zip
sudo unzip nextcloud-31.0.4.zip
sudo chown -R apache:apache nextcloud
</pre>

<hr />

<h2>Step 5: Configure Apache</h2>
<pre>sudo nano /etc/httpd/conf.d/nextcloud.conf
</pre>
<pre>&lt;VirtualHost *:80&gt;
    ServerName yourdomain.com
    DocumentRoot /var/www/nextcloud/
    &lt;Directory /var/www/html/nextcloud/&gt;
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    &lt;/Directory&gt;
    ErrorLog /var/log/httpd/nextcloud_error.log
    CustomLog /var/log/httpd/nextcloud_access.log combined
&lt;/VirtualHost&gt;
</pre>
<pre>sudo systemctl restart httpd
</pre>
<img loading="lazy" decoding="async" class="alignnone size-large wp-image-6273" src="https://evoxt.com/wp-content/uploads/2025/08/3-1024x587.png" alt="" width="1024" height="587" srcset="https://evoxt.com/wp-content/uploads/2025/08/3-1024x587.png 1024w, https://evoxt.com/wp-content/uploads/2025/08/3-300x172.png 300w, https://evoxt.com/wp-content/uploads/2025/08/3-768x440.png 768w, https://evoxt.com/wp-content/uploads/2025/08/3.png 1094w" sizes="auto, (max-width: 1024px) 100vw, 1024px" />

<hr />

<h2>Step 6: Enable Firewall</h2>
<pre>sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
</pre>
If firewall is not installed:
<pre>sudo dnf install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld
</pre>

<hr />

<h2>Step 7: Enable HTTPS (Optional but Recommended)</h2>
<pre>sudo dnf install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com
</pre>

<hr />

<h2>Step 8: Finish Installation in Web Browser</h2>
Go to:
<ul>
 	<li><code>http://yourdomain.com</code></li>
 	<li><code>http://your-server-ip/nextcloud</code></li>
</ul>
<img loading="lazy" decoding="async" class="alignnone size-large wp-image-6274" src="https://evoxt.com/wp-content/uploads/2025/08/3dab7232-0972-4983-935e-111eb602bf10-1024x1015.png" alt="" width="1024" height="1015" srcset="https://evoxt.com/wp-content/uploads/2025/08/3dab7232-0972-4983-935e-111eb602bf10-1024x1015.png 1024w, https://evoxt.com/wp-content/uploads/2025/08/3dab7232-0972-4983-935e-111eb602bf10-300x297.png 300w, https://evoxt.com/wp-content/uploads/2025/08/3dab7232-0972-4983-935e-111eb602bf10-150x150.png 150w, https://evoxt.com/wp-content/uploads/2025/08/3dab7232-0972-4983-935e-111eb602bf10-768x761.png 768w, https://evoxt.com/wp-content/uploads/2025/08/3dab7232-0972-4983-935e-111eb602bf10.png 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" />

Then follow the setup wizard to create an admin account and connect to your database.

<img loading="lazy" decoding="async" class="alignnone size-large wp-image-6275" src="https://evoxt.com/wp-content/uploads/2025/08/5-1024x1022.png" alt="" width="1024" height="1022" srcset="https://evoxt.com/wp-content/uploads/2025/08/5-1024x1022.png 1024w, https://evoxt.com/wp-content/uploads/2025/08/5-300x300.png 300w, https://evoxt.com/wp-content/uploads/2025/08/5-150x150.png 150w, https://evoxt.com/wp-content/uploads/2025/08/5-768x767.png 768w, https://evoxt.com/wp-content/uploads/2025/08/5.png 1272w" sizes="auto, (max-width: 1024px) 100vw, 1024px" />

<hr />

<h2>Quick Commands</h2>
<pre>sudo dnf update -y
sudo dnf install epel-release -y
sudo dnf install httpd -y
sudo systemctl enable --now httpd
sudo dnf install mariadb-server -y
sudo systemctl enable --now mariadb
sudo dnf install expect -y
mkdir -p /root/scripts
cat &lt;&lt; 'EOF' &gt; /root/scripts/secure_mysql.expect
#!/usr/bin/expect -f
set timeout 10
spawn mysql_secure_installation
expect "Enter password for user root:" { send "\r" }
expect "Switch to unix_socket authentication" { send "n\r" }
expect "Change the root password?" { send "n\r" }
expect "Remove anonymous users?" { send "y\r" }
expect "Disallow root login remotely?" { send "y\r" }
expect "Remove test database and access to it?" { send "y\r" }
expect "Reload privilege tables now?" { send "y\r" }
expect eof
EOF
chmod +x /root/scripts/secure_mysql.expect
/root/scripts/secure_mysql.expect


sudo mysql -u root -p
CREATE DATABASE nextcloud;

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'StrongPassword123';

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';

FLUSH PRIVILEGES;

EXIT;
sudo dnf module reset php -y
sudo dnf module enable php:8.2 -y
sudo dnf install php php-mysqlnd php-gd php-xml php-mbstring php-curl php-zip php-cli php-bcmath php-intl php-json php-common php-opcache -y
cd /var/www/
sudo curl -O https://download.nextcloud.com/server/releases/nextcloud-31.0.4.zip
sudo unzip nextcloud-31.0.4.zip
sudo chown -R apache:apache nextcloud
sudo tee /etc/httpd/conf.d/nextcloud.conf &gt; /dev/null &lt;
    ServerName yourdomain.com
    DocumentRoot /var/www/nextcloud/

    
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    

    ErrorLog /var/log/httpd/nextcloud_error.log
    CustomLog /var/log/httpd/nextcloud_access.log combined

EOF

sudo dnf install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo systemctl restart httpd
</pre>

<hr />

<h2>Conclusion</h2>
By following this guide to <strong>install Nextcloud on AlmaLinux 9.4 Evoxt VPS</strong>, you can set up a fast, secure, and private cloud environment tailored to your needs. For more VPS hosting details, visit <a href="https://evoxt.com/" target="_blank" rel="noopener">Evoxt</a>. Whether for personal use or collaborative work, this setup ensures data control, performance, and scalability. If you need a new server, <a href="https://console.evoxt.com/deploy.php" rel="noopener" data-start="178" data-end="206">deploy an Evoxt VM here</a> or <a href="https://console.evoxt.com/submitticket.php" rel="noopener" data-start="210" data-end="236">contact Evoxt support</a> for assistance.<p>The post <a href="https://evoxt.com/one-click-installation/how-to-install-and-set-up-nextcloud-on-almalinux-9-4/">How to install Nextcloud on AlmaLinux 9.4</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Set Up SSH Keys on Linux</title>
		<link>https://evoxt.com/linux/how-to-set-up-ssh-keys-on-linux/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Wed, 07 May 2025 09:55:01 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6247</guid>

					<description><![CDATA[<p>Securing your Linux server with SSH keys enhances security by enabling passwordless authentication while preventing brute-force attacks. This step-by-step guide will help you configure SSH keys efficiently and safely. Step 1: Generate an SSH Key Pair To create an SSH key pair, open a terminal on your local machine and run: ssh-keygen -t rsa -b ... <a title="How to Set Up SSH Keys on Linux" class="read-more" href="https://evoxt.com/linux/how-to-set-up-ssh-keys-on-linux/" aria-label="More on How to Set Up SSH Keys on Linux">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/how-to-set-up-ssh-keys-on-linux/">How to Set Up SSH Keys on Linux</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[Securing your Linux server with SSH keys enhances security by enabling passwordless authentication while preventing brute-force attacks. This step-by-step guide will help you configure SSH keys efficiently and safely.
<hr>
<h2>Step 1: Generate an SSH Key Pair</h2>
To create an SSH key pair, open a terminal on your <strong>local machine</strong> and run:
<pre>ssh-keygen -t rsa -b 4096
</pre>
<ul>
 	<li><code>-t rsa</code> specifies the RSA encryption type, ensuring strong security.</li>
 	<li><code>-b 4096</code> generates a <strong>4096-bit key</strong>, providing enhanced protection.</li>
</ul>
During this process, you'll be prompted to:
<ul>
 	<li><strong>Choose a file location</strong> (Press <strong>Enter</strong> to use the default <code>~/.ssh/id_rsa</code>).</li>
 	<li><strong>Set a passphrase</strong> (Optional but recommended for added security).
<h2><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6254" src="https://evoxt.com/wp-content/uploads/2025/05/rsa-key.png" alt="" width="1114" height="460" srcset="https://evoxt.com/wp-content/uploads/2025/05/rsa-key.png 1114w, https://evoxt.com/wp-content/uploads/2025/05/rsa-key-300x124.png 300w, https://evoxt.com/wp-content/uploads/2025/05/rsa-key-1024x423.png 1024w, https://evoxt.com/wp-content/uploads/2025/05/rsa-key-768x317.png 768w" sizes="auto, (max-width: 1114px) 100vw, 1114px" /></h2>
</li>
</ul>
<hr>
<h2>Step 2: Log in to Your Linux Server</h2>
Before copying the SSH key, log in to your server using your existing credentials:
<pre>ssh user@your-server-ip
</pre>
Replace <code>user</code> with your actual <strong>Linux username</strong> and <code>your-server-ip</code> with the <strong>server’s IP address</strong>.
<hr>
<h2>Step 3: Copy the Public Key to Your Linux Server</h2>
Once the key is generated, copy the <strong>public key</strong> (<code>id_rsa.pub</code>) from your local machine to the <strong>server’s <code>~/.ssh/authorized_keys</code> file</strong>.

Run the following command <strong>on your Linux server</strong>:
<pre>echo <em>your-public-key</em> &gt;&gt; ~/.ssh/authorized_keys
</pre>
<h3>Example SSH Key Format</h3>
<pre>ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7nVdS7h9QhMhAaaOBFZtclWZtBQKdb...
zBQKdb6yGGHt5h7IY+bprOSoK+cBoZd+aQ8pfqL9iT+xxuUbfSTGVJw== user@hostname
</pre>
<h2><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6255" src="https://evoxt.com/wp-content/uploads/2025/05/SSH-key.png" alt="" width="1101" height="162" srcset="https://evoxt.com/wp-content/uploads/2025/05/SSH-key.png 1101w, https://evoxt.com/wp-content/uploads/2025/05/SSH-key-300x44.png 300w, https://evoxt.com/wp-content/uploads/2025/05/SSH-key-1024x151.png 1024w, https://evoxt.com/wp-content/uploads/2025/05/SSH-key-768x113.png 768w" sizes="auto, (max-width: 1101px) 100vw, 1101px" /></h2>
<hr>
<h2>Step 4: Set Correct Permissions</h2>
To <strong>ensure security</strong>, adjust the SSH directory and file permissions:
<pre>chmod 700 ~/.ssh  
chmod 600 ~/.ssh/authorized_keys  
</pre>
These commands <strong>restrict access</strong>, allowing only the user to modify or read SSH keys.
<hr>
<h2>Step 5: Test SSH Key Authentication</h2>
Now, test your SSH key login:
<pre>ssh user@your-server-ip
</pre>
If configured correctly, you will log in <strong>without needing a password</strong>.
<hr>
<h2>Step 6 (Optional): Disable Password Authentication for Extra Security</h2>
<p>To prevent <strong>password-based logins</strong>, disable them in the SSH configuration file.</p>

<h3>1) Open the SSH configuration file:</h3>
<pre>sudo nano /etc/ssh/sshd_config
</pre>
<h3>2) Find and modify the following line:</h3>
Change:
<pre>PasswordAuthentication yes
</pre>
To:
<pre>PasswordAuthentication no
</pre>
<p>Save and exit by pressing: <strong>Ctrl + X → Y → Enter</strong>.</p>

Now, only <strong>SSH key authentication</strong> will be allowed for remote logins. Changes to PasswordAuthentication should take effect immediately without needing to restart SSH. After editing, run <code>sudo sshd -T | grep passwordauthentication</code> to confirm the setting. If the output still shows "yes," check <code>/etc/ssh/sshd_config.d/</code> for any additional configuration files that might be overriding your settings.
<hr>
<h2>Optional Step: Add Your SSH Key During Server Deployment</h2>
When deploying your server through Evoxt, you have the option to add your SSH public key during the setup process. This enables secure, passwordless authentication right out of the box.<img loading="lazy" decoding="async" class="alignnone  wp-image-6253" style="font-family: inherit" src="https://evoxt.com/wp-content/uploads/2025/04/deploy.png" alt="" width="1377" height="921" srcset="https://evoxt.com/wp-content/uploads/2025/04/deploy.png 1843w, https://evoxt.com/wp-content/uploads/2025/04/deploy-300x201.png 300w, https://evoxt.com/wp-content/uploads/2025/04/deploy-1024x685.png 1024w, https://evoxt.com/wp-content/uploads/2025/04/deploy-768x514.png 768w, https://evoxt.com/wp-content/uploads/2025/04/deploy-1536x1028.png 1536w" sizes="auto, (max-width: 1377px) 100vw, 1377px" />
<hr>
<h2>Quick Commands Recap</h2>
<pre>ssh-keygen -t rsa -b 4096  
echo <em>your-public-key</em> &gt;&gt; ~/.ssh/authorized_keys
chmod 700 ~/.ssh  
chmod 600 ~/.ssh/authorized_keys  
</pre>
<h2>Why Use SSH Keys for Secure Authentication?</h2>
<ul>
 	<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Prevents brute-force attacks</strong> by eliminating password-based logins.</li>
 	<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Enables passwordless access</strong>, improving efficiency and automation.</li>
 	<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Enhances security</strong> through strong cryptographic encryption.</li>
</ul>
By following these steps, you can <strong>secure your Linux server with SSH key authentication</strong>, reducing vulnerabilities and ensuring <strong>safer remote access</strong>.

For additional guidance, check out: <a href="https://evoxt.com/linux/how-to-change-password-in-linux/">How to Change Your Linux Password</a> or contact <a href="https://console.evoxt.com/submitticket.php">Evoxt Support</a>.<p>The post <a href="https://evoxt.com/linux/how-to-set-up-ssh-keys-on-linux/">How to Set Up SSH Keys on Linux</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
