From 601d9a04288451b5142376d169d0af37e6b159a3 Mon Sep 17 00:00:00 2001 From: Dave Gallant Date: Sat, 26 Aug 2023 21:35:56 -0400 Subject: [PATCH] Fix wording in azure db entry --- ...-socks-to-connect-to-a-private-azure-db.md | 25 +++++++++++++------ public/about/index.html | 1 - .../16/appgate-sdp-on-arch-linux/index.html | 1 - .../06/what-to-do-with-a-homelab/index.html | 1 - .../08/why-i-threw-out-my-dotfiles/index.html | 1 - .../index.html | 1 - .../index.html | 1 - .../running-k3s-in-lxc-on-proxmox/index.html | 1 - .../backing-up-gmail-with-synology/index.html | 1 - .../index.html | 1 - .../10/watching-youtube-in-private/index.html | 1 - .../index.html | 8 +++--- public/categories/index.html | 1 - public/index.html | 3 +-- public/page/index.html | 1 - public/page/search/index.html | 1 - public/post/index.html | 1 - public/tags/adguard/index.html | 1 - public/tags/aks/index.html | 1 - public/tags/aws-vault/index.html | 1 - public/tags/aws/index.html | 1 - public/tags/azure/index.html | 1 - public/tags/backup/index.html | 1 - public/tags/bastion/index.html | 1 - public/tags/cloud-sql-proxy/index.html | 1 - public/tags/containers/index.html | 1 - public/tags/database/index.html | 1 - public/tags/degoogle/index.html | 1 - public/tags/docker/index.html | 1 - public/tags/dotfiles/index.html | 1 - public/tags/eks/index.html | 1 - public/tags/gmail/index.html | 1 - public/tags/grafana/index.html | 1 - public/tags/home-manager/index.html | 1 - public/tags/homelab/index.html | 1 - public/tags/index.html | 1 - public/tags/invidious/index.html | 1 - public/tags/jellyfin/index.html | 1 - public/tags/k3s/index.html | 1 - public/tags/k8s/index.html | 1 - .../kubectl-plugin-socks5-proxy/index.html | 1 - public/tags/linux/index.html | 1 - public/tags/lxc/index.html | 1 - public/tags/netdata/index.html | 1 - public/tags/nix/index.html | 1 - public/tags/openwrt/index.html | 1 - public/tags/pfsense/index.html | 1 - public/tags/pihole/index.html | 1 - public/tags/plex/index.html | 1 - public/tags/podman/index.html | 1 - public/tags/privacy/index.html | 1 - public/tags/proxmox/index.html | 1 - public/tags/proxy/index.html | 1 - public/tags/python/index.html | 1 - public/tags/ransomware/index.html | 1 - public/tags/router-on-a-stick/index.html | 1 - public/tags/router/index.html | 1 - public/tags/security/index.html | 1 - public/tags/socks/index.html | 1 - public/tags/synology/index.html | 1 - public/tags/tailscale/index.html | 1 - public/tags/virtualization/index.html | 1 - public/tags/vlan/index.html | 1 - public/tags/vpn/index.html | 1 - public/tags/yewtu.be/index.html | 1 - public/tags/youtube/index.html | 1 - 66 files changed, 22 insertions(+), 77 deletions(-) diff --git a/content/post/using-aks-and-socks-to-connect-to-a-private-azure-db.md b/content/post/using-aks-and-socks-to-connect-to-a-private-azure-db.md index e083afe1..07a3ba02 100644 --- a/content/post/using-aks-and-socks-to-connect-to-a-private-azure-db.md +++ b/content/post/using-aks-and-socks-to-connect-to-a-private-azure-db.md @@ -5,7 +5,20 @@ lastmod: 2023-05-22T16:31:29-04:00 draft: false keywords: [] description: "" -tags: ['azure', 'database', 'proxy', 'socks', 'aks', 'k8s', 'aws', 'bastion', 'eks', 'cloud-sql-proxy', 'kubectl-plugin-socks5-proxy'] +tags: + [ + "azure", + "database", + "proxy", + "socks", + "aks", + "k8s", + "aws", + "bastion", + "eks", + "cloud-sql-proxy", + "kubectl-plugin-socks5-proxy", + ] categories: [] author: "" @@ -26,10 +39,9 @@ flowchartDiagrams: enable: false options: "" -sequenceDiagrams: +sequenceDiagrams: enable: false options: "" - --- @@ -52,16 +64,15 @@ So what about Azure? Is there any solution that is as elegant as cloud-sql-proxy Similar to what [AWS has recommended](https://aws.amazon.com/blogs/database/securely-connect-to-an-amazon-rds-or-amazon-ec2-database-instance-remotely-with-your-preferred-gui/), perhaps a bastion is the way forward? -Azure has a fully-managed service called -[Azure Bastion](https://azure.microsoft.com/en-ca/products/azure-bastion) that provides secure access to virtual machines that do not have public IPs. This looks interesting, but unfortunately it [costs money](https://azure.microsoft.com/en-ca/pricing/details/azure-bastion/#pricing) and requires an additional virtual machine. +Azure has a fully-managed service called [Azure Bastion](https://azure.microsoft.com/en-ca/products/azure-bastion) that provides secure access to virtual machines that do not have public IPs. This looks interesting, but unfortunately it [costs money](https://azure.microsoft.com/en-ca/pricing/details/azure-bastion/#pricing) and requires an additional virtual machine. Because this adds cost (and complexity), it does not seem like a desirable option in its current state. If it provided a more seamless connection to the database, it would be more appealing. ## SOCKS -[SOCKS](https://en.wikipedia.org/wiki/SOCKS) is a way to proxy connections by exchanging network packets between the client and the server. There are many implementations and many readily available container images that can run a SOCKS server. +[SOCKS](https://en.wikipedia.org/wiki/SOCKS) is a protocol that enables a way to proxy connections by exchanging network packets between the client and the server. There are many implementations and many readily available container images that can run a SOCKS server. -It is certainly possible to use this sort of proxy to connect to a private DB, but is it any simpler than using a virtual machine as a jumphost? It wasn't until I stumbled upon [kubectl-plugin-socks5-proxy](https://github.com/yokawasa/kubectl-plugin-socks5-proxy) that I was convinced that using SOCKS could be made simple. +It's possible to use this sort of proxy to connect to a private DB, but is it any simpler than using a virtual machine as a jumphost? It wasn't until I stumbled upon [kubectl-plugin-socks5-proxy](https://github.com/yokawasa/kubectl-plugin-socks5-proxy) that I was convinced that using SOCKS could be made simple. So how does it work? By installing the kubectl plugin and then running `kubectl socks5-proxy`, a SOCKS proxy server is spun up in a pod and then opens up port-forwarding session using kubectl. diff --git a/public/about/index.html b/public/about/index.html index 32b41410..403d0994 100644 --- a/public/about/index.html +++ b/public/about/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2020/03/16/appgate-sdp-on-arch-linux/index.html b/public/blog/2020/03/16/appgate-sdp-on-arch-linux/index.html index 4b0469a4..9f8c69ac 100644 --- a/public/blog/2020/03/16/appgate-sdp-on-arch-linux/index.html +++ b/public/blog/2020/03/16/appgate-sdp-on-arch-linux/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2021/09/06/what-to-do-with-a-homelab/index.html b/public/blog/2021/09/06/what-to-do-with-a-homelab/index.html index 082452ed..11d118c4 100644 --- a/public/blog/2021/09/06/what-to-do-with-a-homelab/index.html +++ b/public/blog/2021/09/06/what-to-do-with-a-homelab/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html b/public/blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html index 0cf4cbbe..c428f5d5 100644 --- a/public/blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html +++ b/public/blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2021/09/17/automatically-rotating-aws-access-keys/index.html b/public/blog/2021/09/17/automatically-rotating-aws-access-keys/index.html index 17145ff2..50bb5bf7 100644 --- a/public/blog/2021/09/17/automatically-rotating-aws-access-keys/index.html +++ b/public/blog/2021/09/17/automatically-rotating-aws-access-keys/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/index.html b/public/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/index.html index 93d52923..66478e71 100644 --- a/public/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/index.html +++ b/public/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/index.html b/public/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/index.html index 511e34d6..75aa9639 100644 --- a/public/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/index.html +++ b/public/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2022/03/13/backing-up-gmail-with-synology/index.html b/public/blog/2022/03/13/backing-up-gmail-with-synology/index.html index 2fad6899..b5fb63ca 100644 --- a/public/blog/2022/03/13/backing-up-gmail-with-synology/index.html +++ b/public/blog/2022/03/13/backing-up-gmail-with-synology/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2022/04/02/virtualizing-my-router-with-pfsense/index.html b/public/blog/2022/04/02/virtualizing-my-router-with-pfsense/index.html index eb4cd8b8..a2ec6e6a 100644 --- a/public/blog/2022/04/02/virtualizing-my-router-with-pfsense/index.html +++ b/public/blog/2022/04/02/virtualizing-my-router-with-pfsense/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2022/12/10/watching-youtube-in-private/index.html b/public/blog/2022/12/10/watching-youtube-in-private/index.html index 15ec8994..f86661df 100644 --- a/public/blog/2022/12/10/watching-youtube-in-private/index.html +++ b/public/blog/2022/12/10/watching-youtube-in-private/index.html @@ -10,7 +10,6 @@ - diff --git a/public/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/index.html b/public/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/index.html index b05f851f..489773ec 100644 --- a/public/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/index.html +++ b/public/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/index.html @@ -10,7 +10,6 @@ - @@ -111,12 +110,11 @@

So what about Azure? Is there any solution that is as elegant as cloud-sql-proxy?

A Bastion#

Similar to what AWS has recommended, perhaps a bastion is the way forward?

-

Azure has a fully-managed service called -Azure Bastion that provides secure access to virtual machines that do not have public IPs. This looks interesting, but unfortunately it costs money and requires an additional virtual machine.

+

Azure has a fully-managed service called Azure Bastion that provides secure access to virtual machines that do not have public IPs. This looks interesting, but unfortunately it costs money and requires an additional virtual machine.

Because this adds cost (and complexity), it does not seem like a desirable option in its current state. If it provided a more seamless connection to the database, it would be more appealing.

SOCKS#

-

SOCKS is a way to proxy connections by exchanging network packets between the client and the server. There are many implementations and many readily available container images that can run a SOCKS server.

-

It is certainly possible to use this sort of proxy to connect to a private DB, but is it any simpler than using a virtual machine as a jumphost? It wasn’t until I stumbled upon kubectl-plugin-socks5-proxy that I was convinced that using SOCKS could be made simple.

+

SOCKS is a protocol that enables a way to proxy connections by exchanging network packets between the client and the server. There are many implementations and many readily available container images that can run a SOCKS server.

+

It’s possible to use this sort of proxy to connect to a private DB, but is it any simpler than using a virtual machine as a jumphost? It wasn’t until I stumbled upon kubectl-plugin-socks5-proxy that I was convinced that using SOCKS could be made simple.

So how does it work? By installing the kubectl plugin and then running kubectl socks5-proxy, a SOCKS proxy server is spun up in a pod and then opens up port-forwarding session using kubectl.

As you can see below, this k8s plugin is wrapped up nicely:

$ kubectl socks5-proxy
diff --git a/public/categories/index.html b/public/categories/index.html
index a485d0ea..997f2798 100644
--- a/public/categories/index.html
+++ b/public/categories/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/index.html b/public/index.html
index d60a648e..e89a7e7f 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,7 +1,7 @@
 
 
 	
-	
+	
 	
 	davegallant | Home 
 	
@@ -11,7 +11,6 @@
 
 
 
-
 
 
 
diff --git a/public/page/index.html b/public/page/index.html
index aefe6291..9f93a8c9 100644
--- a/public/page/index.html
+++ b/public/page/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/page/search/index.html b/public/page/search/index.html
index db00b34d..eb20fa8a 100644
--- a/public/page/search/index.html
+++ b/public/page/search/index.html
@@ -10,7 +10,6 @@
 
 
 
-
 
 
 
diff --git a/public/post/index.html b/public/post/index.html
index f5a2c785..617341e1 100644
--- a/public/post/index.html
+++ b/public/post/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/adguard/index.html b/public/tags/adguard/index.html
index bb391222..e7857c66 100644
--- a/public/tags/adguard/index.html
+++ b/public/tags/adguard/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/aks/index.html b/public/tags/aks/index.html
index 9a3468ac..e1195809 100644
--- a/public/tags/aks/index.html
+++ b/public/tags/aks/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/aws-vault/index.html b/public/tags/aws-vault/index.html
index d1d2d407..59fc0c88 100644
--- a/public/tags/aws-vault/index.html
+++ b/public/tags/aws-vault/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/aws/index.html b/public/tags/aws/index.html
index 668d4128..5a331baa 100644
--- a/public/tags/aws/index.html
+++ b/public/tags/aws/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/azure/index.html b/public/tags/azure/index.html
index f0cc20f1..ef28bc08 100644
--- a/public/tags/azure/index.html
+++ b/public/tags/azure/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/backup/index.html b/public/tags/backup/index.html
index 4bd5382e..18e47ac4 100644
--- a/public/tags/backup/index.html
+++ b/public/tags/backup/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/bastion/index.html b/public/tags/bastion/index.html
index a14e2d2e..b3ba1558 100644
--- a/public/tags/bastion/index.html
+++ b/public/tags/bastion/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/cloud-sql-proxy/index.html b/public/tags/cloud-sql-proxy/index.html
index 166435b6..ba527329 100644
--- a/public/tags/cloud-sql-proxy/index.html
+++ b/public/tags/cloud-sql-proxy/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/containers/index.html b/public/tags/containers/index.html
index fb0f4aa4..81061429 100644
--- a/public/tags/containers/index.html
+++ b/public/tags/containers/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/database/index.html b/public/tags/database/index.html
index d3a3c23e..0ac0faef 100644
--- a/public/tags/database/index.html
+++ b/public/tags/database/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/degoogle/index.html b/public/tags/degoogle/index.html
index 05baafd3..82b29683 100644
--- a/public/tags/degoogle/index.html
+++ b/public/tags/degoogle/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/docker/index.html b/public/tags/docker/index.html
index 1d520a8d..ecd08236 100644
--- a/public/tags/docker/index.html
+++ b/public/tags/docker/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/dotfiles/index.html b/public/tags/dotfiles/index.html
index 62bb83eb..ee490f9e 100644
--- a/public/tags/dotfiles/index.html
+++ b/public/tags/dotfiles/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/eks/index.html b/public/tags/eks/index.html
index a62b4fe6..f29505eb 100644
--- a/public/tags/eks/index.html
+++ b/public/tags/eks/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/gmail/index.html b/public/tags/gmail/index.html
index b6334400..73abb773 100644
--- a/public/tags/gmail/index.html
+++ b/public/tags/gmail/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/grafana/index.html b/public/tags/grafana/index.html
index 6b317a84..e40b6bfe 100644
--- a/public/tags/grafana/index.html
+++ b/public/tags/grafana/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/home-manager/index.html b/public/tags/home-manager/index.html
index c1d7b6d7..24f290fc 100644
--- a/public/tags/home-manager/index.html
+++ b/public/tags/home-manager/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/homelab/index.html b/public/tags/homelab/index.html
index 2ec05dbb..6208ae0d 100644
--- a/public/tags/homelab/index.html
+++ b/public/tags/homelab/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/index.html b/public/tags/index.html
index f830581f..0be1bed5 100644
--- a/public/tags/index.html
+++ b/public/tags/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/invidious/index.html b/public/tags/invidious/index.html
index 0e11b8e1..11873f55 100644
--- a/public/tags/invidious/index.html
+++ b/public/tags/invidious/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/jellyfin/index.html b/public/tags/jellyfin/index.html
index 257a23d0..8b87d803 100644
--- a/public/tags/jellyfin/index.html
+++ b/public/tags/jellyfin/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/k3s/index.html b/public/tags/k3s/index.html
index f44a8fe9..05739f3e 100644
--- a/public/tags/k3s/index.html
+++ b/public/tags/k3s/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/k8s/index.html b/public/tags/k8s/index.html
index 45ca7585..0a9754ad 100644
--- a/public/tags/k8s/index.html
+++ b/public/tags/k8s/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/kubectl-plugin-socks5-proxy/index.html b/public/tags/kubectl-plugin-socks5-proxy/index.html
index 0a86ef8a..30a72ab8 100644
--- a/public/tags/kubectl-plugin-socks5-proxy/index.html
+++ b/public/tags/kubectl-plugin-socks5-proxy/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/linux/index.html b/public/tags/linux/index.html
index dd6e623d..3c26a9b3 100644
--- a/public/tags/linux/index.html
+++ b/public/tags/linux/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/lxc/index.html b/public/tags/lxc/index.html
index 3009be6e..6d0ac40d 100644
--- a/public/tags/lxc/index.html
+++ b/public/tags/lxc/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/netdata/index.html b/public/tags/netdata/index.html
index c1a36fd9..d5c71d23 100644
--- a/public/tags/netdata/index.html
+++ b/public/tags/netdata/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/nix/index.html b/public/tags/nix/index.html
index d2466410..c750c993 100644
--- a/public/tags/nix/index.html
+++ b/public/tags/nix/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/openwrt/index.html b/public/tags/openwrt/index.html
index 6b30d49e..95ebc5c0 100644
--- a/public/tags/openwrt/index.html
+++ b/public/tags/openwrt/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/pfsense/index.html b/public/tags/pfsense/index.html
index da043388..cceed3c1 100644
--- a/public/tags/pfsense/index.html
+++ b/public/tags/pfsense/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/pihole/index.html b/public/tags/pihole/index.html
index ee977408..48353a45 100644
--- a/public/tags/pihole/index.html
+++ b/public/tags/pihole/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/plex/index.html b/public/tags/plex/index.html
index 28976785..ea81fe74 100644
--- a/public/tags/plex/index.html
+++ b/public/tags/plex/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/podman/index.html b/public/tags/podman/index.html
index 59ad4043..85e04ccf 100644
--- a/public/tags/podman/index.html
+++ b/public/tags/podman/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/privacy/index.html b/public/tags/privacy/index.html
index 9557cd6b..5edafc8b 100644
--- a/public/tags/privacy/index.html
+++ b/public/tags/privacy/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/proxmox/index.html b/public/tags/proxmox/index.html
index 2fbf760d..6befc929 100644
--- a/public/tags/proxmox/index.html
+++ b/public/tags/proxmox/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/proxy/index.html b/public/tags/proxy/index.html
index 0becc16b..10d07e0d 100644
--- a/public/tags/proxy/index.html
+++ b/public/tags/proxy/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/python/index.html b/public/tags/python/index.html
index 88f2f69d..4b72fadd 100644
--- a/public/tags/python/index.html
+++ b/public/tags/python/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/ransomware/index.html b/public/tags/ransomware/index.html
index cea1850b..d11a5f2a 100644
--- a/public/tags/ransomware/index.html
+++ b/public/tags/ransomware/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/router-on-a-stick/index.html b/public/tags/router-on-a-stick/index.html
index c356412b..f6b9e1db 100644
--- a/public/tags/router-on-a-stick/index.html
+++ b/public/tags/router-on-a-stick/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/router/index.html b/public/tags/router/index.html
index 86d1bb47..1857b168 100644
--- a/public/tags/router/index.html
+++ b/public/tags/router/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/security/index.html b/public/tags/security/index.html
index b301f741..02632b8d 100644
--- a/public/tags/security/index.html
+++ b/public/tags/security/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/socks/index.html b/public/tags/socks/index.html
index cf477507..87f7687e 100644
--- a/public/tags/socks/index.html
+++ b/public/tags/socks/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/synology/index.html b/public/tags/synology/index.html
index 69e6830c..a6bd66b0 100644
--- a/public/tags/synology/index.html
+++ b/public/tags/synology/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/tailscale/index.html b/public/tags/tailscale/index.html
index e3950a2e..b748d53c 100644
--- a/public/tags/tailscale/index.html
+++ b/public/tags/tailscale/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/virtualization/index.html b/public/tags/virtualization/index.html
index dde85862..0664bdac 100644
--- a/public/tags/virtualization/index.html
+++ b/public/tags/virtualization/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/vlan/index.html b/public/tags/vlan/index.html
index 53bc48cc..8a298515 100644
--- a/public/tags/vlan/index.html
+++ b/public/tags/vlan/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/vpn/index.html b/public/tags/vpn/index.html
index c6840e9d..dcbc1d94 100644
--- a/public/tags/vpn/index.html
+++ b/public/tags/vpn/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/yewtu.be/index.html b/public/tags/yewtu.be/index.html
index a8934d95..761ce7ba 100644
--- a/public/tags/yewtu.be/index.html
+++ b/public/tags/yewtu.be/index.html
@@ -9,7 +9,6 @@
 
 
 
-
 
 
 
diff --git a/public/tags/youtube/index.html b/public/tags/youtube/index.html
index 76b9aa1d..77b5cd6e 100644
--- a/public/tags/youtube/index.html
+++ b/public/tags/youtube/index.html
@@ -9,7 +9,6 @@
 
 
 
-