Home Technical

Technical

Yvan Alex
By Yvan and 1 other
13 articles

Installing windows server

Is it possible to install Windows with my own license? Please refer to the Microsoft license conditions of your license to determine if it is eligble for use on a cloud server. The installation must be done manually. For this, the CD/DVD images can be used. Why is the time on my server not correct? All Vps hosts use UTC as the system time, which is why Windows often has a problem with the system time within the vServers. To fix this problem permanently, it is necessary to create an entry in the Windows registry, which tells Windows that the hardware clock (RTC - emulated by the host system) is not the local time zone, but UTC. The following command must be entered in the command prompt (cmd.exe): reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f It is then necessary to restart Windows. After the restart the following command can be used to check if the setting was successfully applied: reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /s IPv6 configuration (If your VPS has ipv6 assigned) By default, Windows uses temporary addresses for IPv6 connections. This can prevent you that you can use your /64 network. To be able to use the IPv6 network, you should disable the use of temporary addresses by default. Windows Server 2012, 2012R2, 2016 Run the following commands by Windows PowerShell with administration rights: Set-NetIPv6Protocol -RandomizeIdentifiers Disabled Set-NetIPv6Protocol -UseTemporaryAddresses Disabled Windows 2008R2 Run the following commands in a cmd.exe with administration rights: netsh interface ipv6 set global randomizeidentifiers=disabled store=active netsh interface ipv6 set global randomizeidentifiers=disabled store=persistent netsh interface ipv6 set privacy state=disabled store=active netsh interface ipv6 set privacy state=disabled store=persistent What should be kept in mind during a manual installation? To install Windows, it is necessary that the VirtIO drivers are installed. The driver can be mounted and installed via an ISO image (virtio-win-latest[…].iso). The folders of the necessary drivers are named as follows: - Ballon - NetKVM - vioscsi Each of them will usually have a folder with the architecture (amd64). This must be selected to install the drivers. Example instructions To get to the selection of the available CD/DVD images, you must select your server in the control panel and go to the "ISOs" tab. You must then select the ISO and mount it with a click on "MOUNT" Now you can start your server and perform the installation normally up to the point where the installation asks for the installation type. Please select the custom installation and continue with the installation. If you get a blue screen, please switch your server off and on with the power button. Install driver Now proceed up to the point where the installation searches for the drive. At this point, you have to switch the image to the latest available VirtIO driver CD and mount it to your server. To do so go back to your control panel,go to ISOs tab, "Unmount" the current ISO, search for the VirtIO driver ISO and click on "MOUNT“ Do NOT restart your server, when mounting the VirtIO driver. Subsequently, the below mentioned drivers need to be installed. Each of the folders will usually have a subfolder with the architecture (amd64). This must be selected to install the drivers. After installing the driver you need to switch back to the previously used Windows Image. To do so go back to your control panel, go to the ISOs tab, "Unmount" the current VirtIO driver, search for the Windows image that you started to install and click on "MOUNT“ Do NOT restart your server, when mounting the Windows ISO to continue the installation. Now, you have to delete and format the drives. Finally, you can resume the installation as normal. Fixing ethernet drivers If your server cannot reach the internet and you have an issue with your ethernet driver you might need to do the following: Mount the VirtIO iso again if you already unmounted it. Go to Device Manager and choose the Ethernet Adapter (it may vary) option. It will have an exclamation mark (!) on it. Right click on it and click on ‘Update driver’ Option -> now choose to install from computer and click browse and go to mounted image -> NetKVM -> 2k16 and choose amd folder (again take care of windows version)." Configuring ethernet adapter You need to manually configure your ethernet adapter to have a working internet connection. Please use the below information: The gateway is your ip address with .1 as the last digit. Example: 185.198.234.54 gateway: 185.198.234.1 subnet mask: 255.255.255.0 The exception for that is if you are VPS / server is located in Germany or Finland. Then your gateway will be : 172.31.1.1 Connect with RDP After driver update go to Server manager -> Local Server and change two options : 1. Turn off ‘IE Enhanced Security Configuration’ for both Administrator and Users. 2. Enable ‘Remote Desktop’ option (Uncheck ‘Allow Connections only from computers running Remote Desktop with Network Level Authentication (recommended)’ option.) and click apply -> OK. Now you can connect to your server with RDP. ⚠️ Protect your RDP Your ip address is public and many bots will constantly try to connect to your RDP port with random password. This can and will lock your user in windows. To prevent that you have several options: 1- Do not use Administrator as login 2- Change the default RDP port 1. Edit the registry 1. Press Win + R, type regedit, press Enter. 2. Navigate to: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\Tcp Look for the PortNumber value (DWORD). Change it from 3389 (default) to your desired port, e.g. 50000. Use Decimal input mode when editing. 1. Update Windows Firewall Open Windows Defender Firewall with Advanced Security. Go to Inbound Rules → locate Remote Desktop (TCP-In). Add a new rule or edit the existing one to allow traffic on your new port (e.g. 50000). Protocol: TCP Port: new port number 2. Restart RDP service Either reboot or restart the RDP service: net stop termservice net start termservice (Might require console/local login if RDP disconnects.) 3- Disable the lockout policy if your windows version supports it 1. Open Local Security Policy - Press Win + R, type secpol.msc, and press Enter. - Navigate to: Security Settings → Account Policies → Account Lockout Policy. 2. Configure the following - Account lockout threshold → set to 0 invalid logon attempts (this means never lock out). - Reset account lockout counter after → any value (irrelevant if threshold = 0). - Account lockout duration → Not Applicable if threshold = 0.

