Skip to content

Commit f137cce

Browse files
committed
fix cgnat and architecture diagram
1 parent 80713ee commit f137cce

File tree

9 files changed

+23
-20
lines changed

9 files changed

+23
-20
lines changed

src/content/post/2025/04-20-ssh-tunnel-docker/_resources/index-devto.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Introduction
22

3-
Most consumer-grade internet connections are hidden behind CG-NAT and are not reachable from the internet. This is done to save IP addresses, as IPv4 has a limited range. If you have a static public IPv4 or any IPv6 address, you won’t need the setup from this tutorial.
3+
Most consumer-grade internet connections are hidden behind CGNAT and are not reachable from the internet. This is done to save IP addresses, as IPv4 has a limited range. If you have a static public IPv4 or any IPv6 address, you won’t need the setup from this tutorial.
44

55
There are already services like [localtunnel](https://github.com/localtunnel/localtunnel) or [ngrok](https://github.com/ngrok) for this purpose, but when you actually start using them, you will often find out that they have limitations on their free plans. So, we will configure our own custom setup once and have it always available for convenient and practical usage which will save a lot of time and nerves in the long run.
66

src/content/post/2025/04-20-ssh-tunnel-docker/_resources/index-hashnode.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Introduction
22

3-
Most consumer-grade internet connections are hidden behind CG-NAT and are not reachable from the internet. This is done to save IP addresses, as IPv4 has a limited range. If you have a static public IPv4 or any IPv6 address, you won’t need the setup from this tutorial.
3+
Most consumer-grade internet connections are hidden behind CGNAT and are not reachable from the internet. This is done to save IP addresses, as IPv4 has a limited range. If you have a static public IPv4 or any IPv6 address, you won’t need the setup from this tutorial.
44

55
There are already services like [localtunnel](https://github.com/localtunnel/localtunnel) or [ngrok](https://github.com/ngrok) for this purpose, but when you actually start using them, you will often find out that they have limitations on their free plans. So, we will configure our own custom setup once and have it always available for convenient and practical usage which will save a lot of time and nerves in the long run.
66

src/content/post/2025/04-20-ssh-tunnel-docker/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import TunnelDemoVideo from '../../../../content/post/2025/04-20-ssh-tunnel-dock
2424

2525
## Introduction
2626

27-
Most consumer-grade internet connections are hidden behind CG-NAT and are not reachable from the internet. This is done to save IP addresses, as IPv4 has a limited range. If you have a static public IPv4 or any IPv6 address, you won’t need the setup from this tutorial.
27+
Most consumer-grade internet connections are hidden behind CGNAT and are not reachable from the internet. This is done to save IP addresses, as IPv4 has a limited range. If you have a static public IPv4 or any IPv6 address, you won’t need the setup from this tutorial.
2828

2929
There are already services like [localtunnel](https://github.com/localtunnel/localtunnel) or [ngrok](https://github.com/ngrok) for this purpose, but when you actually start using them, you will often find out that they have limitations on their free plans. So, we will configure our own custom setup once and have it always available for convenient and practical usage which will save a lot of time and nerves in the long run.
3030

1.74 KB
Loading

src/content/post/2025/04-29-rathole-traefik-home-server/_resources/rathole-traefik-architecture-16-9.drawio.svg

Lines changed: 1 addition & 1 deletion
Loading

src/content/post/2025/04-29-rathole-traefik-home-server/_resources/rathole-traefik-architecture.drawio

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,11 @@
55
<mxCell id="0" />
66
<mxCell id="1" parent="0" />
77
<mxCell id="39150e848f15840c-1" value="VPS gateway" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12" vertex="1" parent="1">
8-
<mxGeometry x="76" y="128" width="230" height="170" as="geometry" />
8+
<mxGeometry x="60" y="110" width="246" height="188" as="geometry" />
99
</mxCell>
1010
<mxCell id="39150e848f15840c-2" value="Home server" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12" vertex="1" parent="1">
1111
<mxGeometry x="562" y="70" width="318" height="360" as="geometry" />
1212
</mxCell>
13-
<mxCell id="A6lBMLfXj6pK5urAHSdI-2" value="&lt;div align=&quot;center&quot;&gt;0.0.0.0:2333&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;0.0.0.0:80&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;0.0.0.0:443&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;b&gt;Rathole server&lt;/b&gt;&lt;/div&gt;" style="html=1;dropTarget=0;whiteSpace=wrap;align=center;" vertex="1" parent="1">
14-
<mxGeometry x="106" y="183" width="170" height="80" as="geometry" />
15-
</mxCell>
16-
<mxCell id="A6lBMLfXj6pK5urAHSdI-3" value="" style="shape=module;jettyWidth=8;jettyHeight=4;" vertex="1" parent="A6lBMLfXj6pK5urAHSdI-2">
17-
<mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
18-
<mxPoint x="-27" y="7" as="offset" />
19-
</mxGeometry>
20-
</mxCell>
2113
<mxCell id="A6lBMLfXj6pK5urAHSdI-39" value="&lt;div&gt;http://homeserver.my-domain.com:80&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
2214
<mxGeometry x="571" y="494" width="207" height="20" as="geometry" />
2315
</mxCell>
@@ -58,9 +50,12 @@
5850
<mxPoint x="649.96" y="289" as="targetPoint" />
5951
</mxGeometry>
6052
</mxCell>
53+
<mxCell id="juucJuZcaasTCEyihUSF-1" value="Docker" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
54+
<mxGeometry x="70" y="150" width="215" height="130" as="geometry" />
55+
</mxCell>
6156
<mxCell id="A6lBMLfXj6pK5urAHSdI-40" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.416;exitY=-0.004;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.006;entryY=0.6;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=default;" edge="1" parent="1">
6257
<mxGeometry width="100" height="100" relative="1" as="geometry">
63-
<mxPoint x="306" y="198.71999999999997" as="sourcePoint" />
58+
<mxPoint x="271" y="198.71999999999997" as="sourcePoint" />
6459
<mxPoint x="612.0800000000002" y="199" as="targetPoint" />
6560
</mxGeometry>
6661
</mxCell>
@@ -91,7 +86,7 @@
9186
<mxCell id="BSf_gDi98osA04qacQ9q-2" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
9287
<mxGeometry width="50" height="50" relative="1" as="geometry">
9388
<mxPoint x="112" y="370" as="sourcePoint" />
94-
<mxPoint x="112" y="300" as="targetPoint" />
89+
<mxPoint x="112" y="264" as="targetPoint" />
9590
</mxGeometry>
9691
</mxCell>
9792
<mxCell id="BSf_gDi98osA04qacQ9q-3" value="&lt;div&gt;https://homeserver.my-domain.com: 443&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
@@ -100,14 +95,22 @@
10095
<mxCell id="BSf_gDi98osA04qacQ9q-4" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
10196
<mxGeometry width="50" height="50" relative="1" as="geometry">
10297
<mxPoint x="189" y="340" as="sourcePoint" />
103-
<mxPoint x="189" y="300" as="targetPoint" />
98+
<mxPoint x="189" y="264" as="targetPoint" />
10499
</mxGeometry>
105100
</mxCell>
106101
<mxCell id="BSf_gDi98osA04qacQ9q-5" value="&lt;div align=&quot;right&quot;&gt;2333 → 2333&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
107102
<mxGeometry x="395" y="154" width="79" height="20" as="geometry" />
108103
</mxCell>
109104
<mxCell id="BSf_gDi98osA04qacQ9q-6" value="IP: 123.123.123.123" style="text;html=1;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
110-
<mxGeometry x="164" y="141" width="122" height="20" as="geometry" />
105+
<mxGeometry x="164" y="123" width="122" height="20" as="geometry" />
106+
</mxCell>
107+
<mxCell id="A6lBMLfXj6pK5urAHSdI-2" value="&lt;div align=&quot;center&quot;&gt;0.0.0.0:2333&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;0.0.0.0:80&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;0.0.0.0:443&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;b&gt;Rathole server&lt;/b&gt;&lt;/div&gt;" style="html=1;dropTarget=0;whiteSpace=wrap;align=center;" vertex="1" parent="1">
108+
<mxGeometry x="101" y="183" width="170" height="80" as="geometry" />
109+
</mxCell>
110+
<mxCell id="A6lBMLfXj6pK5urAHSdI-3" value="" style="shape=module;jettyWidth=8;jettyHeight=4;" vertex="1" parent="A6lBMLfXj6pK5urAHSdI-2">
111+
<mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
112+
<mxPoint x="-27" y="7" as="offset" />
113+
</mxGeometry>
111114
</mxCell>
112115
</root>
113116
</mxGraphModel>

src/content/post/2025/04-29-rathole-traefik-home-server/index.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Expose home server with Rathole tunnel and Traefik
33
description: |
4-
Bypass CG-NAT permanently and host websites from home.
4+
Bypass CGNAT permanently and host websites from home.
55
publishDate: 2025-04-29
66
heroImage: '../../../../content/post/2025/04-29-rathole-traefik-home-server/_images/orange-pi.jpg'
77
heroAlt: Rathole Traefik architecture diagram
@@ -25,7 +25,7 @@ import OrangePiGifImage from '../../../../content/post/2025/04-29-rathole-traefi
2525

2626
## Introduction
2727

28-
In the previous article, I wrote about a temporary SSH tunneling technique to bypass CG-NAT. This method is not suitable for exposing permanent services, at least not without `autossh` manager. Proper tools for this are [rapiz1/rathole](https://github.com/rapiz1/rathole) or [fatedier/frp](https://github.com/fatedier/frp). I chose Rathole since it's written in Rust and offers better performance and benchmarks.
28+
In the previous article, I wrote about a temporary SSH tunneling technique to bypass CGNAT. This method is not suitable for exposing permanent services, at least not without `autossh` manager. Proper tools for this are [rapiz1/rathole](https://github.com/rapiz1/rathole) or [fatedier/frp](https://github.com/fatedier/frp). I chose Rathole since it's written in Rust and offers better performance and benchmarks.
2929

3030
## Prerequisites
3131

@@ -353,7 +353,7 @@ Like for any webserver, on the VPS you will need to open ports `80` and `443` to
353353

354354
## Conclusion
355355

356-
Most consumer-grade internet connections are behind a CG-NAT. This setup allows you to bypass CG-NAT and host an unlimited number of websites from your home almost for free. You can use it for web servers in virtual machines, LXC containers, SBC computers, etc. - anywhere you can run Docker.
356+
Most consumer-grade internet connections are behind a CGNAT. This setup allows you to bypass CGNAT and host an unlimited number of websites from your home almost for free. You can use it for web servers in virtual machines, LXC containers, SBC computers, etc. - anywhere you can run Docker.
357357

358358
It is simple, cheap, and you can set it up in 30 minutes. Like anything, it also has some downsides, one of them is the overhead latency caused by an additional network hop between the VPS and your home network, but it's a reasonable tradeoff.
359359

0 commit comments

Comments
 (0)