Русский flag Русский Español flag Español

Case Studies

2025-09-17


Introduction

Imagine: ping works, DNS responds, ports are open, mtr shows no loss, but curl returns errors like connection reset by peer or SSL handshake failed. There’s clearly a problem, but standard tools are powerless.

At such moments, the only option is to look at the actual traffic — in other words, “listen to the wires.” This process is called packet sniffing or packet analysis. In this article, we’ll go through how to use three key tools: tcpdump, sngrep, and Wireshark.

Read more
2025-09-16

Introduction

Up to this point, we’ve used simple utilities for specific tasks:

  • ping checked connectivity,
  • traceroute showed the path,
  • ipconfig and arp helped with the local network,
  • telnet and nc tested ports.

That’s like having a separate hammer, screwdriver, and wrench. But sometimes you need a multi-purpose tool. Today we’ll look at three such “all-in-one” tools:

  • mtrping + traceroute on steroids,
  • nmap — universal network scanner,
  • curl — a command-line browser.

mtr — Real-Time Traceroute 🚀

What does it do?

Combines the features of ping and traceroute. In real time, it shows latency and packet loss percentage for each hop along the path.

Read more
2025-09-15

Introduction

A server’s IP address is like the postal address of an apartment building. But to reach the right apartment, you need the door number. In networking, these doors are ports.

  • HTTP runs on port 80.
  • HTTPS — on port 443.
  • Mail, databases, and other services listen on their own ports.

If a port is closed or nothing is listening on it, the site won’t open — even if the server is “alive.”

Read more
2025-09-14

Introduction

You’ve gone through all the checks from the previous articles:

  • The computer has the correct IP address (ipconfig).
  • The router responds (ping 192.168.1.1).
  • Ping to a public address (ping 8.8.8.8) works.

Looks like the internet is fine! But the browser won’t open google.com. 🤔 Welcome to the most common cause of such issues — DNS failures.


What is DNS? 📖

The internet runs on IP addresses (e.g., 142.250.184.110), but people prefer names (google.com).

Read more
2025-09-13

Introduction

In the previous article, we learned how to reach out to remote servers using ping and trace the path of packets with traceroute. But what if ping google.com doesn’t work, and traceroute stops right at the first step?

That’s a clear sign that the problem is nearby: on your computer, in the network cable, or in your home router. Before calling tech support, let’s check our own local network.

Read more
2025-09-11

In this guide, we’ll go through setting up an OpenVPN server on Ubuntu and connecting a Keenetic router to it. This setup is useful if you need to provide access to your home network or forward services (e.g., PBX or web server) through VPN.


1. Preparing the Ubuntu server

1.1 Installing packages

sudo apt update
sudo apt install -y openvpn easy-rsa iptables-persistent

1.2 Creating PKI (Easy-RSA v3)

make-cadir ~/easy-rsa
cd ~/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass

Server keys

./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh

Client keys (for Keenetic)

./easyrsa gen-req keenetic nopass
./easyrsa sign-req client keenetic

TLS key (specifically tls-auth, not tls-crypt)

openvpn --genkey secret ta.key

1.3 Distribute keys

2025-09-10

In the previous article, we deployed a basic Jitsi Meet server using Docker.
Now let’s look at how to secure your server, enable authentication, and optimize performance for stable video calls.


Authentication: Invite-Only Access

By default, Jitsi Meet allows anyone to create rooms. To restrict access — enable Secure Domain.

  1. Open the .env file and find the Prosody (XMPP server) section.
    ENABLE_AUTH=1
    AUTH_TYPE=internal
    

Here, internal means that users will be stored locally.

Read more
2025-09-09

Want to set up your own fully private video conferencing server?
Jitsi Meet is a great choice, and installing it with Docker is the fastest and most reliable way. This article provides a step-by-step guide to get your server up and running in just a few minutes.


Step 1: Preparation

Before installing, make sure you have:

  • A Linux server (e.g., Ubuntu).
  • A domain name pointing to your server’s IP (e.g., meet.your-domain.com).
  • Installed Docker and Docker Compose.

👉 If Docker isn’t installed yet — use the instructions from the previous article.

Read more
2025-09-08

Hello! If you’re even a little interested in the web, you’ve probably heard of curl. It’s a powerful and versatile command-line tool for interacting with web servers. It is used to send and receive data over various protocols: HTTP, FTP, SFTP, as well as mail protocols.

This guide is your first step. We’ll focus on the basics to help you understand how curl works and how to use it for everyday tasks.

Read more
2025-09-05


Introduction

Logrotate is a powerful tool for log management in Linux, but its interaction with Docker has its own specifics. This guide explains how to properly use logrotate with Docker containers and when it’s better to rely on Docker’s built-in log management tools.


Docker Containers and Logs

Docker collects logs from the standard output streams (stdout and stderr) of containers and, by default, stores them as JSON files:


/var/lib/docker/containers/\<container\_id>/\<container\_id>-json.log

If a container generates a lot of logs, these files can take up gigabytes and quickly consume all available disk space.

Read more