How to configure VPS
13:35, 15.06.2021
No matter the size of businesses, they all depend on the hosting environment for the smooth operation of websites and applications. For organizations that need both flexibility and security, VPS is the optimal choice.
However, setting up and configuring a VPS can be a challenge, especially for those new to server management and web hosting. The intricacies of setup can be overwhelming, even for the most tech-savvy individuals.
This comprehensive guide will walk you through six straightforward steps to configure your VPS like a seasoned expert, regardless of the operating system you’re using.
Comparing Dedicated Servers and VPS Solutions
Overview of Dedicated Servers
A dedicated server is a physical server that works exclusively to power your website or application. This setup provides you with full control and access to all server resources, including the processor, memory, storage, and bandwidth. This level of autonomy allows you to tailor the server to your specific needs.
Advantages of dedicated hosting:
- Superior performance. With dedicated resources, you can expect faster load times, enhanced security, and improved overall performance.
- High traffic support. A dedicated server can handle websites or applications with high traffic or demanding computational needs.
- Resource exclusivity. Dedicated servers show consistent performance without concerns about other users affecting your server’s efficiency.
Understanding VPS Hosting
A VPS bridges the gap between shared hosting and dedicated servers. By using virtualization technology, a VPS divides a physical server into multiple virtual servers, each operating independently like its own mini-dedicated server. Although they share the same hardware, virtualization ensures each VPS has its share of dedicated resources.
VPS hosting is:
- Cost-Effective. Hosting with VPS is more affordable than with a dedicated server since resources are shared among multiple users.
- Ideal for growing businesses. Virtual private servers are a good choice for small to medium-sized businesses or websites with moderate traffic.
- Scalability. VPS allows you to easily adjust resources as your needs change, such as upgrading or downgrading without physical hardware changes.
- Customization. With VPS, you have the freedom to install any software, choose your operating system, and configure settings to meet your specific requirements.
Here’s a side-by-side comparison of dedicated servers and VPS:
VPS | Dedicated servers | |
Resource allocation | VPS offers dedicated resources in a virtually shared environment. | Dedicated server resources belong exclusively to the user. |
Performance | Offers good uptime and performance metrics if the usage of the server by other users is reduced. | Offers excellent performance, and uptime, since dedicated servers aren’t shared. |
Customization | VPS allows you to customize the software part of the server. | Dedicated servers allow you to customize both software and hardware parts of the server. |
Security | Allows you to install security software; however, leaves you vulnerable if other users you share a server with have a security breach. | Allows you to install the software and hardware means of security; however, might be hard to discern how to properly protect your server if you don’t have expertise. |
Scalability | Easily scalable and adaptable to the needs of growing businesses. | Has resource limits and is not easily scalable. |
Pricing | Middle-range hosting option, with great value for the money. | The most expensive hosting option. |
Comprehensive Guide to Setting Up and Managing Your VPS
Some level of confusion is expected when it comes to VPS setup, especially if it is your first time dealing with servers. We are going to navigate you through the process.
Stage 1: Selecting a VPS Provider
Before even going into the VPS setup, choosing a reliable VPS provider is a must. It is important to select a provider that has a solid reputation, responsive customer support, and a variety of plans to meet your needs.
HostZealot is among the most popular VPS hosting providers, as it shows great metrics in uptime, performance, and security, and offers vast customization options. HostZealot utilizes cutting-edge infrastructure to provide a secure hosting environment for every client.
Getting started with HostZealot is simple. Just check HostZealot’s hosting plans, choose the one that best fits your needs, and sign up for an account.
Stage 2: Launch a New Virtual Machine with Your Chosen OS and Specifications
When choosing an operating system for VPS hosting, the two most popular options are Linux and Windows. Linux-based operating systems like Debian, Ubuntu, and CentOS are favored for their open-source nature, cost-effectiveness, and flexibility.
HostZealot supports both Linux- and Windows-based virtual private servers, allowing you to select the OS that suits your needs best.
If you're not keen on learning Linux commands, Windows might be a better option due to its user-friendly interface and ease of use.
After choosing your OS, the next step is to create a virtual machine instance on your server. Here's how to do that:
- Log into your VPS control panel.
- Decide which virtualization technology you’re going to use for creating a virtual machine. There are two main types of virtualization technology: based on the hypervisor and container. Use KVM, VMware, and Xen for hypervisor-based virtualization, and Docker LXC or LXD for container-based virtualization. The choice of virtualization technology should be based on your needs and requirements, and also on the capabilities of your hosting provider.
- Install the relevant software on your virtual private server. (In this tutorial we are going to use VMware).
- Launch the VMware workstation on your desktop, and press the “Create a New Virtual Machine” button.
- Select “Typical” in configuration options, and then click “Next”.
- Select “Installer disc image file (iso)”, and then click “Browse”.
- Choose the disk image of the OS from your computer, choose the name for it, and click “Next”. In this tutorial, we used Linux as the Guest operating system and CentOS 7 64-bit as its version.
- Create a name for your virtual machine, and choose its location.
- Assign disk space capacity to your virtual machine, and choose how you want to store (as one or multiple files).
- Check the information about your VM and click “Finish” if it is correct.
- Now, you have a created VM instance, which you can deploy. To do this, you need to launch it and set it up as you normally would on your desktop computer.
Stage 3: Access Your VPS Using SSH
Let’s look at how you can generate an SSH key pair and connect to your VPS.
Secure Shell (SSH) is a cryptographic network protocol that creates a secure channel for connections in the unsecured network to remote machines or servers. With SSH, you can execute remote commands, transfer files, and tunnel other protocols, all while ensuring that data transmitted between the client and server is encrypted and secure from interception.
SSH provides user identity verification before giving the user access to a remote system. The most commonly used cryptography method in this category is public key authentication, which allows only authorized users to get access to the system.
Let’s look at how you can generate an SSH key pair and connect to your VPS.
Instructions for Windows Users
1.Install (if you haven’t already) and launch the OpenSSH client.
2. Make sure you have an installed Git, and in the Git open the PowerShell or the Command Prompt.
3. To generate a new SSH key pair, insert the following command:
ssh-keygen -t rsa -b 4096
4. Press “Enter” and provide a location for a key pair to save to.
5. Enter the password or passphrase.
The SSH key pair will then be saved to the specified location.
6. For the next step, you will need an IP address of your VPS, which you can get from your hosting provider. Once you have acquired it, use the following command (make sure to replace username with your VPS username and your_vps_ip with the IP address of your VPS):
ssh username@your_vps_ip
If you prefer connecting to your VPS using a graphical user interface (GUI) rather than the Command Prompt, follow these steps after generating your SSH key:
1. Download and install PuTTY.
2. Open PuTTY, navigate to the Session category, enter your VPS IP address in the Host Name (or IP address) field, and select the SSH option in the Connection type field.
3. Go to the Connection category.
4. Expand the SSH menu, and select Auth.
5. In the Private key file for authentication field, click the Browse button to locate and load your SSH private key file, then click Open to initiate the SSH session.
You should now be connected to your server.
Instructions for Linux or macOS Users
- Open the terminal application, which has SSH pre-installed.
- Generate a new SSH key pair by running this command (adjust the bit size if needed):
ssh-keygen -t rsa -b 4096
- Press Enter to accept the default location or specify a different one for saving the key pair.
- When prompted, enter a strong passphrase for enhanced security.
- Obtain the IP address of your VPS from your hosting provider. Then connect to your VPS by typing the following command, replacing username with your VPS username and your_vps_ip with the IP address of your VPS:
ssh username@your_vps_ip
If you need to specify your private key, use the -i flag:
ssh -i /path/to/private_key username@your_vps_ip
You are now connected to your server.
Stage 4: Update Your Package Manager and Install Required Software
Once you have connected to your VPS, it’s crucial to update your package manager to ensure you have access to the latest software packages and security updates.
For Windows VPS:
The package manager is key to managing software installations and updates on your Windows VPS. Before installing new packages, update the package manager by running this command in the Command Prompt:
choco upgrade chocolatey
Next, determine the software packages you need. To install a package, use this command, replacing package-name with the name of the software:
choco install package-name
The package manager will then automatically download and install the requested software along with any necessary dependencies. This process may take some time, depending on the package size and your internet connection speed.
For Linux VPS:
Depending on your Linux distribution, the commands to update your system and install software packages may vary. Here are the instructions for some popular distributions:
1.Update the package lists and upgrade any outdated packages:
sudo aptupdate sudo aptupgrade
2. Install the necessary software packages, replacing package_name with the name of the software you need:
sudo aptinstall package_name
For CentOS:
1.Update the package lists and upgrade any outdated packages:
sudo yum update
2. Install the necessary software packages, replacing package_name with the name of the software you need:
sudo yumupdatesudo yumupgradesudo yuminstall package_name
Stage 5: Enhance Security by Setting Up a Firewall
You can enhance the security of your VPS even further by using a firewall. A firewall serves as a protective barrier that controls and monitors network traffic based on defined rules. By allowing or blocking specific incoming and outgoing traffic, a firewall helps safeguard your VPS against potential threats and unauthorized access.
For Windows VPS
To configure your firewall, open the Start menu and search for Windows Firewall with Advanced Security or access it from the control panel. Then, click on the Inbound Rules and Outbound Rules options in the left-hand panel. This will show you the current rules for incoming and outgoing traffic. Carefully review these rules to spot any vulnerabilities or misconfigurations, as understanding the existing rules is crucial before making any changes.
Windows Firewall with Advanced Security provides various rule types for different scenarios, such as rules based on specific ports, programs, or predefined services.
If you want to allow inbound traffic on a particular port while blocking all others, click on Inbound Rules and then select New Rule.
In the wizard that appears, choose the Port option and specify the port number. Select either TCP or UDP protocols as needed. To block access to other ports, select Block the connection. Name and describe the rule to clearly reflect its purpose.
You can also create outbound rules to control the traffic leaving your VPS, allowing for detailed management of the network traffic originating from your VPS.
For Linux VPS (using UFW)
Uncomplicated Firewall (UFW) is a straightforward command-line tool that makes firewall management on Linux systems easy through a simple interface that allows one to create and manage firewall rules with ease.
To install UFW, run the following commands:
sudo aptupdate sudo aptinstall ufw
According to default settings, UFW blocks all incoming connections and allows all outgoing connections. To view the current settings, use this command:
sudo ufw status verbose
Since SSH is commonly used to access a remote Linux server, it's essential to explicitly allow SSH connections. Use the following command for this:
sudo ufw allow ssh
Next, consider which services your VPS will be using, such as web hosting or database management. Allow access to these services by specifying the appropriate ports with this command:
sudo ufw allow <port>/<protocol>
Replace <port> with the relevant port number, and <protocol> with either tcp or udp, depending on the service requirements.
After defining the necessary rules, enable UFW with:
sudo ufw enable
Your firewall settings will be activated and applied upon rebooting your server.
For Linux VPS (using FirewallD)
Firewall Daemon (FirewallD) is a powerful tool for managing firewall settings on Linux systems. It provides an intuitive interface to control network traffic and configure firewall rules efficiently.
First, ensure your VPS uses a Linux distribution that supports FirewallD. Distributions like CentOS, Fedora, and Red Hat Enterprise Linux typically have FirewallD pre-installed. For other distributions, you may need to install it manually.
FirewallD uses zones to define the trust level for network connections. Each zone comes with a predefined set of rules that dictate traffic flow. Common zones include public, trusted, home, work, and internal.
To get started, check the default zone on your VPS, as this will apply to all unspecified network connections:
sudo firewall-cmd --get-default-zone
If the default zone doesn't match your security needs, change it with this command:
sudo firewall-cmd --set-default-zone=<zone>
Replace <zone> with the desired zone name, such as public, trusted, or internal. You might also need to adjust the rules within a zone to better fit your requirements.
FirewallD allows you to manage zones by adding or removing services, ports, and IP addresses. To set up a basic configuration that allows SSH connections and blocks all other incoming traffic, use:
sudo firewall-cmd --set-default-zone=drop sudo firewall-cmd --zone=public --add-service=ssh --permanent sudo firewall-cmd --reload
After configuring your zones and rules, enable FirewallD to ensure it starts automatically with your VPS:
sudo systemctl enable --now firewalld
These steps will allow you to effectively secure your Linux VPS with FirewallD. Remember, firewall settings should be tailored to your specific security needs and potential vulnerabilitie
Stage 6: Test Your VPS and Configure Additional Services or Applications
By meticulously testing your VPS, you can identify any underlying issues, evaluate its overall performance, and ensure optimal functionality. This proactive approach enables you to address potential obstacles upfront, guaranteeing a stable and secure environment for your applications and services.
Here is an overview of how you can test your VPS:
To ensure your VPS runs smoothly and securely, thorough testing is essential. By evaluating its performance and addressing potential issues early on, you can maintain a stable environment for your applications and services.
How to test your VPS:
1.Verify SSH connectivity: Start by confirming you can securely connect to your VPS via SSH. This step checks your network connectivity and overall accessibility.
2. Monitor system resources: Use commands like top, htop, or free on Linux to gather real-time information about your system's resources:
sudo top sudo htop sudo free
These commands provide insights into CPU usage, memory consumption, and system performance.
For Windows VPS, use Task Manager or Resource Monitor to achieve similar results without command-line input.
3. Check network connectivity: Utilize ping and traceroute (or tracert on Windows) to verify stable internet connectivity for your VPS. These commands help identify any network issues that might affect your VPS’s performance.
Configuring Your VPS for Additional Services:
Once your VPS is tested and verified to be running smoothly, you can configure additional services to enhance its functionality.
Example: Setting Up a Web Server
1.Install Web Server Software: Choose and install software like Apache or Nginx:
sudo apt install apache2 # For Apache sudo apt install nginx # For Nginx
2. Configure the server: Set the server to listen on the desired port (typically port 80 for HTTP or port 443 for HTTPS). This ensures it can handle encrypted traffic.
3. Deploy website files: Place your website files in the appropriate directory on the server. For example, the default directory for Apache is /var/www/html.
4. Adjust firewall settings: Open the necessary ports in your firewall to allow incoming web traffic. For instance, to open ports 80 and 443 using UFW:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload
5. Test the Web Server: Visit your VPS IP address in a web browser to confirm the web server is functioning correctly.
By following these steps, you can effectively test and configure your VPS, ensuring it meets your specific needs and runs efficiently.
Setting Up a Database Server
- Install database software: Choose and install a database server like MySQL or PostgreSQL.
- Configure ports: Set the server to listen on the suitable port: port 3306 for MySQL or port 5432 for PostgreSQL.
- Create databases: Set up user accounts and create the databases required for your applications.
- Adjust firewall settings: Open the necessary ports in your firewall to allow database traffic.
- Verify connectivity: Test the database server using a client application like MySQL Workbench or pgAdmin.
Configuring a VPN Server
- Choose and install VPN software: Pick a VPN solution like OpenVPN or WireGuard and install it on your server.
- Set up VPN configuration: Adjust the server settings to your preferences, including network setup, encryption methods, and authentication options.
- Create client configurations: Generate configuration files for clients to establish a connection with your VPN server.
- Adjust firewall settings: Open the necessary firewall ports to permit VPN traffic.
- Verify VPN operation: Test your VPN setup by connecting through a client application like OpenVPN Connect or a WireGuard client.
For those new to VPS management or preferring to focus on other priorities, it’s beneficial to choose a dependable VPS provider. A reputable provider like HostZealot can deliver the necessary technical expertise, infrastructure, and support to keep your VPS running smoothly.
By partnering with a reliable provider and following best practices, you can enhance your VPS experience and ensure a secure and efficient environment for your applications or websites.
FAQ
How is VPS used, and what does it entail?
A VPS (Virtual Private Server) performs the functions of a dedicated server for various purposes such as hosting web applications, managing websites, or serving as a remote desktop for applications that need constant online access. You can connect to a VPS remotely and use it to install software, configure applications, and set up websites just like you would with a dedicated server.
How can I establish my initial connection to VPS?
After purchasing a VPS, you'll receive credentials from your provider, usually including an IP address, a username, and a password. For a Windows-based VPS, open Remote Desktop Connection, input the IP address, and log in with the provided credentials. For a Linux VPS, open your terminal, type ssh [username]@[ip_address], and enter your password when prompted.