Last updated on Jul 23, 2026

Custom ISO installation – configure gateway

Doing a manual installation via ISO you will have to configure the default gateway yourself. This guide explains how to set up the default gateway manually. Prerequisites: The new ISO image must have been mounted You must have performed a restart on your server After the server’s restart, you have to complete the image installation via the VNC console. You can open the console by clicking the VNC button on your control panel non your server page at https://my.servers.guru. Configuring the default gateway: During the installation When you open the console as explained above, it will view the installation. Please use the below information: The gateway is your ip address with .1 as the last digit. Example: 185.198.234.54 gateway: 185.198.234.1 The exception for that is if you are VPS / server is located in Germany or Finland. Then your gateway will be : 172.31.1.1 After the installation To Connect to the server after the installation, you can use a normal CLI again, instead of the VNC console. If you cannot set the IP address and gateway during installation, you can add them temporarily using the following command: sudo ip addr add Your.IP.Address/32 dev Your.Network.Interface.Name sudo ip route add Your.Default.Gateway.IP dev Your.Network.Interface.Name sudo ip route add default via Your.Default.Gateway.IP dev Your.Network.Interface.Name However, those commands will no longer be in effect after a reboot. To Change the default permanently after the installation, you will have to edit the network configuration. Ubuntu/Debian Ubuntu 18.04 and newer Ubuntu 18.04 (and newer) uses netplan, which is different to the older configurations of Ubuntu. Open the .yml file in the /etc/netplan/ folder: (e.g.: 50-cloud-init.yaml) nano /etc/netplan/50-cloud-init.yaml Edit the file: (Change "ens18" with the name of your network interface) network: version: 2 ethernets: ens18: addresses: - {{ your ipv4 address}}/32 nameservers: addresses: - 9.9.9.9 - 149.112.112.112 search: - servers.guru routes: - on-link: true to: default via: {{your ipv4 gateway}} Once you are done, you can use CTRL + X to exit the file, Y to save the file and ENTER to confirm. To apply the changes, use the command: sudo netplan apply Debian 9 or newer / Ubuntu 16.04 Open the configuration file in the /etc/network folder: nano /etc/network/interfaces Edit the file: Replace eth0 with the network interface of your vps ( you can find it by using the command ip addr) auto eth0 iface eth0 inet static address {{your ipv4 address}}/32 gateway {{your ipv4 gateway}} Once you are done, you can use CTRL + X to exit the file, Y to save the file and ENTER to confirm.

Last updated on Aug 03, 2026

Extra ip address configuration

