{"id":2764,"date":"2026-09-02T22:28:39","date_gmt":"2026-09-02T22:28:39","guid":{"rendered":"https:\/\/garikoitz.info\/blog\/?p=2764"},"modified":"2026-09-02T22:28:40","modified_gmt":"2026-09-02T22:28:40","slug":"de-un-vps-comercial-al-salon-de-casa-parte-5-conclusiones-despues-de-un-ano","status":"publish","type":"post","link":"https:\/\/garikoitz.info\/blog\/2026\/09\/de-un-vps-comercial-al-salon-de-casa-parte-5-conclusiones-despues-de-un-ano\/","title":{"rendered":"De un VPS comercial al sal\u00f3n de casa. Parte 5 \u2013 Conclusiones despu\u00e9s de un a\u00f1o"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A lo largo de un a\u00f1o he sufrido unas cuantas penurias, desde fallos tontos de configuraci\u00f3n hasta un corte de l\u00ednea de 24 horas. Aun as\u00ed, me siento orgulloso de transmitiros que es posible sobrevivir a la parte de administraci\u00f3n y que el aprendizaje es arduo y continuo. La evoluci\u00f3n ha sido progresiva y, en algunos casos, obligada, siendo m\u00e1s relevante la parte del hardware que la del software. Son pocas cosas, pero las voy a separar en puntos independientes para que quede m\u00e1s claro.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_87 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u00cdndice<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/garikoitz.info\/blog\/2026\/09\/de-un-vps-comercial-al-salon-de-casa-parte-5-conclusiones-despues-de-un-ano\/#Tomar_el_control_de_tu_red\" >Tomar el control de tu red<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/garikoitz.info\/blog\/2026\/09\/de-un-vps-comercial-al-salon-de-casa-parte-5-conclusiones-despues-de-un-ano\/#La_MicroSD_no_es_suficiente\" >La MicroSD no es suficiente<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/garikoitz.info\/blog\/2026\/09\/de-un-vps-comercial-al-salon-de-casa-parte-5-conclusiones-despues-de-un-ano\/#Problemas_con_Duck_DNS\" >Problemas con Duck DNS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/garikoitz.info\/blog\/2026\/09\/de-un-vps-comercial-al-salon-de-casa-parte-5-conclusiones-despues-de-un-ano\/#Dale_a_la_seguridad_la_importancia_que_se_merece\" >Dale a la seguridad la importancia que se merece<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tomar_el_control_de_tu_red\"><\/span>Tomar el control de tu red<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El primer problema que me encontr\u00e9 estuvo relacionado con el router de mi proveedor y con bloqueos del servicio aproximadamente una vez por semana. Esto me trajo por la calle de la amargura durante un par de meses, ya que estuve revisando y cambiando configuraciones intentando resolver el problema hasta que llegu\u00e9 a la conclusi\u00f3n de que no estaba en mi red, sino en el propio router del proveedor, ya que todo se solucionaba tras reiniciarlo. Cuando pas\u00f3 esto, el router del proveedor estaba funcionando como gateway de mi red, pero aun as\u00ed se saturaba.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Investigando un poco vi que la soluci\u00f3n pasaba por sustituir el router del proveedor por una <a href=\"https:\/\/bandaancha.eu\/articulos\/que-ont-fibra-como-elegir-adecuada-9866\" target=\"_blank\" rel=\"noopener\">ONT<\/a> y utilizar mi propio router. Una ONT, explicado de forma sencilla, no es m\u00e1s que el dispositivo que convierte la conexi\u00f3n de fibra \u00f3ptica en una conexi\u00f3n Ethernet que despu\u00e9s puedes conectar a tu router.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yo lo hice a trav\u00e9s de mi proveedor, que no me puso ninguna pega. Lo solicit\u00e9 mediante atenci\u00f3n al cliente y me lo mandaron de forma gratuita, aunque no todos los proveedores funcionan igual. Otra opci\u00f3n es comprar tu propia ONT, aunque esto requiere saber qu\u00e9 tipo necesitas, conocer los par\u00e1metros necesarios para conectarte a la red del operador y asumir que no siempre va a funcionar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aprovech\u00e9 la instalaci\u00f3n de la ONT para modernizar mi red local y poder sacar provecho a los 2,5 GbE de su salida Ethernet. El router que he instalado es un <a href=\"https:\/\/mikrotik.com\/product\/rb5009ug_s_in\" target=\"_blank\" rel=\"noopener\">MikroTik RB5009<\/a>, que tiene potencia suficiente para mi montaje, un puerto de 2,5 GbE, siete puertos Gigabit Ethernet y un puerto SFP+ de 10 GbE que me permite ampliar la red con otros dispositivos (esto es irrelevante para el servidor, pero os lo cuento para chulear ;-)).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La elecci\u00f3n del router es muy personal e incluso puede que os parezca una exageraci\u00f3n gastarse 200 \u20ac en uno, pero tened en cuenta que este tipo de equipos te dan la flexibilidad suficiente para todo tipo de configuraciones y futuras necesidades.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_MicroSD_no_es_suficiente\"><\/span>La MicroSD no es suficiente<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de alg\u00fan reinicio de la Raspberry Pi me pareci\u00f3 que tardaba m\u00e1s de la cuenta en arrancar. De nuevo tard\u00e9 en darme cuenta de que el problema no era de configuraci\u00f3n, sino de hardware, m\u00e1s concretamente de la tarjeta MicroSD.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de que la MicroSD se da\u00f1ase m\u00e1s de la cuenta hice una imagen de ella y la grab\u00e9 en un disco M.2 NVMe. Era el momento ideal para aprovechar y mejorar tambi\u00e9n la fiabilidad del almacenamiento, por lo que compr\u00e9 un segundo disco M.2 NVMe junto a una placa dual conectada a la Raspberry Pi mediante PCIe.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161050406.MACRO_FOCUS.avif\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"750\" data-id=\"2789\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161050406.MACRO_FOCUS.avif\" alt=\"\" class=\"wp-image-2789\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161050406.MACRO_FOCUS.avif 1000w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161050406.MACRO_FOCUS-300x225.avif 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161050406.MACRO_FOCUS-768x576.avif 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161050406.MACRO_FOCUS-360x270.avif 360w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161100446.MACRO_FOCUS.avif\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"750\" data-id=\"2790\" src=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161100446.MACRO_FOCUS.avif\" alt=\"\" class=\"wp-image-2790\" srcset=\"https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161100446.MACRO_FOCUS.avif 1000w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161100446.MACRO_FOCUS-300x225.avif 300w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161100446.MACRO_FOCUS-768x576.avif 768w, https:\/\/garikoitz.info\/blog\/wp-content\/uploads\/2026\/09\/PXL_20260802_161100446.MACRO_FOCUS-360x270.avif 360w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Esta placa y los dos discos me han permitido montar un RAID1 y ganar bastante tranquilidad ante el fallo de uno de los discos. Por supuesto, un RAID1 no sustituye a una copia de seguridad, pero evita que la ca\u00edda de una \u00fanica unidad deje el servidor fuera de servicio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La creaci\u00f3n del RAID1 tiene su miga y requiere de unos cuantos comandos que no voy a colgar aqu\u00ed para no enmara\u00f1ar la entrada. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Problemas_con_Duck_DNS\"><\/span>Problemas con Duck DNS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No puedo daros una respuesta t\u00e9cnica sobre los problemas que sufr\u00ed con <a href=\"https:\/\/www.duckdns.org\/\" target=\"_blank\" rel=\"noopener\">Duck DNS<\/a>, pero el caso es que tuve varios episodios de fallo de comunicaci\u00f3n, con el correspondiente l\u00edo de IPs, y al final decid\u00ed prescindir del servicio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como ya gestiono mis dominios con <a href=\"https:\/\/www.dynadot.com\/es\" target=\"_blank\" rel=\"noopener\">Dynadot<\/a>, termin\u00e9 creando un peque\u00f1o script que utiliza su API para actualizar autom\u00e1ticamente la IP p\u00fablica asociada al dominio. En la pr\u00e1ctica hace la misma funci\u00f3n que necesitaba de Duck DNS, pero utilizando directamente mi propio dominio y sin depender de un segundo servicio.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/usr\/bin\/env bash\nset -euo pipefail\n\nDYNADOT_API_KEY=\"tu_API_key\"\n\nDOMINIOS=(\n  \"dominio_uno.info\"\n  \"dominio_dos.info\"\n  \"dominio_tres.info\"\n  \"dominio_cuatro.net\"\n)\n\nIP_ACTUAL=\"$(curl -4 -fsS https:\/\/api.ipify.org)\"\n\nif [[ ! \"$IP_ACTUAL\" =~ ^([0-9]{1,3}\\.){3}[0-9]{1,3}$ ]]; then\n  echo \"ERROR: No se pudo obtener la IP pblica. IP_ACTUAL='$IP_ACTUAL'\"\n  exit 1\nfi\n\nfor DOMINIO in \"${DOMINIOS[@]}\"; do\n  echo \"Actualizando $DOMINIO -> $IP_ACTUAL\"\n\n  # OJO: set_dns2 SOBRESCRIBE la zona DNS por defecto.\n  # Por eso aqu fijamos explcitamente: raz (A) y www (A).\n  RESP=\"$(\n    curl -fsS -G \"https:\/\/api.dynadot.com\/api3.json\" \\\n      --data-urlencode \"key=$DYNADOT_API_KEY\" \\\n      --data-urlencode \"command=set_dns2\" \\\n      --data-urlencode \"domain=$DOMINIO\" \\\n      --data-urlencode \"main_record_type0=a\" \\\n      --data-urlencode \"main_record0=$IP_ACTUAL\" \\\n      --data-urlencode \"subdomain0=www\" \\\n      --data-urlencode \"sub_record_type0=a\" \\\n      --data-urlencode \"sub_record0=$IP_ACTUAL\" \\\n      --data-urlencode \"ttl=300\"\n  )\"\n\n  echo \"$RESP\"\ndone\n\necho \"Actualizacion completada.\"<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Dale_a_la_seguridad_la_importancia_que_se_merece\"><\/span>Dale a la seguridad la importancia que se merece<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando tienes un servidor encendido las 24 horas y accesible desde Internet, la seguridad deja de ser algo opcional. Antes o despu\u00e9s vas a ver intentos de acceso, robots buscando vulnerabilidades, peticiones contra servicios que ni siquiera tienes instalados y todo tipo de tr\u00e1fico que probablemente nunca ver\u00edas utilizando una conexi\u00f3n dom\u00e9stica de forma convencional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed es donde disponer de un router sobre el que tengas control real empieza a tener bastante sentido. Puedes definir exactamente qu\u00e9 tr\u00e1fico entra y sale de tu red, crear reglas de firewall espec\u00edficas, separar dispositivos mediante VLAN, limitar el acceso entre diferentes partes de la red o evitar directamente publicar determinados servicios en Internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las cosas que he ido cambiando durante este a\u00f1o ha sido precisamente mi filosof\u00eda respecto a la apertura de puertos. Al principio es muy tentador pensar que, si necesitas acceder a un servicio desde fuera de casa, basta con abrir su puerto correspondiente en el router. Funciona, pero cada puerto que publicas es tambi\u00e9n una nueva puerta que tienes que vigilar y mantener actualizada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Siempre que puedo prefiero utilizar una VPN y acceder a mi red dom\u00e9stica como si estuviera f\u00edsicamente conectado a ella. De esta forma puedo administrar el servidor, entrar en servicios internos o acceder a diferentes equipos sin necesidad de exponerlos individualmente a Internet. Evidentemente sigo teniendo servicios que necesariamente deben ser p\u00fablicos, como el servidor web, pero intento que sean los m\u00ednimos posibles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Esto tampoco significa que por instalar un buen router tu red pase m\u00e1gicamente a ser segura<\/strong>. El router es \u00fanicamente una de las capas. Hay que mantener actualizado el sistema operativo, los servicios que publicas, WordPress y sus plugins si tienes una web como la m\u00eda, utilizar contrase\u00f1as seguras, revisar peri\u00f3dicamente los registros y tener copias de seguridad que realmente puedas recuperar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De hecho, durante este a\u00f1o he tenido alg\u00fan recordatorio bastante poco sutil de que estas cosas conviene tom\u00e1rselas en serio. Tener tu propio servidor es muy entretenido cuando todo funciona, pero tambi\u00e9n significa convertirte, quieras o no, en su administrador de sistemas. Y esa parte del aprendizaje probablemente sea tan importante como montar el propio servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A lo largo de un a&ntilde;o he sufrido unas cuantas penurias, desde fallos tontos de configuraci&oacute;n hasta un corte de l&iacute;nea de 24 horas. Aun as&iacute;, me siento orgulloso de transmitiros que es posible sobrevivir a la parte de administraci&oacute;n y que el aprendizaje es arduo y continuo. La evoluci&oacute;n ha sido progresiva y, en algunos casos, obligada, siendo m&aacute;s relevante la parte del hardware que la del software. Son pocas cosas, pero las voy a separar en puntos independientes&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/garikoitz.info\/blog\/2026\/09\/de-un-vps-comercial-al-salon-de-casa-parte-5-conclusiones-despues-de-un-ano\/\"> Leer m\u00e1s<span class=\"screen-reader-text\">  Leer m\u00e1s<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":2788,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wpupg_custom_link":[],"wpupg_custom_link_behaviour":[],"wpupg_custom_link_nofollow":[],"wpupg_custom_image":[],"wpupg_custom_image_id":[],"footnotes":""},"categories":[210,68],"tags":[242,272,271,270,200,273,239],"class_list":["post-2764","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-raspberry-pi","tag-duckdns","tag-dynadot","tag-mikrotik","tag-ont","tag-python","tag-servidor-web","tag-vps"],"_links":{"self":[{"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/posts\/2764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/comments?post=2764"}],"version-history":[{"count":21,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/posts\/2764\/revisions"}],"predecessor-version":[{"id":2795,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/posts\/2764\/revisions\/2795"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/media\/2788"}],"wp:attachment":[{"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/media?parent=2764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/categories?post=2764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/garikoitz.info\/blog\/wp-json\/wp\/v2\/tags?post=2764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}