【IPV6从入门到起飞】2-2 获取你的IPV6(Teredo隧道)

2024-09-03 23:12

本文主要是介绍【IPV6从入门到起飞】2-2 获取你的IPV6(Teredo隧道),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【IPV6从入门到起飞】2-2 获取你的IPV6(Teredo隧道)

  • 1 打工人的忧伤
  • 2 Teredo介绍
    • 2.1 背景
    • 2.2 工作原理
  • 3 Linux 服务器获取IPV6
    • 3.1 安装
    • 3.2 设置开机自启动和启动
    • 3.3 开放防火墙 UDP 3544
    • 3.4 查看IPV6以及ping包测试
    • 3.5 修改Teredo服务器
    • 3.6 重启服务
    • 3.7 停止/卸载服务
  • 4 windows 获取IPV6
    • 3.1 显示Teredo服务器状态
    • 3.2 设置Teredo服务器地址
    • 3.3 设置为 natawareclient,启动服务
    • 3.4 查看IPV6
    • 3.5 恢复默认

1 打工人的忧伤

如果出门在外,电脑没有连接CPE,只有wifi可连,那怎么通过IPV6访问服务呢?
在这里给大家分享一个获取IPV6的方法:Teredo隧道。

2 Teredo介绍

Teredo隧道是一种网络协议,旨在通过IPv4网络提供IPv6连接。它允许在IPv4环境中传输IPv6数据包,从而实现IPv6的互联互通。

2.1 背景

  • IPv4与IPv6的过渡: 随着互联网的快速发展,IPv4地址逐渐枯竭,IPv6被引入以提供更大的地址空间和更好的网络功能。然而,许多现有的网络基础设施仍然基于IPv4,这导致了IPv4和IPv6之间的兼容性问题。

  • 隧道技术的需求: 为了在IPv4网络中使用IPv6,开发了多种隧道技术。Teredo是其中之一,它允许IPv6数据包在IPv4网络中传输,解决了IPv4和IPv6之间的互通性问题。

2.2 工作原理

  • 隧道机制: Teredo通过在IPv4数据包中封装IPv6数据包来实现隧道。具体来说,Teredo客户端会将IPv6数据包封装在UDP数据包中,并通过IPv4网络发送到Teredo服务器。

  • Teredo服务器: Teredo服务器是一个中介,它接收来自Teredo客户端的UDP数据包,并将其解封装为IPv6数据包。然后,Teredo服务器将IPv6数据包发送到目标IPv6地址。

客户端和服务器的角色:

Teredo客户端:在IPv4网络中运行,负责将IPv6数据包封装并发送到Teredo服务器。
Teredo服务器:负责接收封装的UDP数据包,解封装并转发IPv6数据包。
NAT穿透: Teredo还具有NAT(网络地址转换)穿透的能力,这使得它能够在使用NAT的网络环境中工作。Teredo客户端会通过UDP端口映射来与Teredo服务器建立连接,从而实现IPv6的访问。

3 Linux 服务器获取IPV6

服务器环境
系统:Ubuntu 20.04
Kernel:5.4.0

3.1 安装

sudo apt update
sudo apt install miredo

在这里插入图片描述

3.2 设置开机自启动和启动

sudo systemctl enable miredo
sudo systemctl start miredo

在这里插入图片描述

3.3 开放防火墙 UDP 3544

sudo iptables -A INPUT -p udp --dport 3544 -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 3544 -j ACCEPT

或者

firewall-cmd --permanent --zone=public --add-port=3544/udp
systemctl reload firewalld

3.4 查看IPV6以及ping包测试

在这里插入图片描述
在这里插入图片描述
有点:能用,缺点:延迟高。

3.5 修改Teredo服务器

有的小伙伴发现自己没有办法获取IPV6,或者ping失败,可以考虑更换Teredo服务器,选择合适自己的
以下是我的配置

root@Fourth:~# cat /etc/miredo/miredo.conf
# Please refer to the miredo.conf(5) man page for details.
InterfaceName   teredo# Pick a Teredo server:
#ServerAddress  teredo.ipv6.microsoft.com
#ServerAddress  teredo-debian.remlab.net
ServerAddress   teredo.iks-jena.de
#ServerAddress  win1711.ipv6.microsoft.com
#ServerAddress  win10.ipv6.microsoft.com
#ServerAddress  xbox.ipv6.microsoft.com
#ServerAddress  TeredoServer=teredo.remlab.net# Some firewall/NAT setups require a specific UDP port number:
#BindPort       3545

我这边能手动 ping teredo.iks-jena.de 能通,选了这个服务器
备注:Teredo服务器 能ping不一定能用,ping不通不一定不能用(可能禁ping)

验证配置

/usr/sbin/miredo-checkconf -f /etc/miredo/miredo.conf

3.6 重启服务

sudo systemctl restart miredo

3.7 停止/卸载服务

# 停止服务
sudo systemctl stop miredo
# 禁开机自启动
sudo systemctl disable miredo
# 卸载
sudo apt remove miredo

无效则手动kill 服务

ps aux | grep miredo
kill -9 {PID}

4 windows 获取IPV6

以下命令在PowerShell(管理员)下执行

3.1 显示Teredo服务器状态

netsh interface teredo show state

在这里插入图片描述

3.2 设置Teredo服务器地址

netsh interface teredo set state servername=teredo.iks-jena.de

在这里插入图片描述

3.3 设置为 natawareclient,启动服务

# netsh interface teredo set state type=client
netsh int ter set state natawareclient

在这里插入图片描述

3.4 查看IPV6

在这里插入图片描述

3.5 恢复默认

netsh interface teredo set state default

这篇关于【IPV6从入门到起飞】2-2 获取你的IPV6(Teredo隧道)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134317

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Spring Boot中获取IOC容器的多种方式

《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring... 目录1. 直接注入ApplicationContext2. 实现ApplicationContextA

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c