For extra IPs to work, you must configure them inside the operating system of the server you use. First, you need to find the name of the extra network interface card (NIC) by running the command: ip add Look for the extra NIC name (e.g.: eth1) To temporarily configure an IPv4 “1.2.3.4”, you can run: ip addr add 1.2.3.4/32 dev eth1 Please note that this configuration will not survive a reboot. To configure the first IPv6 address of an IPv6 netblock 2a01:4f8:2c17:2c::/64, you should run: ip addr add 2a01:4f8:2c17:2c::1/128 dev eth1 How do i permanently configure an extra IP? On Debian based distributions (Ubuntu versions before 20.04, Debian): 1. Access the server via SSH. 2. Edit the configuration file (e.g.: 50-cloud-init) in the folder /etc/network/interfaces.d: sudo nano /etc/network/interfaces.d/50-cloud-init 1. Paste the following configuration at the bottom of the file and replace your.Extra.IP with your extra IP: IPv4: (Change the 'eth1' with the name of your extra NIC) auto eth1 iface eth1 inet static address your.Extra.IP/32 For example: IPv6: iface eth1 inet6 static address Your.IP.V6.Address netmask 64 Save and close the file (Ctrl+X) 1. Now you should restart your network. Caution: This will reset your network connection: sudo service networking restart Ubuntu 20.04 and higher: 1. Access the server via SSH. 2. Edit the configuration file (e.g.: 50-cloud-init.yaml) in the folder /etc/netplan: sudo nano /etc/netplan/50-cloud-init.yaml 1. Add your extra NIC configuration at the bottom of the file using this structure: (Change the 'eth1' with the name of your extra NIC) IPv4: eth1: addresses: - Your.IP.Address/32 For example: IPv6: eth1: addresses: - Your.IP.V6.Address/64 Save and close the file (Ctrl+X) 1. Now you should restart your network. Caution: This will reset your network connection: sudo netplan apply On RHEL based distributions (Fedora, CentOS): 1. Access the server via SSH. 2. Create the configuration file and open an editor: (Change the 'eth1' with the name of your extra NIC) touch /etc/sysconfig/network-scripts/ifcfg-eth1 vi /etc/sysconfig/network-scripts/ifcfg-eth1 3. Paste the following configuration into the editor and replace your.Extra.IP with your extra IP: IPv4: BOOTPROTO=static DEVICE=eth1 IPADDR=your.Extra.IP PREFIX=32 TYPE=Ethernet USERCTL=no ONBOOT=yes IPv6: BOOTPROTO=none DEVICE=eth1 ONBOOT=yes IPV6ADDR=one IPv6 address of the subnet, e.g. 2a01:4f9:0:2a1::2/64 IPV6INIT=yes 4. Now you should restart your network. Caution: This will reset your network connection: sudo systemctl restart NetworkManager 5. In some newer versions of CentOS distributions (such as CentOS 9 and 10), you sometimes need to configure the routing table to enable extra IP addresses: (Change the 'eth1' with the name of your extra NIC) nmcli connection modify "cloud-init eth1" ipv4.route-table 200 nmcli connection modify "cloud-init eth1" ipv4.routing-rules "priority 100 from your.extra.ip.address table 200" nmcli connection up "cloud-init eth1"

Last updated on Jul 31, 2026

Install GUI for Linux Server and connect by RDP

For Debian/ Ubuntu: To install a graphical user interface (GUI) on a Debian/Ubuntu server, please follow the instructions below: 1. Update System Run package updates to make sure your repositories are fresh: sudo apt update sudo apt upgrade -y 2. Install Full GNOME Desktop Install the core desktop and display manager: sudo apt install task-gnome-desktop -y 3. Enable and Boot Into GUI: Set your system to start the graphical display manager automatically on boot: sudo systemctl set-default graphical.target Reboot your server to load the login screen: sudo reboot 4. Enable Remote Desktop To enable remote desktop access on your server, the easiest and most secure method is installing an Xrdp server, which allows you to connect from any Windows, Mac, or Linux machine using standard Remote Desktop Protocol (RDP) clients. Install and Start XRDP: - Update your package index: sudo apt update - Install the Xrdp package: sudo apt install xrdp -y - Verify that the Xrdp service is running successfully: sudo systemctl status xrdp 5. Configure Firewall: If you have enabled firewall on your VPS, you have to configure firewall to allow RDP connection. - Allow incoming RDP traffic through your system firewall: sudo ufw allow 3389/tcp - Reload your firewall settings: sudo ufw reload 6. Connect from Your Client Machine: - Open the Remote Desktop Connection app on Windows (or an RDP client like Remmina on Linux / Microsoft Remote Desktop on macOS). - Type your server's IP address and click connect. - Enter your username and password at the Xrdp login prompt. For Cent OS: To install a graphical user interface (GUI) on a CentOS server, please follow the instructions below: 1.Check the available package groups: Check the available package groups by the command: dnf group list The output will be in the following format: Available Environment Groups: Server with GUI Minimal Install Workstation Custom Operating System Virtualization Host ... 2. Installing GNOME GUI: Install GNOME GUI by running the following command: dnf groupinstall "Server with GUI" -y 3. Set GUI as Default: systemctl set-default graphical 4. Reboot the System: reboot Now you can connect to the CentOS server's GUI via the VNC console in the server control panel. You can configure language, keyboard, and user accounts on the initial setup screen. 5. Enable Remote Desktop: To enable remote desktop access on CentOS after installing the GUI, use the built-in RDP (Remote Desktop Protocol) sharing feature in GNOME Step-by-Step Enablement: - Open Settings from the top-right system menu. - Click Systems in the left sidebar. Chose Remote Desktop. - On the Desktop Sharing tab, toggle on Desktop Sharing and Remote Control, setup the login details (Username and Password). - On the Remote Login tab, toggle on Remote Login (need to unlock first), setup the login details (Username and Password). - Configure the Firewall: You must open the default RDP port (3389) to allow external connections: sudo firewall-cmd --zone=public --add-service=rdp --permanent sudo firewall-cmd --reload - You can now connect remotely to your CentOS server using the username and password set up in the previous step.

