A diagram representing the goal of this article (and its title)

Forward TCP and UDP Traffic Across the Network With iptables

This is the third post of the series that started with “Changes to My Network, Sponsored By XMPP”. The Problem In that article, nearly at the very end, I was pointing out that a solution was needed for the XMPP traffic on non-Web ports (TCP and UDP other than 80 and 443) to be routed from a cloud VPS to my home server. I tried some NGINX configuration using its module streams, but it didn’t work, so I will post here how I ended up solving that using Linux’ –the kernel itself– packet filter rules through iptables. ...

September 7, 2025 Â· 6 min Â· 1156 words Â· Gabriel Viso Carrera
A diagram representing the goal of this article (and its title)

Exposing Services Hosted at Home Through a VPS and Tailscale

The Problem This text shows the steps to follow to connect an NGINX reverse proxy installed on a server A, and provide access through it to services hosted in a different machine, B. If the machines are in different locations or networks, we can solve the connectivity in several ways, one of them being a VPN. In my personal case, this allows me to install NGINX on a VPS and use it to expose services hosted at my home server, “barcas”. To connect the two machines and allow NGINX to reach the upstream services, I have used Tailscale. ...

September 5, 2025 Â· 8 min Â· 1634 words Â· Gabriel Viso Carrera
A picture of "barcas" --my server

Changes to My Network, Sponsored by XMPP

A few days ago, someone recommended Snikket to me as a simple option for setting up an XMPP server1, and I jumped in head first. Halfway through the descent, I encountered a bunch of interesting problems to solve, which I will break down step by step in the next few posts. In this one, I’m going to tell you what those problems are, why they arise, why I want to solve them, and how I’ve solved them, but from a design point of view for now. You won’t find a set of commands to solve all this, but rather some context about what I’m trying to solve; detailed instructions will come in the future. ...

August 31, 2025 Â· 6 min Â· 1165 words Â· Gabriel Viso Carrera