IPv6 guide

This commit is contained in:
2025-08-09 19:36:42 +02:00
parent 33b7a5043c
commit cc3c7a2658
3 changed files with 500 additions and 1 deletions

6
app.ts
View File

@@ -66,6 +66,12 @@ router.get("/", async (ctx: Context) => {
ctx.response.type = "text/html"; ctx.response.type = "text/html";
}); });
router.get("/guide", async (ctx: Context) => {
const html = await eta.render("ipv6-guide", {});
ctx.response.body = html;
ctx.response.type = "text/html";
});
app.use(router.routes()); app.use(router.routes());
app.use(router.allowedMethods()); app.use(router.allowedMethods());

View File

@@ -88,7 +88,7 @@
<br> <br>
Find out Find out
<a href="https://ungleich.ch/en-us/cms/blog/2019/02/05/how-to-get-ipv6/"> <a href="/guide">
how to enable IPv6</a>. how to enable IPv6</a>.
<br> <br>
<% /* <a href="https://redmine.ungleich.ch/projects/open-infrastructure/wiki/How_to_disable_IPv4_on_your_website">How <% /* <a href="https://redmine.ungleich.ch/projects/open-infrastructure/wiki/How_to_disable_IPv4_on_your_website">How

493
views/ipv6-guide.eta Normal file
View File

@@ -0,0 +1,493 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>How to Get IPv6 Connectivity</title>
<style>
:root {
--font-size: 16px;
--line-height: 1.6;
--content-margin: 40px 10% 0;
--primary-color: #3b82f6;
--secondary-color: #94a3b8;
--background-color: #1C1D1E;
--text-color: #e2e8f0;
--border-color: #374151;
--card-background: #2a2b2c;
--code-background: #374151;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
font-size: var(--font-size);
line-height: var(--line-height);
color: var(--text-color);
background-color: var(--background-color);
margin: 0;
padding: 0;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
.header {
text-align: center;
margin-bottom: 40px;
padding: 40px 0;
background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);
color: white;
border-radius: 10px;
}
.header h1 {
margin: 0;
font-size: 2.5em;
font-weight: 700;
}
.header p {
margin: 10px 0 0 0;
font-size: 1.2em;
opacity: 0.9;
}
.section {
background: var(--card-background);
margin: 20px 0;
padding: 30px;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(0,0,0,0.3);
border: 1px solid var(--border-color);
}
.section h2 {
color: var(--primary-color);
margin-top: 0;
border-bottom: 2px solid var(--border-color);
padding-bottom: 10px;
}
.section h3 {
color: var(--secondary-color);
margin-top: 25px;
}
.pros-cons {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin: 20px 0;
}
.pros, .cons {
padding: 15px;
border-radius: 8px;
}
.pros {
background-color: #1a3a2a;
border-left: 4px solid #22c55e;
}
.cons {
background-color: #3a1a1a;
border-left: 4px solid #ef4444;
}
.pros h4, .cons h4 {
margin-top: 0;
font-weight: 600;
color: white;
}
.pros ul, .cons ul {
margin: 10px 0;
padding-left: 20px;
color: #e2e8f0;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
background: var(--card-background);
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 10px rgba(0,0,0,0.3);
border: 1px solid var(--border-color);
}
th, td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid var(--border-color);
}
th {
background-color: var(--primary-color);
color: white;
font-weight: 600;
}
tr:hover {
background-color: #374151;
}
a {
color: var(--primary-color);
text-decoration: none;
font-weight: 500;
}
a:hover {
text-decoration: underline;
}
.cta {
text-align: center;
margin: 40px 0;
padding: 30px;
background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);
color: white;
border-radius: 10px;
}
.cta h3 {
color: white;
margin-top: 0;
}
.back-link {
display: inline-block;
margin: 20px 0;
padding: 10px 20px;
background-color: var(--primary-color);
color: white;
border-radius: 5px;
text-decoration: none;
}
.back-link:hover {
background-color: #1d4ed8;
text-decoration: none;
}
code {
background-color: var(--code-background);
padding: 2px 6px;
border-radius: 3px;
font-family: 'Monaco', 'Consolas', monospace;
font-size: 0.9em;
}
pre {
background-color: var(--code-background);
padding: 15px;
border-radius: 5px;
overflow-x: auto;
font-family: 'Monaco', 'Consolas', monospace;
font-size: 0.9em;
color: #e2e8f0;
}
@media (max-width: 600px) {
.pros-cons {
grid-template-columns: 1fr;
}
.header h1 {
font-size: 2em;
}
.container {
padding: 10px;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>How to Get IPv6 Connectivity</h1>
<p>A comprehensive guide to enabling IPv6 on your network</p>
</div>
<div class="section">
<h2>1. Check if You Already Have IPv6</h2>
<p>Before taking any action, first verify if you already have IPv6 connectivity. Many ISPs provide IPv6 by default, but it might be disabled on your router.</p>
<h3>Quick IPv6 Test</h3>
<p>Visit <a href="https://test-ipv6.com/" target="_blank">test-ipv6.com</a> to check your current IPv6 status.</p>
<h3>Check Your Router Settings</h3>
<p>IPv6 is often disabled by default on many routers. Common routers with IPv6 disabled by default include:</p>
<ul>
<li><strong>Ubiquiti UniFi</strong> - Check Settings → Networks → LAN → IPv6 Interface Type</li>
<li><strong>ASUS</strong> - Check Advanced Settings → IPv6</li>
<li><strong>TP-Link</strong> - Check Advanced → Network → IPv6</li>
<li><strong>Netgear</strong> - Check Advanced → Setup → IPv6</li>
</ul>
<h3>Enable IPv6 on Your Router</h3>
<p>If your ISP supports IPv6 but it's disabled on your router:</p>
<ol>
<li>Log into your router's admin interface</li>
<li>Look for IPv6 settings (usually under Network or Advanced)</li>
<li>Set IPv6 to "Enabled" or "Auto" mode</li>
<li>Save and reboot the router</li>
</ol>
<div class="pros-cons">
<div class="pros">
<h4>✅ Advantages</h4>
<ul>
<li>No additional cost</li>
<li>Native IPv6 with lowest latency</li>
<li>Full ISP support and troubleshooting</li>
</ul>
</div>
<div class="cons">
<h4>❌ Disadvantages</h4>
<ul>
<li>Router configuration required</li>
</ul>
</div>
</div>
</div>
<div class="section">
<h2>2. Contact Your Internet Service Provider (ISP)</h2>
<p>If you don't have IPv6 after checking your router, contact your ISP. Some providers already support IPv6 but may need to enable it on your connection.</p>
<h3>What to ask your ISP:</h3>
<ul>
<li>"Do you support IPv6?"</li>
<li>"Can you enable IPv6 for my account?"</li>
<li>"Will my current router work with IPv6?"</li>
</ul>
<div class="pros-cons">
<div class="pros">
<h4>✅ Advantages</h4>
<ul>
<li>Usually no additional cost</li>
<li>Native IPv6 with lowest latency</li>
<li>Full ISP support and troubleshooting</li>
<li>Encourages ISP IPv6 adoption</li>
</ul>
</div>
<div class="cons">
<h4>❌ Disadvantages</h4>
<ul>
<li>May take time if ISP hasn't deployed IPv6 yet</li>
<li>Dependent on ISP's timeline</li>
</ul>
</div>
</div>
</div>
<div class="section">
<h2>3. Paid VPN Providers with IPv6 Support</h2>
<p>Privacy-focused VPN providers that also provide IPv6 connectivity. These are considered the best in the industry.</p>
<p>Note that you may have to enable IPv6 in the app settings.</p>
<p>It's also possible to route all your internet traffic through one of these by installing WireGuard or OpenVPN on your router if it supports it.</p>
<p>All VPN providers listed have a no logs policy and support both OpenVPN and WireGuard.</p>
<table>
<thead>
<tr>
<th>Provider</th>
<th>Starting Price</th>
<th>Features</th>
<th>Website</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Mullvad</strong></td>
<td>€5/month</td>
<td>Anonymous accounts, DAITA, multi-hop, additional proxies</td>
<td><a href="https://mullvad.net/" target="_blank">mullvad.net</a></td>
</tr>
<tr>
<td><strong>AirVPN</strong></td>
<td>$7/month</td>
<td>port forwarding, full IPv6 support</td>
<td><a href="https://airvpn.org/" target="_blank">airvpn.org</a></td>
</tr>
<tr>
<td><strong>IVPN</strong></td>
<td>$6/month</td>
<td>Anonymous accounts, multi-hop</td>
<td><a href="https://www.ivpn.net/" target="_blank">ivpn.net</a></td>
</tr>
</tbody>
</table>
<div class="pros-cons">
<div class="pros">
<h4>✅ Advantages</h4>
<ul>
<li>Privacy-focused with no logging</li>
<li>Works almost anywhere (including CGNAT)</li>
<li>Encrypted traffic</li>
<li>Multiple endpoint locations</li>
<li>Mobile-friendly</li>
</ul>
</div>
<div class="cons">
<h4>❌ Disadvantages</h4>
<ul>
<li>Monthly subscription cost</li>
<li>Higher latency than native IPv6</li>
<li>Usually only single IPv6 address (not prefix)</li>
</ul>
</div>
</div>
</div>
<div class="section">
<h2>4. Free IPv6 Tunnel Services</h2>
<p>If your ISP doesn't offer IPv6 yet, free tunnel services can provide IPv6 connectivity over your existing IPv4 connection.</p>
<h3>Hurricane Electric (HE.net) Tunnel Broker</h3>
<p><a href="https://tunnelbroker.net/" target="_blank">HE.net</a> offers free IPv6 tunnels with a /48 for personal use.</p>
<div class="pros-cons">
<div class="pros">
<h4>✅ Advantages</h4>
<ul>
<li>Completely free</li>
<li>Provides /48 prefix</li>
<li>Reliable and well-established</li>
<li>Good documentation and support</li>
</ul>
</div>
<div class="cons">
<h4>❌ Disadvantages</h4>
<ul>
<li>Doesn't work behind CGNAT</li>
<li>Requires public IPv4 address</li>
<li>Higher latency than native IPv6</li>
<li>Complex setup for beginners</li>
</ul>
</div>
</div>
</div>
<div class="section">
<h2>5. Paid IPv6 Tunnel Services (with Prefix & Inbound Connectivity)</h2>
<p>Paid services that provide proper IPv6 prefixes and full inbound connectivity. These are ideal for hosting services or running servers.</p>
<table>
<thead>
<tr>
<th>Provider</th>
<th>Technology</th>
<th>Starting Price</th>
<th>Prefix Size</th>
<th>Website</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>ungleich</strong></td>
<td>WireGuard, OpenVPN</td>
<td>Free for VM customers</td>
<td>/48</td>
<td><a href="https://ipv6onlyhosting.com/en-us/cms/ipv6-shop/" target="_blank">IPv6 Shop</a></td>
</tr>
<tr>
<td><strong>Andrews & Arnold</strong></td>
<td>L2TP</td>
<td>£10/month + £2.40 setup fee</td>
<td>?</td>
<td><a href="https://aa.net.uk/broadband-l2tp.html" target="_blank">L2TP Service</a></td>
</tr>
<tr>
<td><strong>TunnelBroker.ch</strong></td>
<td>WireGuard</td>
<td>10 CHF/month + 50 CHF setup fee</td>
<td>/126</td>
<td><a href="https://tunnelbroker.ch/" target="_blank">TunnelBroker.ch</a></td>
</tr>
</tbody>
</table>
<div class="pros-cons">
<div class="pros">
<h4>✅ Advantages</h4>
<ul>
<li>Proper IPv6 prefix allocation</li>
<li>Full inbound connectivity</li>
<li>Works almost anywhere (including CGNAT)</li>
<li>Professional support</li>
<li>Multiple endpoint locations</li>
</ul>
</div>
<div class="cons">
<h4>❌ Disadvantages</h4>
<ul>
<li>Monthly subscription cost</li>
<li>Higher latency than native IPv6</li>
<li>Dependent on provider's infrastructure</li>
</ul>
</div>
</div>
<div class="section">
<h2>6. Roll-Your-Own IPv6 proxy or VPN with a VPS</h2>
<p>If you want full control and dont mind a little command-line work, spin up a cheap VPS that comes with native IPv6 and tunnel your traffic through it. The VPS acts as an IPv6 “exit node” while your home connection remains IPv4-only.</p>
<h3>Recommended VPS Providers (with native IPv6)</h3>
<ul>
<li><strong>kyun.host</strong> /64 IPv6 prefix on every VM (<a href="https://kyun.host" target="_blank">kyun.host</a>)</li>
<% /* <li><strong>servers.guru</strong> /64 IPv6 prefix on their ARM offerings, no IPv6 on their regular VM's (<a href="https://servers.guru/" target="_blank">servers.guru</a>)</li> */ %>
</ul>
<h3>Easiest Way to Use Your VPS</h3>
<ol>
<strong>Socks Proxy (quick & dirty)</strong><br>
<pre>ssh -D 1080 -N user@YOUR-VPS-IP</pre>
Then set browser/OS to <code>socks5://localhost:1080</code>. All proxied traffic exits through your VPS with IPv6 connectivity.
</ol>
<p>You can also setup a shadowsocks proxy or a WireGuard VPN, but that falls beyond the scope of this guide.</p>
<div class="pros-cons">
<div class="pros">
<h4>✅ Advantages</h4>
<ul>
<li>Absolute control; can run other services too</li>
<li>Works behind CGNAT or restrictive ISPs</li>
<li>Very low cost (often cheaper than a VPN)</li>
</ul>
</div>
<div class="cons">
<h4>❌ Disadvantages</h4>
<ul>
<li>Requires Linux CLI comfort</li>
<li>You maintain the server (updates, security)</li>
<li>Higher latency than native IPv6</li>
</ul>
</div>
</div>
</div>
</div>
<div class="cta">
<h3>Ready to get started?</h3>
<p><a href="https://test-ipv6.com/" target="_blank" style="color: white; text-decoration: underline;">Test your IPv6 connectivity</a></p>
</div>
<div style="text-align: center; margin: 40px 0;">
<a href="/" class="back-link">← Back to Main Page</a>
</div>
</div>
</body>
</html>