Last updated on Aug 10, 2026

How to SSH to your server

After ordering a VPS on our website, you will receive your username and password via email. You can then attempt to log in to the server using the Console feature (VNC, Spice) in the server control panel with the provided credentials. However, using the Console can be somewhat slow; instead, you can use SSH to connect to your server. 1. SSH by using Terminal: If you are using OS based on Linux (Ubuntu, Cent OS...) or the Mac OS on your local machine, you can use Terminal to ssh to your server. - Open Terminal on your local machine. - Type the command: ssh [email protected] (example: ssh [email protected]). For the pop-up question, you can type "yes", after that you can paste the password received via email into it to authenticate: - You have now successfully connected to your VPS via SSH. - Disconnect: Type Exit and hit Enter to close the session. 2. SSH by using Command Promt: If you are using Window OS (Window Server, Window 11...) you can use Command Promt to ssh to your Server. - Open Command Promt on your window machine: Press the Windows Key + R, type cmd, and hit Enter. - Type the command: ssh [email protected] (example: ssh [email protected]) - Accept the Host Key (First Time Only): If prompted with a security warning about the authenticity of the host, type yes and press Enter. - Enter Your Password: Type the password for the remote user. Note: The cursor will not move or show characters while typing for security purposes. Press Enter once done. - Disconnect: Type Exit and hit Enter to close the session. 3. SSH to your Web Hosting : If you have purchased web hosting plans with SSH integration (Standard or Enterprise plans), you can connect to the web hosting server via SSH using your Plesk login credentials; the SSH port used is 63000. 4. Fingerprint issue with host key change: - You may sometimes encounter the error "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" when attempting to connect to a VPS via SSH; this typically occurs after changing the root password via the "rescue" tab or rebuild the the OS on the VPS: - This warning appears when your SSH client detects that your server's host key doesn't match what it previously recorded. It's expected after resetting your root password or rebuilding your VPS's OS, both of which can regenerate the server's SSH host key. - If you know the server was changed or reinstalled, you need to remove the old, stored host key so SSH can save the new one. Run the automated key-removal command provided directly in the error output: ssh-keygen -R your.vps.ip.address - Now you can reconnect to your VPS by SSH. It will prompt you to accept the new key fingerprint. Type yes to store it and connect. 5. Forcing password login (if SSH keeps timing out): - If you have multiple SSH keys configured on your computer, your SSH client may try all of them before falling back to a password — this can cause the connection to time out or get rejected with a Too many authentication failures error, especially if your server has a low MaxAuthTries limit. - To skip key-based auth and connect with just a password, use: ssh -o PubkeyAuthentication=no [email protected] - This tells SSH to skip trying your local keys entirely and go straight to password authentication.

Last updated on Aug 27, 2026

Create a VPN Server on your VPS

