
<?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>Evoxt</title>
	<atom:link href="https://evoxt.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://evoxt.com/</link>
	<description>High CPU Frequency Virtual Machines at Low Prices</description>
	<lastBuildDate>Fri, 11 Sep 2026 10:13:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://evoxt.com/wp-content/uploads/2021/05/favicon-1.png</url>
	<title>Evoxt</title>
	<link>https://evoxt.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Set Up Uptime Monitoring with a Self-Hosted Tool (Uptime Kuma)</title>
		<link>https://evoxt.com/linux/how-to-set-up-uptime-monitoring-with-a-self-hosted-tool-uptime-kuma/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Fri, 11 Sep 2026 10:09:24 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6830</guid>

					<description><![CDATA[<p>This guide shows you how to set up uptime monitoring with Uptime Kuma, a free, open-source, self-hosted monitoring tool that tracks whether your websites, servers, and services are online. It's a popular alternative to paid SaaS monitors like UptimeRobot or Pingdom, since you control the data, the check intervals, and there are no monitor limits ... <a title="How to Set Up Uptime Monitoring with a Self-Hosted Tool (Uptime Kuma)" class="read-more" href="https://evoxt.com/linux/how-to-set-up-uptime-monitoring-with-a-self-hosted-tool-uptime-kuma/" aria-label="More on How to Set Up Uptime Monitoring with a Self-Hosted Tool (Uptime Kuma)">Read more</a></p>
<p>The post <a href="https://evoxt.com/linux/how-to-set-up-uptime-monitoring-with-a-self-hosted-tool-uptime-kuma/">How to Set Up Uptime Monitoring with a Self-Hosted Tool (Uptime Kuma)</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[This guide shows you how to set up uptime monitoring with Uptime Kuma, a free, open-source, self-hosted monitoring tool that tracks whether your websites, servers, and services are online. It's a popular alternative to paid SaaS monitors like UptimeRobot or Pingdom, since you control the data, the check intervals, and there are no monitor limits tied to a subscription tier.

<hr />

<h2>What Is Uptime Kuma and Why Self-Host Monitoring</h2>
<p><a href="https://uptimekuma.co/">Uptime Kuma</a> is an open-source monitoring tool that checks whether your services are reachable, then alerts you when something goes down. It supports HTTP(s), TCP ports, ping, DNS, and several other check types, with a clean web dashboard for managing everything.</p>

Self-hosting it instead of using a paid service has a few clear advantages:
<ul>
 	<li>No cost beyond the VPS you're already running</li>
 	<li>No limits on how many monitors or notification channels you can set up</li>
 	<li>Full control over check frequency, data retention, and access</li>
 	<li>You can run it privately or expose a public status page, your choice</li>
</ul>

<hr />

<h2>Prerequisites</h2>
<ul>
 	<li>A VPS running Ubuntu, Debian, or a similar Linux distro</li>
 	<li>Root or sudo access</li>
 	<li>Docker installed (covered in Step 1 if you don't have it yet)</li>
</ul>

<hr />

<h2>Step 1 — Install Docker</h2>
If Docker is already installed on your VPS, skip to Step 2. Otherwise, install it with the official convenience script:
<pre>curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh</pre>
Verify the installation:
<pre>docker --version</pre>

<hr />

<h2>Step 2 — Set Up Docker Compose</h2>
Create a directory and download the official compose file:
<pre>mkdir uptime-kuma
cd uptime-kuma
curl -o compose.yaml https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml
docker compose up -d</pre>
This pulls the compose file directly from the official repository and starts Uptime Kuma with a Docker-managed named volume for persistent data.

<hr />

<h2>Step 3 — Run the Container</h2>
With Compose set up, run the container:
<pre>docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2</pre>
This maps port 3001 on the VPS to the container and stores all monitoring data in a named volume called<code>uptime-kuma</code>, managed by Docker, so it survives container restarts or updates.

<hr />

<h2>Step 4 — Access the Dashboard</h2>
Open a browser and visit:
<pre>http://your-vps-ip:3001</pre>
<p>On first visit, you'll be asked to choose a database: embedded MariaDB, an external MariaDB/MySQL server, or SQLite. For most single-server VPS setups, SQLite is the simplest choice since it requires no separate database server. Embedded MariaDB is bundled into the full Docker image if you prefer a more robust database without managing an external one. External MariaDB/MySQL is best if you already run a database server or want to separate the database from the monitoring container.</p>

<p>After choosing a database, you'll be asked to create an admin username and password. This account is what you'll use to log in and manage monitors going forward.</p>

<hr />

<h2>Step 5 — Add Your First Monitor</h2>
<p>From the dashboard, click <strong>Add New Monitor</strong> and choose a monitor type:</p>
<p><ul>
 	<li><strong>HTTP(s):</strong> checks if a website or API endpoint responds</li>
 	<li><strong>TCP Port:</strong> checks if a specific port is open (useful for databases, SSH, custom services)</li>
 	<li><strong>Ping:</strong> checks if a host responds to ICMP ping</li>
</ul></p>
<p>Set the check interval (default is 60 seconds), give the monitor a friendly name, and save. Uptime Kuma will immediately start checking and logging the status.</p>

<hr />

<h2>Step 6 — Set Up Notifications</h2>
Uptime Kuma supports many notification channels, including Telegram, Discord, Slack, Email, and generic webhooks. To set one up:
<ol>
 	<li>Go to <strong>Settings &gt; Notifications</strong></li>
 	<li>Click <strong>Setup Notification</strong></li>
 	<li>Choose your channel (for example, Telegram) and enter the required credentials (bot token, chat ID, etc.)</li>
 	<li>Save, then attach the notification to any monitor so it triggers on downtime</li>
</ol>

<hr />

<h2>Step 7 — Set Up a Status Page (Optional)</h2>
<p>Uptime Kuma includes a built-in public status page feature, useful if you want to share service status with clients or users without giving them dashboard access.</p>

<p>Go to <strong>Status Pages</strong> from the dashboard, create a new page, add the monitors you want visible, and publish. The page is accessible at a URL served directly by your Uptime Kuma instance.</p>

<img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-6832" src="https://evoxt.com/wp-content/uploads/2026/09/Status.png" alt="" width="1351" height="589" srcset="https://evoxt.com/wp-content/uploads/2026/09/Status.png 1351w, https://evoxt.com/wp-content/uploads/2026/09/Status-300x131.png 300w, https://evoxt.com/wp-content/uploads/2026/09/Status-1024x446.png 1024w, https://evoxt.com/wp-content/uploads/2026/09/Status-768x335.png 768w" sizes="(max-width: 1351px) 100vw, 1351px" />

<hr />

<h2>Step 8 — Secure the Dashboard</h2>
By default, the dashboard is reachable on port 3001 over plain HTTP, which isn't ideal for production use. Two recommended steps:
<ul>
 	<li>Put Uptime Kuma behind a reverse proxy (like Nginx) with SSL via Let's Encrypt, so it's accessible over HTTPS on a proper domain instead of a raw IP and port</li>
 	<li>Restrict direct access to port 3001 at the firewall level, so it's only reachable through the reverse proxy</li>
</ul>

<hr />

<h2>Common Issues and Troubleshooting</h2>
<strong>Dashboard not accessible on port 3001</strong>
<p>Check that your VPS firewall (UFW, iptables, or your provider's network firewall) allows inbound traffic on port 3001, or on port 443 if you've set up a reverse proxy.</p>

<strong>Monitoring data resets after container restart</strong>
<p>This usually means the volume wasn't mounted correctly. Confirm the <code>-v uptime-kuma:/app/data</code> flag was included in the <code>docker run</code> command, and check it with <code>docker volume ls</code> to confirm the volume exists.</p>

<strong>Notifications not sending</strong>
<p>Double-check the credentials entered for the notification channel (bot token, webhook URL, etc.), and confirm the notification is actually attached to the monitor, not just saved in settings.</p>

<hr />

<h2>FAQ</h2>
<strong>Is Uptime Kuma free?</strong>
<p>Yes, it's fully open-source and free to self-host, with no monitor limits or paid tiers.</p>

<strong>Can it monitor multiple servers from one instance?</strong>
<p>Yes, a single Uptime Kuma instance can monitor any number of external hosts, websites, or services, not just the VPS it's installed on.</p>

<strong>How is this different from UptimeRobot or Pingdom?</strong>
<p>Those are paid SaaS monitoring tools with free tiers that cap the number of monitors and check frequency. Uptime Kuma runs on your own VPS, so there are no such limits, at the cost of having to maintain the server yourself.</p>

<hr />

<h2>Conclusion</h2>
Uptime Kuma is one of the easiest ways to get reliable, self-hosted uptime monitoring running on a VPS, especially with Docker handling most of the setup complexity. Once it's running, adding monitors and notification channels takes just a few clicks. If you're looking for a VPS to run monitoring tools like this on, <a href="https://evoxt.com/">Evoxt's</a> plans are well suited for lightweight self-hosted services.

<hr />

<h2>Quick Setup: All Commands</h2>
For those who just want the commands, here's the full setup in sequence:
<pre>curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
mkdir uptime-kuma
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2</pre>
Then visit <code>http://your-vps-ip:3001</code> to finish setup in the dashboard.<p>The post <a href="https://evoxt.com/linux/how-to-set-up-uptime-monitoring-with-a-self-hosted-tool-uptime-kuma/">How to Set Up Uptime Monitoring with a Self-Hosted Tool (Uptime Kuma)</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Set Up Cloudflare WARP on a Linux VPS</title>
		<link>https://evoxt.com/guides/how-to-set-up-cloudflare-warp-on-a-linux-vps/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Fri, 04 Sep 2026 08:55:55 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6820</guid>

					<description><![CDATA[<p>This guide shows you how to set up Cloudflare WARP on a Linux VPS, from installing the client to choosing the right connection mode. WARP is a lightweight VPN/proxy tool built on WireGuard that routes your traffic through Cloudflare's network. Originally designed for mobile and desktop, it also runs on Linux servers via the warp-cli ... <a title="How to Set Up Cloudflare WARP on a Linux VPS" class="read-more" href="https://evoxt.com/guides/how-to-set-up-cloudflare-warp-on-a-linux-vps/" aria-label="More on How to Set Up Cloudflare WARP on a Linux VPS">Read more</a></p>
<p>The post <a href="https://evoxt.com/guides/how-to-set-up-cloudflare-warp-on-a-linux-vps/">How to Set Up Cloudflare WARP on a Linux VPS</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article>This guide shows you how to set up Cloudflare WARP on a Linux VPS, from installing the client to choosing the right connection mode. WARP is a lightweight VPN/proxy tool built on WireGuard that routes your traffic through Cloudflare's network. Originally designed for mobile and desktop, it also runs on Linux servers via the <code>warp-cli</code> command-line tool, making it useful for VPS setups where you need better routing, an extra layer of privacy, or a way around IP-based restrictions.
<hr />
<h2>What Is Cloudflare WARP and Why Use It on a VPS</h2>
WARP encrypts your VPS's outbound traffic and routes it through Cloudflare's global network instead of your provider's default route. On a server, this is typically used to:
<ul>
 	<li>Access services that block traffic from known VPS/datacenter IP ranges</li>
 	<li>Improve routing performance to certain destinations via Cloudflare's backbone</li>
 	<li>Add a local SOCKS5 proxy for specific applications without rerouting the whole server</li>
 	<li>Get a consistent, Cloudflare-assigned egress IP</li>
</ul>
It's free to use in its basic form and doesn't require a paid Cloudflare plan.
<hr />
<h2>Prerequisites</h2>
<ul>
 	<li>A VPS running Ubuntu, Debian, or CentOS/RHEL</li>
 	<li>Root or sudo access</li>
 	<li>Basic comfort with the terminal</li>
</ul>
For the official documentation, see Cloudflare's <a href="https://developers.cloudflare.com/warp-client/get-started/linux/">WARP client Linux setup guide</a>.
<hr />
<h2>Step 1 — Add the Cloudflare WARP Repository</h2>
<h3>Ubuntu/Debian</h3>
<pre>curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list</pre>
<h3>CentOS/RHEL</h3>
<pre>curl -fsSl https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo | sudo tee /etc/yum.repos.d/cloudflare-warp.repo</pre>
<hr />
<h2>Step 2 — Install warp-cli</h2>
<h3>Ubuntu/Debian</h3>
<pre>sudo apt install cloudflare-warp -y</pre>
<h3>CentOS/RHEL</h3>
<pre>sudo yum install cloudflare-warp -y</pre>
Verify the installation:
<pre>warp-cli --version</pre>
<hr />
<h2>Step 3 — Register the Client</h2>
Before connecting, the client needs to register a device identity with Cloudflare. No Cloudflare account is required for the free tier.
<pre>warp-cli registration new</pre>
This creates a local device registration tied to your server.
<hr />
<h2>Step 4 — Choose a Connection Mode</h2>
<p>WARP supports multiple modes. On a VPS, the mode you pick matters a lot.</p>
<h3>Proxy Mode (Recommended for servers)</h3>
Runs WARP as a local SOCKS5 proxy instead of tunneling all system traffic. This is the safest option for a VPS because it won't interfere with your SSH session or other services.
<pre>warp-cli mode proxy
warp-cli proxy port 40000</pre>
<h3>WARP Mode (Full tunnel)</h3>
Routes <strong>all</strong> outbound traffic through WARP. Use with caution on a remote VPS — if not configured correctly, this can route your SSH connection through the tunnel and lock you out if it drops.

<strong>Before switching to this mode</strong>, exclude your own SSH IP from the tunnel so your session isn't affected.
<pre>warp-cli tunnel ip add &lt;your-ssh-ip&gt;</pre>
Once the exclusion is set, switch to full tunnel mode:
<pre>warp-cli mode warp</pre>
<h3>DNS-only Mode</h3>
Routes only DNS queries through Cloudflare's 1.1.1.1 resolver, without proxying traffic. Useful if you only want faster/private DNS.
<pre>warp-cli mode doh</pre>
<hr />
<h2>Step 5 — Connect and Verify</h2>
<pre>warp-cli connect</pre>
Check the connection status:
<pre>warp-cli status</pre>
Verify traffic is routing through WARP:
<pre>curl https://www.cloudflare.com/cdn-cgi/trace</pre>
Or if you're using Proxy Mode:
<pre>curl -x socks5h://127.0.0.1:40000 https://www.cloudflare.com/cdn-cgi/trace</pre>
Look for <code>warp=on</code> in the output.
<hr />
<h2>Optional — Disconnect WARP</h2>
When you no longer need WARP active, or if you need to troubleshoot connectivity, disconnect it with:
<pre>warp-cli disconnect</pre>
<hr />
<h2>Common Issues and Troubleshooting</h2>
<strong>SSH lockout after enabling WARP mode</strong>
<p>If you switch to full WARP mode and lose SSH access, you'll need console access (via your VPS provider's control panel) to run <code>warp-cli disconnect</code> or switch back to proxy mode. Most VPS providers offer a browser-based VNC console for exactly this situation, log in to your provider's control panel, open the VNC/console session for the server, and you'll get direct terminal access even though SSH is unreachable. From there, run <code>warp-cli disconnect</code> to restore normal routing, then set up the SSH IP exclusion (see Step 4) before reconnecting to WARP mode.</p>

<strong>Registration fails</strong>
<p>Usually caused by outbound connectivity issues or a firewall blocking Cloudflare's endpoints. Confirm the VPS can reach <code>pkg.cloudflareclient.com</code> and Cloudflare's API endpoints.</p>

<strong>warp=on not showing in trace output</strong>
<p>Confirm <code>warp-cli status</code> shows "Connected," and that you're not behind a conflicting proxy or VPN already active on the same interface.</p>
<hr />
<h2>Conclusion</h2>
<p>Setting up Cloudflare WARP on a Linux VPS is straightforward once you understand the difference between Proxy Mode and full WARP Mode, and for most server use cases, Proxy Mode is the safer, more practical choice. If you're looking for a reliable VPS to run this kind of setup on, <a href="https://evoxt.com/">Evoxt's</a> plans are built to support configurations like this out of the box.
<hr />
<h2>Quick Setup:</h2>
Ubuntu/Debian(Proxy Mode):
<pre>curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
sudo apt install cloudflare-warp -y
warp-cli registration new
warp-cli mode proxy
warp-cli connect
warp-cli disconnect
</pre>
CentOS/RHEL(Proxy Mode):
<pre>curl -fsSl https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo | sudo tee /etc/yum.repos.d/cloudflare-warp.repo 
sudo yum install cloudflare-warp -y
warp-cli registration new
warp-cli mode proxy 
warp-cli connect
warp-cli disconnect</pre>
</article><p>The post <a href="https://evoxt.com/guides/how-to-set-up-cloudflare-warp-on-a-linux-vps/">How to Set Up Cloudflare WARP on a Linux VPS</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<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 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 loading="lazy" 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="auto, (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>Share local drives in RDP</title>
		<link>https://evoxt.com/windows/share-local-drives-and-other-devices-in-rdp/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Thu, 30 Oct 2025 09:59:19 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6480</guid>

					<description><![CDATA[<p>This guide shows exactly how to share local drives and optional devices (USB drives, clipboard, printers, smart cards) with a Windows VPS via Remote Desktop. Windows Remote Desktop Connection — share local drives Open Remote Desktop Connection: Win → type mstsc → Enter. Click Show Options → Local Resources. Under Local devices and resources, click ... <a title="Share local drives in RDP" class="read-more" href="https://evoxt.com/windows/share-local-drives-and-other-devices-in-rdp/" aria-label="More on Share local drives in RDP">Read more</a></p>
<p>The post <a href="https://evoxt.com/windows/share-local-drives-and-other-devices-in-rdp/">Share local drives in RDP</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[This guide shows exactly how to share local drives and optional devices (USB drives, clipboard, printers, smart cards) with a Windows VPS via Remote Desktop.

<hr />

<h2>Windows Remote Desktop Connection — share local drives</h2>
<ol>
 	<li>Open Remote Desktop Connection: <kbd>Win</kbd> → type <strong>mstsc</strong> → Enter.</li>
 	<li>Click <strong>Show Options</strong> → <strong>Local Resources</strong>.</li>
 	<li>Under <strong>Local devices and resources,</strong> click <strong>More…</strong>.<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6485" src="https://evoxt.com/wp-content/uploads/2025/10/rdp-1.png" alt="" width="407" height="486" srcset="https://evoxt.com/wp-content/uploads/2025/10/rdp-1.png 407w, https://evoxt.com/wp-content/uploads/2025/10/rdp-1-251x300.png 251w" sizes="auto, (max-width: 407px) 100vw, 407px" /></li>
 	<li>Expand <strong>Drives</strong> and check the drive letters you want to share (e.g., <em>C: or USB drives</em>).<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6486" src="https://evoxt.com/wp-content/uploads/2025/10/share.png" alt="" width="407" height="379" srcset="https://evoxt.com/wp-content/uploads/2025/10/share.png 407w, https://evoxt.com/wp-content/uploads/2025/10/share-300x279.png 300w" sizes="auto, (max-width: 407px) 100vw, 407px" /></li>
 	<li>Connect. In the VPS File Explorer, the drives appear as, for example, <em>C on YOUR-PC-NAME</em>.<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6484" src="https://evoxt.com/wp-content/uploads/2025/10/file-explorer.png" alt="" width="1122" height="630" srcset="https://evoxt.com/wp-content/uploads/2025/10/file-explorer.png 1122w, https://evoxt.com/wp-content/uploads/2025/10/file-explorer-300x168.png 300w, https://evoxt.com/wp-content/uploads/2025/10/file-explorer-1024x575.png 1024w, https://evoxt.com/wp-content/uploads/2025/10/file-explorer-768x431.png 768w" sizes="auto, (max-width: 1122px) 100vw, 1122px" /></li>
</ol>

<hr />

<h2>Optional devices you can redirect</h2>
<ul>
 	<li><strong>USB drives / external disks:</strong> appear under Drives if selected (Windows client). For full USB device redirection, you may need third-party USB redirection if the device isn't handled as a storage volume.</li>
 	<li><strong>Printers:</strong> appear as local printers in the VPS when enabled.</li>
 	<li><strong>Clipboard:</strong> enables copy/paste text and files (if allowed by policy).</li>
 	<li><strong>Smart cards &amp; serial ports:</strong> available from the same Local devices dialog if supported by the client and server.</li>
</ul>

<hr />

<h2>Save these settings for repeat connections</h2>
<ol>
 	<li>In Remote Desktop Connection → <strong>General</strong> → <strong>Save As…</strong> to store an .rdp file with redirection enabled.</li>
 	<li>Double-click the saved .rdp to reconnect with the same device/page redirection automatically.</li>
</ol>

<hr />

<h2>Server-side policy (if drives don’t show)</h2>
If redirected drives don’t appear, confirm the VPS allows drive redirection:
<ol>
 	<li>Open the <strong>Local Group Policy</strong> editor on the VPS. (press <kbd>Win + R</kbd> → type <code>gpedit.msc</code> → press <kbd>Enter</kbd>).</li>
 	<li>Navigate to <strong>Computer Configuration</strong> → <strong>Administrative Templates</strong> → <strong>Windows Components</strong> → <strong>Remote Desktop Services</strong> → <strong>Remote Desktop Session Host</strong> → <strong>Device and Resource Redirection</strong>.</li>
 	<li>Ensure "<strong>Do not allow drive redirection</strong>" is <strong>Disabled</strong> (or <strong>Not Configured</strong>).<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6487" src="https://evoxt.com/wp-content/uploads/2025/10/gpedit.png" alt="" width="1717" height="634" srcset="https://evoxt.com/wp-content/uploads/2025/10/gpedit.png 1717w, https://evoxt.com/wp-content/uploads/2025/10/gpedit-300x111.png 300w, https://evoxt.com/wp-content/uploads/2025/10/gpedit-1024x378.png 1024w, https://evoxt.com/wp-content/uploads/2025/10/gpedit-768x284.png 768w, https://evoxt.com/wp-content/uploads/2025/10/gpedit-1536x567.png 1536w" sizes="auto, (max-width: 1717px) 100vw, 1717px" /></li>
</ol>

<hr />

<h2>Quick troubleshooting</h2>
<ul>
 	<li><strong>Drives don’t appear:</strong> reconnect after enabling drives; check <code>gpedit.msc</code> (above) or verify if you selected the correct drive letters.</li>
 	<li><strong>USB device not visible:</strong> Windows treats some USBs as devices, not volumes — consider copying files to a local folder first, or use a USB redirection tool.</li>
 	<li><strong>File copy fails/slow:</strong> check network speed and ensure large transfers are tolerated by your network/bandwidth plan.</li>
</ul>

<hr />

<h2>Security and best practices</h2>
<ul>
 	<li>Only enable the drives or devices you need — avoid exposing entire local disks on shared or untrusted servers.</li>
 	<li>Prefer copying specific files into a temporary folder and then transferring, rather than exposing the entire C: drive.</li>
 	<li>Keep your client machine secure — redirected drives are only as safe as the local PC.</li>
</ul>

<hr />

For more Evoxt VPS guides, visit <a href="https://evoxt.com/category/">Evoxt Tutorials</a>. If you need help, <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/windows/share-local-drives-and-other-devices-in-rdp/">Share local drives in RDP</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Adjust ClearType in Remote Desktop (RDP)</title>
		<link>https://evoxt.com/windows/how-to-adjust-cleartype-in-remote-desktop-rdp/</link>
		
		<dc:creator><![CDATA[junxian]]></dc:creator>
		<pubDate>Thu, 30 Oct 2025 08:06:36 +0000</pubDate>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://evoxt.com/?p=6459</guid>

					<description><![CDATA[<p>If your Remote Desktop (RDP) connection to a Windows VPS looks blurry or the text isn’t sharp, you can fix it easily by adjusting ClearType. This feature makes fonts smoother and easier to read on screens. This guide will show you how to adjust ClearType inside your Evoxt Windows VPS for the best visual clarity. ... <a title="How to Adjust ClearType in Remote Desktop (RDP)" class="read-more" href="https://evoxt.com/windows/how-to-adjust-cleartype-in-remote-desktop-rdp/" aria-label="More on How to Adjust ClearType in Remote Desktop (RDP)">Read more</a></p>
<p>The post <a href="https://evoxt.com/windows/how-to-adjust-cleartype-in-remote-desktop-rdp/">How to Adjust ClearType in Remote Desktop (RDP)</a> appeared first on <a href="https://evoxt.com">Evoxt</a>.</p>
]]></description>
										<content:encoded><![CDATA[If your Remote Desktop (RDP) connection to a Windows VPS looks blurry or the text isn’t sharp, you can fix it easily by adjusting <strong>ClearType</strong>. This feature makes fonts smoother and easier to read on screens. This guide will show you how to adjust ClearType inside your Evoxt Windows VPS for the best visual clarity.

<hr />

<h2>Adjust ClearType Settings Inside the VPS</h2>
This is the main step to make text on your Remote Desktop session look clear and sharp.
<ol>
 	<li>After connecting to your Windows VPS, press <kbd>Win + S</kbd> and search for <strong>ClearType</strong>.</li>
 	<li>Click on <strong>Adjust ClearType text</strong>.
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6476" src="https://evoxt.com/wp-content/uploads/2025/10/search.png" alt="" width="765" height="716" srcset="https://evoxt.com/wp-content/uploads/2025/10/search.png 765w, https://evoxt.com/wp-content/uploads/2025/10/search-300x281.png 300w" sizes="auto, (max-width: 765px) 100vw, 765px" /></li>
 	<li>Ensure <strong>Turn on ClearType</strong> is checked, then click <strong>Next</strong>.
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6473" src="https://evoxt.com/wp-content/uploads/2025/10/cleartype.png" alt="" width="689" height="565" srcset="https://evoxt.com/wp-content/uploads/2025/10/cleartype.png 689w, https://evoxt.com/wp-content/uploads/2025/10/cleartype-300x246.png 300w" sizes="auto, (max-width: 689px) 100vw, 689px" /></li>
 	<li>Follow the on-screen steps to select the text that looks best to you.
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6477" src="https://evoxt.com/wp-content/uploads/2025/10/tuner.png" alt="" width="689" height="565" srcset="https://evoxt.com/wp-content/uploads/2025/10/tuner.png 689w, https://evoxt.com/wp-content/uploads/2025/10/tuner-300x246.png 300w" sizes="auto, (max-width: 689px) 100vw, 689px" /></li>
 	<li>Click <strong>Finish</strong> to apply your chosen ClearType settings.
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6474" src="https://evoxt.com/wp-content/uploads/2025/10/finish.png" alt="" width="689" height="565" srcset="https://evoxt.com/wp-content/uploads/2025/10/finish.png 689w, https://evoxt.com/wp-content/uploads/2025/10/finish-300x246.png 300w" sizes="auto, (max-width: 689px) 100vw, 689px" /></li>
</ol>
This fine-tunes how Windows renders text, resulting in smoother and easier-to-read fonts when using RDP.

<hr />

<h2>Optional: Enable Font Smoothing in RDP Client</h2>
Before connecting to your Evoxt Windows VPS:
<ol>
 	<li>Open <strong>Remote Desktop Connection</strong> (press <kbd>Win + R</kbd> → type <code>mstsc</code> → press <kbd>Enter</kbd>).</li>
 	<li>Click on <strong>Show Options</strong>.</li>
 	<li>Go to the <strong>Experience</strong> tab.</li>
 	<li>Ensure the following options are checked:
<ul>
 	<li><strong>Font smoothing</strong> (this enables ClearType)</li>
 	<li><strong>Desktop composition</strong> (optional, improves visuals)</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-6475" src="https://evoxt.com/wp-content/uploads/2025/10/rdp.png" alt="" width="407" height="486" srcset="https://evoxt.com/wp-content/uploads/2025/10/rdp.png 407w, https://evoxt.com/wp-content/uploads/2025/10/rdp-251x300.png 251w" sizes="auto, (max-width: 407px) 100vw, 407px" /></li>
 	<li>Under “Connection speed”, choose <strong>LAN (10 Mbps or higher)</strong> for best quality.</li>
 	<li>Click <strong>Connect</strong> to log in.</li>
</ol>

<hr />

<h2>Conclusion</h2>
<p>By adjusting ClearType settings inside your VPS, you can make fonts appear crisp and readable in Remote Desktop sessions. For additional improvement, enable font smoothing in your RDP client before connecting. These small changes can greatly enhance your experience when working on your Evoxt Windows VPS.

<p>For more Evoxt VPS guides, visit <a href="https://evoxt.com/category/">Evoxt Tutorials</a>. If you need help, open a <a href="https://console.evoxt.com/submitticket.php">support ticket</a>.<p>The post <a href="https://evoxt.com/windows/how-to-adjust-cleartype-in-remote-desktop-rdp/">How to Adjust ClearType in Remote Desktop (RDP)</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>
	</channel>
</rss>