If you need to create a VPN server on your VPS, please follow this instructions (This instruction is based on Ubuntu OS): Create a WireGuard VPN server: 1. Connect to Your VPS: Please see this help article to know how to connect to your VPS by SSH: https://help.servers.guru/hc/help-center/articles/1787555500-how-to-ssh-to-your-vps 2. Install WireGuard: Install the WireGuard VPN app on your vps with this command: sudo apt update && sudo apt install -y wireguard 3. Generate Server Keys: Generate the Server Keys with this commands: umask 077 wg genkey | tee /etc/wireguard/privatekey 4. Enable IPv4 Forwarding: Edit /etc/sysctl.conf and uncomment or add: net.ipv4.ip_forward=1 5. Apply the change: sudo sysctl -p 6. Create Server Configuration: sudo nano /etc/wireguard/wg0.conf 7. Paste this code snipet to the file, replace <SERVER_PRIVATE_KEY> with the Server key that was generated above and replace eth0 with your server's primary network interface name, found via ip addr command: [Interface] PrivateKey = <SERVER_PRIVATE_KEY> Address = 10.0.0.1/24 ListenPort = 51820 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE 8. Start WireGuard & Enable on Boot: sudo systemctl enable --now wg-quick@wg0 9. Allow Port in Firewall: sudo ufw allow 51820/udp 10. Setup a WGDashboard: Setup a web-based GUI to add, monitor, and manage clients via QR codes: - Install dependencies and clone WGDashboard: sudo apt update sudo apt install net-tools git python3-pip -y git clone https://github.com/WGDashboard/WGDashboard.git cd WGDashboard/src - Run the installation script: chmod +x wgd.sh ./wgd.sh install - Start the dashboard service: ./wgd.sh start - Allow the dashboard port through your firewall: sudo ufw allow 10086/tcp - Access the Web Dashboard: Navigate to http://YOUR_VPS_IP:10086 in your browser. Log in using the default credentials (admin/admin) to manage, create, and download client configurations visually. 11. How to Use WGDashboard Once WGDashboard is up and running, you can manage your WireGuard server, create user profiles, and connect your client devices directly through the browser interface. - Creating a New Client Peer - Open Configuration Details: Click on your WireGuard interface (e.g., wg0). - Add Peer: Click the + Peer button. - Configure Peer Settings: - Name: Give the client a recognizable label (e.g., John-Phone or Work-Laptop). - Keys & IPs: WGDashboard automatically generates a unique Key Pair and assigns the next available internal IP address (e.g., 10.0.0.2/32). - Endpoint Allowed IPs: Ensure this is set to 0.0.0.0/0, ::/0 to route all internet traffic through the VPN server. - DNS: Set to a fast public resolver such as 1.1.1.1 or 8.8.8.8. - Save: Click Save to apply the configuration. The changes are pushed to WireGuard in real-time without interrupting active users. - Connecting Your Device - For Mobile Devices (iOS / Android): - Click the QR Code icon next to your newly created peer entry. - Open the WireGuard app on your smartphone, tap +, select Scan QR Code, and scan the code on your screen. - For Desktop Devices (Windows / macOS / Linux): - Click the Download File icon next to the peer to download the .conf configuration file. - Open the WireGuard Desktop App, click Add Tunnel, choose the downloaded file, and click Activate. Create a OpenVPN VPN server: 1. Quick install (using the official install script ): curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh chmod +x openvpn-install.sh ./openvpn-install.sh install 2. The script will walk you through prompts: - Public IPv4 address (auto-detected, usually just confirm) - Protocol (UDP recommended for performance; TCP if UDP is blocked on your network) - Port (default 1194, or choose a custom one) - DNS resolver for clients (Cloudflare, Google, etc.) - Client name (creates your first .ovpn config file) 3. After install, your client config file will be saved in your home directory, e.g.: /root/client.ovpn 4. Download this file (via SFTP) and import it into your OpenVPN client app (available for Windows, macOS, Linux, iOS, Android). 5. To add more clients later: ./openvpn-install.sh install 6. Re-run the script and select "Add a new user." Create a VLESS VPN server: VLESS with Reality is a modern, harder-to-detect protocol, well suited for bypassing restrictive network filtering. The easiest way to set it up is via a panel like Marzban or 3x-ui, rather than configuring Xray manually. 1. Quick install using 3x-ui (includes a web panel): bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) 2. Follow the setup prompts: - Database Selection: You can choose between SQLite and PostgreSQL databases depending on your needs. - Customize Panel Port: You can type n to apply a random port or y to set a custom port. - Choose SSL certificate setup method: You can keep the default option or select another one based on your needs. 3. After install, the script gives you: - A Panel Access URL (http://your_vps_ip:PORT) - An admin username/password (auto-generated) 4. Inside the panel: - Log in via the panel URL (use the username and password that has been auto-generated in the previous step) - Go to Inbounds → Add Inbound - Remark: Enter a name for your connection (e.g., My-VLESS-VPN). - Choose protocol: VLESS - Security: Select REALITY. - Configure Reality Settings: - Target / SNI: Leave default or set to google.com:443 - Keys: Click the Get New Cert button to auto-generate a new Private Key and Public Key set. - Click Create to save the inbound connection. - Go to Clients -> Add Clients - Insert the email of the client - Attached inbounds: Select all - Click Create. - Click the QR Code icon or copy the VLESS Link (vless://...) to your clipboard - Download a compatible VLESS client application on your target device: - Android: v2rayNG or NekoBox - iOS / macOS: FoXray, Streisand, or V2Box - Windows: v2rayN, Hiddify, or NekoBox - Linux: Hiddify or NekoBox - In your client app, select Import from Clipboard or scan the QR code to load your configuration, then activate the connection. Create a PiVPN Server: PiVPN was originally built for Raspberry Pi but works on any Debian/Ubuntu-based VPS. It offers a simpler, guided install than raw WireGuard/OpenVPN setup. 1. Install: - Use this command to install PiVPN: curl -L https://install.pivpn.io | bash - The installer will prompt you to: - Choose a VPN type: WireGuard (recommended, faster/modern) or OpenVPN - Confirm your public IP - Choose a port (default WireGuard port: 51820) - Choose a DNS provider for clients 2. After install, create a client profile: - Use this command to create a client profile: pivpn add - Enter the Client IP and Client Name: You can leave it default or setup by yourself. - This generates a .conf file (WireGuard) or .ovpn file (OpenVPN) for your device. (location of the file will be showed in the result of the command.) - You can setup the vpn connection by adding the configuration file to WireGuard or OpenVPN apps in your client devices. - To view/manage existing clients: pivpn list - To remove a client: pivpn revoke <client_name>

Last updated on Aug 28, 2026

Reset VPS password via Rescue ISO

Typically, if you forget your VPS password, you can reset it via the Rescue tab in the server control panel. However, if you set up the server using a custom ISO file (instead of using the Rebuild function), the Rescue feature will not work. In this case, you need to reset the password by mounting a rescue ISO file. Please follow this instruction to reset your password via Rescue Iso. 1. Boot into Rescue Mode: - Mount the rescue ISO: You can search for the Rescue ISO file from the ISOs tab in your VPS control panel, click Mount. - Reboot the VPS. Connect to the rescue system via the console function (VNC, Spice) on your VPS panel. Choose the default option in the Boot System Rescue. (Noted: You can not copy and paste in the console session.) 2. Locate the Root Disk Partition - Identify your primary operating system partition. Run: lsblk - Look for your main system partition (typically /dev/sda1, /dev/vda1, or an LVM volume like /dev/mapper/...). 3. Mount the System Partition: Create a temporary directory and mount your main filesystem to it: mkdir /mnt/sys mount /dev/sda1 /mnt/sys (Replace /dev/sda1 with your actual partition name). 4. Mount Virtual Filesystems & Chroot: Mount the necessary API filesystems so system commands work properly inside the environment, then change the root directory: for dir in /dev /dev/pts /proc /sys /run; do mount --bind $dir /mnt/sys$dir; done chroot /mnt/sys 5. Reset the Password: - Run the standard password reset tool inside the chroot environment: passwd root - Enter your new password twice when prompted. 6. Handle SELinux (Required for CentOS/RHEL/Rocky/AlmaLinux) - Skip this step if using Ubuntu or Debian - If your VPS runs an RHEL-based distribution, trigger an automatic filesystem relabel on the next boot: touch /.autorelabel 7. Exit and Unmount Exit the chroot shell, unmount the directories cleanly, and reboot: exit umount -R /mnt/sys reboot 8. Disable Rescue Mode: Unmount the Rescue ISO file and reboot your VPS so the VPS boots normally back into the main OS

Last updated on Aug 28, 2026

Enhance security for your VPS.

To enhance the security of your Virtual Private Server (VPS), you must implement a multi-layered defense strategy. Below is the comprehensive checklist of actionable steps and the exact terminal commands to secure your server: Phase 1: Identity & Access Management (IAM) The standard root account with password authentication is the primary target for automated brute-force attacks. Securing entry points is step zero. 1. Create a Non-Root User with Sudo Privileges Operating as root increases the risk of catastrophic system errors or privilege escalation exploits. Create a dedicated user account: - Create user: (Replace adminuser with your desired username) adduser adminuser - Grant sudo access: - For Debian/Ubuntu: usermod -aG sudo adminuser - For RHEL/CentOS: usermod -aG wheel adminuser 2. Enforce SSH Key Authentication Disable password logins entirely in favor of cryptographic key pairs (Ed25519 or RSA 4096-bit). 1. Generate a key pair on your local machine: Bash ssh-keygen -t ed25519 -C "[email protected]" 2. Copy the public key to your VPS: Bash ssh-copy-id adminuser@your_vps_ip 3. Harden the SSH Configuration Edit /etc/ssh/sshd_config (or a drop-in file in /etc/ssh/sshd_config.d/) to enforce strict authentication parameters: # /etc/ssh/sshd_config Port 2222 # Change default port to reduce automated bot noise PermitRootLogin no # Disable direct root access PasswordAuthentication no # Force SSH key usage MaxAuthTries 3 # Limit login attempts per connection X11Forwarding no # Disable graphical forwarding Apply the changes: Bash sudo systemctl restart sshd Phase 2: Network Perimeter Defense Once entry point policies are configured, strictly control network traffic entering and exiting your server. 1. Configure a Strict Firewall Implement an explicit default-deny inbound policy. Allow traffic only on explicitly required ports. - Install Firewall: Bash - For Ubuntu/Debian: sudo apt install ufw - For RHEL/CentOS: sudo dnf install firewalld -y - Ubuntu / Debian (UFW) config: Bash sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 2222/tcp # Custom SSH port sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS sudo ufw enable - RHEL / CentOS / AlmaLinux (Firewalld) config: Bash sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload 2. Implement Automated Intrusion Prevention (Fail2ban) Fail2ban scans system logs (like /var/log/auth.log) for repeated failed login attempts and dynamically injects temporary firewall rules to ban offenders. - Install Fail2ban: - For Ubuntu/Debian: sudo apt install fail2ban -y - For RHEL/CentOS: sudo dnf install fail2ban -y - Create a custom jail file at /etc/fail2ban/jail.local: Ini, TOML [sshd] enabled = true port = 2222 logpath = %(sshd_log)s backend = %(sshd_backend)s maxretry = 3 findtime = 10m bantime = 1h - Start and enable the service: sudo systemctl enable --now fail2ban Phase 3: Operating System & Software Patching Vulnerabilities in outdated system packages are frequently targeted via public exploit scripts. 1. Enable Automated Security Updates Ensure operating system packages receive security patches automatically without manual intervention. - Ubuntu/Debian: Bash sudo apt install unattended-upgrades sudo dpkg-reconfigure --priority=low unattended-upgrades - RHEL/CentOS: Bash sudo dnf install dnf-automatic sudo systemctl enable --now dnf-automatic.timer 2. Disable Unnecessary Services Every running service adds to your attack surface. Inspect active network listeners and stop unused daemons: Bash # View active TCP/UDP listening ports sudo ss -tulpn Disable any unnecessary services: Bash sudo systemctl stop <service_name> sudo systemctl disable <service_name> Phase 4: Application Isolation & Monitoring Security doesn't stop at the operating system layer; applications running on the VPS must also be sandboxed. - Containerization: Run public-facing applications (e.g., web servers, application runtimes) inside Docker or Podman containers to limit access to the host filesystem. - Reverse Proxying & WAF: Place web applications behind reverse proxies like Nginx or cloud security providers (e.g., Cloudflare) to mask your origin server's IP address and mitigate DDoS attacks. - Log Auditing: Regularly monitor access logs or centralized logging agents to detect anomalous traffic patterns early: Bash # Check failed login attempts sudo journalctl -u ssh -g "Failed"

Last updated on Sep 04, 2026

How to disable ipv6 on your VPS

Currently, IPv6 is not supported on our VPS plans (with the exception of Cloud Server and Dedicated Server plans); consequently, you may occasionally be unable to connect to the Internet via IPv6 from your VPS and will need to disable IPv6 to restore normal connectivity. Please follow the instructions below to disable IPv6 on your VPS: For Debian\Ubuntu: 1. Find your VPS network configuration file name: Run this command on your VPS: ls /etc/netplan/ (Usually, it is something like 50-cloud-init.yaml or 00-installer-config.yaml) 2. Edit that file: Change 50-cloud-init.yaml with your VPS network configuration file name sudo nano /etc/netplan/50-cloud-init.yaml 3. Add or edit the value link-local in your primary network interface configuration block (like eth0): link-local: [ ipv4 ] 4. Apply the configuration: sudo netplan apply 5. Check whether IPv6 has been disabled: ip add You will see that IPv6 does not appear in the command output. FOR RHEL\CENTOS: 1. Add sysctl configurations: - Open the main configuration file or create a dedicated runtime file: sudo vi /etc/sysctl.d/70-disable-ipv6.conf - Add the following lines to the file to turn off IPv6 for all current and future network interfaces: net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 2. Apply the changes: - Load the new settings immediately without needing a system reboot: sudo sysctl --system 3. Stop NetworkManager from overriding: CentOS uses NetworkManager to handle active interfaces, which can sometimes re-enable IPv6 on a reboot. You should explicitly set your connections to ignore IPv6: - View your active connections:: nmcli connection show - Modify your specific interface (e.g., "cloud-init eth0") to ignore IPv6: sudo nmcli connection modify "cloud-init eth0" ipv6.method "disabled" - Bounce the connection to apply it: sudo nmcli connection up "cloud-init eth0" 4. Verify IPv6 is disabled: Run the following command to check for any remaining active IPv6 configurations: ip addr show | grep inet6 If the command returns no output, IPv6 has been successfully deactivated on your server.

Last updated on Sep 07, 2026

How to Troubleshoot and Fix VPS Connection Issues

Can't reach your VPS via SSH or Remote Desktop (RDP)? Follow this step-by-step guide to isolate the cause and regain access quickly. 1. Check the Basics: Before diving into complex diagnostics, verify the fundamental credentials and local settings: - Verify IP & Ports: Double-check that you are using the correct server IP address and default port (Port 22 for SSH/Linux, Port 3389 for RDP/Windows). - Credentials: Ensure there are no trailing spaces when copying passwords from your emails. - Local Internet & VPN: Disable local active VPNs or proxies temporarily. Some corporate or public Wi-Fi networks block default SSH and RDP ports. - Quick Network Test: Try connecting using a mobile hotspot to rule out local ISP or router restrictions. 2. Access via Server Console (VNC/Spice): - If standard SSH or RDP fails, you can try to login to your VPS by the web-based Console (VNC/Spice) from your server Dashboard: - Please note that you must manually type your login credentials (you cannot copy and paste them into the console). And your password will not be displayed when you type it. - Once logged into the console, you can run some checks: - Check SSH status: sudo systemctl status ssh . If the ssh service status was disabledor inactive you can restart the ssh service by the command: sudo systemctl restart ssh - Verify Firewall Rules: Check if a newly added firewall rule is blocking your connection: sudo ufw status of sudo iptables -L - Check Resource Usage: High CPU or memory usage can cause network timeouts. Run curl -sL yabs.sh | bash (Linux) or open Task Manager (Windows) to see if processes are maxing out system resources. 3. Isolate Network vs. Server Status: Determine whether your VPS is completely down or if local network routing is preventing traffic. - Open your terminal or Command Prompt and run: mtr your_server_ip (Linux) pathping your_server_ip (Windows). - If packet drop completely: The server is likely powered off, suffering a network disruption, or blocking ICMP traffic. - Check Port Reachability: Test the specific connection port: - Linux: telnet your_server_ip 22 - Windows PowerShell: Test-NetConnection Your_Server_IP -Port 3389 4. Perform a Soft Reboot: If the server is unresponsive due to resource exhaustion or hung processes, initiate a Reboot from your server's control panel. Allow 3 to 5 minutes after rebooting before attempting to reconnect via SSH or RDP. 5. Contact Support: If you still cannot connect via VNC or if the server remains unreachable after a reboot, open a support ticket at https://my.servers.guru/tickets . Include: - Your Server IP address (you can find it from your server dashboard). - Output of the command mtr your_server_ipaddress (Linux) or pathping your_server_ipaddress (Windows) from your local machine. - Output of the command curl -sL yabs.sh | bash (from your VPS if you can login by the VNC console). - The exact error code shown in your SSH or RDP client.

Last updated on Sep 07, 2026