• 关于

    对象检测怎么看配置

    的搜索结果

回答

初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBatis 中的 SQL 语句和主要业务代码分离,我们一般会把 MyBatis 中的 SQL 语句统一放在 XML 配置文件中,便于统一维护。 解除 SQL 与程序代码的耦合,通过提供 DAO 层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。SQL 和代码的分离,提高了可维护性。 MyBatis 比较简单和轻量 本身就很小且简单。没有任何第三方依赖,只要通过配置 jar 包,或者如果你使用 Maven 项目的话只需要配置 Maven 以来就可以。易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。 屏蔽样板代码 MyBatis 回屏蔽原始的 JDBC 样板代码,让你把更多的精力专注于 SQL 的书写和属性-字段映射上。 编写原生 SQL,支持多表关联 MyBatis 最主要的特点就是你可以手动编写 SQL 语句,能够支持多表关联查询。 提供映射标签,支持对象与数据库的 ORM 字段关系映射 ORM 是什么?对象关系映射(Object Relational Mapping,简称ORM) ,是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 提供 XML 标签,支持编写动态 SQL。 你可以使用 MyBatis XML 标签,起到 SQL 模版的效果,减少繁杂的 SQL 语句,便于维护。 MyBatis 整体架构 MyBatis 最上面是接口层,接口层就是开发人员在 Mapper 或者是 Dao 接口中的接口定义,是查询、新增、更新还是删除操作;中间层是数据处理层,主要是配置 Mapper -> XML 层级之间的参数映射,SQL 解析,SQL 执行,结果映射的过程。上述两种流程都由基础支持层来提供功能支撑,基础支持层包括连接管理,事务管理,配置加载,缓存处理等。 接口层 在不与Spring 集成的情况下,使用 MyBatis 执行数据库的操作主要如下: InputStream is = Resources.getResourceAsStream("myBatis-config.xml"); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(is); sqlSession = factory.openSession(); 其中的SqlSessionFactory,SqlSession是 MyBatis 接口的核心类,尤其是 SqlSession,这个接口是MyBatis 中最重要的接口,这个接口能够让你执行命令,获取映射,管理事务。 数据处理层 配置解析 在 Mybatis 初始化过程中,会加载 mybatis-config.xml 配置文件、映射配置文件以及 Mapper 接口中的注解信息,解析后的配置信息会形成相应的对象并保存到 Configration 对象中。之后,根据该对象创建SqlSessionFactory 对象。待 Mybatis 初始化完成后,可以通过 SqlSessionFactory 创建 SqlSession 对象并开始数据库操作。 SQL 解析与 scripting 模块 Mybatis 实现的动态 SQL 语句,几乎可以编写出所有满足需要的 SQL。 Mybatis 中 scripting 模块会根据用户传入的参数,解析映射文件中定义的动态 SQL 节点,形成数据库能执行的SQL 语句。 SQL 执行 SQL 语句的执行涉及多个组件,包括 MyBatis 的四大核心,它们是: Executor、StatementHandler、ParameterHandler、ResultSetHandler。SQL 的执行过程可以用下面这幅图来表示 MyBatis 层级结构各个组件的介绍(这里只是简单介绍,具体介绍在后面): SqlSession: ,它是 MyBatis 核心 API,主要用来执行命令,获取映射,管理事务。接收开发人员提供 Statement Id 和参数。并返回操作结果。Executor :执行器,是 MyBatis 调度的核心,负责 SQL 语句的生成以及查询缓存的维护。StatementHandler : 封装了JDBC Statement 操作,负责对 JDBC Statement 的操作,如设置参数、将Statement 结果集转换成 List 集合。ParameterHandler : 负责对用户传递的参数转换成 JDBC Statement 所需要的参数。ResultSetHandler : 负责将 JDBC 返回的 ResultSet 结果集对象转换成 List 类型的集合。TypeHandler : 用于 Java 类型和 JDBC 类型之间的转换。MappedStatement : 动态 SQL 的封装SqlSource : 表示从 XML 文件或注释读取的映射语句的内容,它创建将从用户接收的输入参数传递给数据库的 SQL。Configuration: MyBatis 所有的配置信息都维持在 Configuration 对象之中。 基础支持层 反射模块 Mybatis 中的反射模块,对 Java 反射进行了很好的封装,提供了简易的 API,方便上层调用,并且对反射操作进行了一系列的优化,比如,缓存了类的 元数据(MetaClass)和对象的元数据(MetaObject),提高了反射操作的性能。 类型转换模块 Mybatis 的别名机制,能够简化配置文件,该机制是类型转换模块的主要功能之一。类型转换模块的另一个功能是实现 JDBC 类型与 Java 类型的转换。在 SQL 语句绑定参数时,会将数据由 Java 类型转换成 JDBC 类型;在映射结果集时,会将数据由 JDBC 类型转换成 Java 类型。 日志模块 在 Java 中,有很多优秀的日志框架,如 Log4j、Log4j2、slf4j 等。Mybatis 除了提供了详细的日志输出信息,还能够集成多种日志框架,其日志模块的主要功能就是集成第三方日志框架。 资源加载模块 该模块主要封装了类加载器,确定了类加载器的使用顺序,并提供了加载类文件和其它资源文件的功能。 解析器模块 该模块有两个主要功能:一个是封装了 XPath,为 Mybatis 初始化时解析 mybatis-config.xml配置文件以及映射配置文件提供支持;另一个为处理动态 SQL 语句中的占位符提供支持。 数据源模块 Mybatis 自身提供了相应的数据源实现,也提供了与第三方数据源集成的接口。数据源是开发中的常用组件之一,很多开源的数据源都提供了丰富的功能,如连接池、检测连接状态等,选择性能优秀的数据源组件,对于提供ORM 框架以及整个应用的性能都是非常重要的。 事务管理模块 一般地,Mybatis 与 Spring 框架集成,由 Spring 框架管理事务。但 Mybatis 自身对数据库事务进行了抽象,提供了相应的事务接口和简单实现。 缓存模块 Mybatis 中有一级缓存和二级缓存,这两级缓存都依赖于缓存模块中的实现。但是需要注意,这两级缓存与Mybatis 以及整个应用是运行在同一个 JVM 中的,共享同一块内存,如果这两级缓存中的数据量较大,则可能影响系统中其它功能,所以需要缓存大量数据时,优先考虑使用 Redis、Memcache 等缓存产品。 Binding 模块 在调用 SqlSession 相应方法执行数据库操作时,需要制定映射文件中定义的 SQL 节点,如果 SQL 中出现了拼写错误,那就只能在运行时才能发现。为了能尽早发现这种错误,Mybatis 通过 Binding 模块将用户自定义的Mapper 接口与映射文件关联起来,系统可以通过调用自定义 Mapper 接口中的方法执行相应的 SQL 语句完成数据库操作,从而避免上述问题。注意,在开发中,我们只是创建了 Mapper 接口,而并没有编写实现类,这是因为 Mybatis 自动为 Mapper 接口创建了动态代理对象。 MyBatis 核心组件 在认识了 MyBatis 并了解其基础架构之后,下面我们来看一下 MyBatis 的核心组件,就是这些组件实现了从 SQL 语句到映射到 JDBC 再到数据库字段之间的转换,执行 SQL 语句并输出结果集。首先来认识 MyBatis 的第一个核心组件 SqlSessionFactory 对于任何框架而言,在使用该框架之前都要经历过一系列的初始化流程,MyBatis 也不例外。MyBatis 的初始化流程如下 String resource = "org/mybatis/example/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); sqlSessionFactory.openSession(); 上述流程中比较重要的一个对象就是SqlSessionFactory,SqlSessionFactory 是 MyBatis 框架中的一个接口,它主要负责的是 MyBatis 框架初始化操作 为开发人员提供SqlSession 对象 SqlSessionFactory 有两个实现类,一个是 SqlSessionManager 类,一个是 DefaultSqlSessionFactory 类 DefaultSqlSessionFactory : SqlSessionFactory 的默认实现类,是真正生产会话的工厂类,这个类的实例的生命周期是全局的,它只会在首次调用时生成一个实例(单例模式),就一直存在直到服务器关闭。 SqlSessionManager : 已被废弃,原因大概是: SqlSessionManager 中需要维护一个自己的线程池,而使用MyBatis 更多的是要与 Spring 进行集成,并不会单独使用,所以维护自己的 ThreadLocal 并没有什么意义,所以 SqlSessionManager 已经不再使用。 ####SqlSessionFactory 的执行流程 下面来对 SqlSessionFactory 的执行流程来做一个分析 首先第一步是 SqlSessionFactory 的创建 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 1 从这行代码入手,首先创建了一个 SqlSessionFactoryBuilder 工厂,这是一个建造者模式的设计思想,由 builder 建造者来创建 SqlSessionFactory 工厂 然后调用 SqlSessionFactoryBuilder 中的 build 方法传递一个InputStream 输入流,Inputstream 输入流中就是你传过来的配置文件 mybatis-config.xml,SqlSessionFactoryBuilder 根据传入的 InputStream 输入流和environment、properties属性创建一个XMLConfigBuilder对象。SqlSessionFactoryBuilder 对象调用XMLConfigBuilder 的parse()方法,流程如下。 XMLConfigBuilder 会解析/configuration标签,configuration 是 MyBatis 中最重要的一个标签,下面流程会介绍 Configuration 标签。 MyBatis 默认使用 XPath 来解析标签,关于 XPath 的使用,参见 https://www.w3school.com.cn/xpath/index.asp 在 parseConfiguration 方法中,会对各个在 /configuration 中的标签进行解析 重要配置 说一下这些标签都是什么意思吧 properties,外部属性,这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。 <properties> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="root" /> </properties> 一般用来给 environment 标签中的 dataSource 赋值 <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> 还可以通过外部属性进行配置,但是我们这篇文章以原理为主,不会介绍太多应用层面的操作。 settings ,MyBatis 中极其重要的配置,它们会改变 MyBatis 的运行时行为。 settings 中配置有很多,具体可以参考 https://mybatis.org/mybatis-3/zh/configuration.html#settings 详细了解。这里介绍几个平常使用过程中比较重要的配置 一般使用如下配置 <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> </settings> typeAliases,类型别名,类型别名是为 Java 类型设置的一个名字。 它只和 XML 配置有关。 <typeAliases> <typeAlias alias="Blog" type="domain.blog.Blog"/> </typeAliases> 当这样配置时,Blog 可以用在任何使用 domain.blog.Blog 的地方。 typeHandlers,类型处理器,无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。 在 org.apache.ibatis.type 包下有很多已经实现好的 TypeHandler,可以参考如下 你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。 具体做法为:实现 org.apache.ibatis.type.TypeHandler 接口, 或继承一个很方便的类 org.apache.ibatis.type.BaseTypeHandler, 然后可以选择性地将它映射到一个 JDBC 类型。 objectFactory,对象工厂,MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。如果想覆盖对象工厂的默认行为,则可以通过创建自己的对象工厂来实现。 public class ExampleObjectFactory extends DefaultObjectFactory { public Object create(Class type) { return super.create(type); } public Object create(Class type, List constructorArgTypes, List constructorArgs) { return super.create(type, constructorArgTypes, constructorArgs); } public void setProperties(Properties properties) { super.setProperties(properties); } public boolean isCollection(Class type) { return Collection.class.isAssignableFrom(type); } } 然后需要在 XML 中配置此对象工厂 <objectFactory type="org.mybatis.example.ExampleObjectFactory"> <property name="someProperty" value="100"/> </objectFactory> plugins,插件开发,插件开发是 MyBatis 设计人员给开发人员留给自行开发的接口,MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。MyBatis 允许使用插件来拦截的方法调用包括:Executor、ParameterHandler、ResultSetHandler、StatementHandler 接口,这几个接口也是 MyBatis 中非常重要的接口,我们下面会详细介绍这几个接口。 environments,MyBatis 环境配置,MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中 使用相同的 SQL 映射。 这里注意一点,虽然 environments 可以指定多个环境,但是 SqlSessionFactory 只能有一个,为了指定创建哪种环境,只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即可。 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, properties); databaseIdProvider ,数据库厂商标示,MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性。 <databaseIdProvider type="DB_VENDOR"> <property name="SQL Server" value="sqlserver"/> <property name="DB2" value="db2"/> <property name="Oracle" value="oracle" /> </databaseIdProvider> mappers,映射器,这是告诉 MyBatis 去哪里找到这些 SQL 语句,mappers 映射配置有四种方式 上面的一个个属性都对应着一个解析方法,都是使用 XPath 把标签进行解析,解析完成后返回一个 DefaultSqlSessionFactory 对象,它是 SqlSessionFactory 的默认实现类。这就是 SqlSessionFactoryBuilder 的初始化流程,通过流程我们可以看到,初始化流程就是对一个个 /configuration 标签下子标签的解析过程。 SqlSession 在 MyBatis 初始化流程结束,也就是 SqlSessionFactoryBuilder -> SqlSessionFactory 的获取流程后,我们就可以通过 SqlSessionFactory 对象得到 SqlSession 然后执行 SQL 语句了。具体来看一下这个过程‘ 在 SqlSessionFactory.openSession 过程中我们可以看到,会调用到 DefaultSqlSessionFactory 中的 openSessionFromDataSource 方法,这个方法主要创建了两个与我们分析执行流程重要的对象,一个是 Executor 执行器对象,一个是 SqlSession 对象。执行器我们下面会说,现在来说一下 SqlSession 对象 SqlSession 对象是 MyBatis 中最重要的一个对象,这个接口能够让你执行命令,获取映射,管理事务。SqlSession 中定义了一系列模版方法,让你能够执行简单的 CRUD 操作,也可以通过 getMapper 获取 Mapper 层,执行自定义 SQL 语句,因为 SqlSession 在执行 SQL 语句之前是需要先开启一个会话,涉及到事务操作,所以还会有 commit、 rollback、close 等方法。这也是模版设计模式的一种应用。 MapperProxy MapperProxy 是 Mapper 映射 SQL 语句的关键对象,我们写的 Dao 层或者 Mapper 层都是通过 MapperProxy 来和对应的 SQL 语句进行绑定的。下面我们就来解释一下绑定过程 这就是 MyBatis 的核心绑定流程,我们可以看到 SqlSession 首先调用 getMapper 方法,我们刚才说到 SqlSession 是大哥级别的人物,只定义标准(有一句话是怎么说的来着,一流的企业做标准,二流的企业做品牌,三流的企业做产品)。 SqlSession 不愿意做的事情交给 Configuration 这个手下去做,但是 Configuration 也是有小弟的,它不愿意做的事情直接甩给小弟去做,这个小弟是谁呢?它就是 MapperRegistry,马上就到核心部分了。MapperRegistry 相当于项目经理,项目经理只从大面上把握项目进度,不需要知道手下的小弟是如何工作的,把任务完成了就好。最终真正干活的还是 MapperProxyFactory。看到这段代码 Proxy.newProxyInstance ,你是不是有一种恍然大悟的感觉,如果你没有的话,建议查阅一下动态代理的文章,这里推荐一篇 (https://www.jianshu.com/p/95970b089360) 也就是说,MyBatis 中 Mapper 和 SQL 语句的绑定正是通过动态代理来完成的。 通过动态代理,我们就可以方便的在 Dao 层或者 Mapper 层定义接口,实现自定义的增删改查操作了。那么具体的执行过程是怎么样呢?上面只是绑定过程,别着急,下面就来探讨一下 SQL 语句的执行过程。 MapperProxyFactory 会生成代理对象,这个对象就是 MapperProxy,最终会调用到 mapperMethod.execute 方法,execute 方法比较长,其实逻辑比较简单,就是判断是 插入、更新、删除 还是 查询 语句,其中如果是查询的话,还会判断返回值的类型,我们可以点进去看一下都是怎么设计的。 很多代码其实可以忽略,只看我标出来的重点就好了,我们可以看到,不管你前面经过多少道关卡处理,最终都逃不过 SqlSession 这个老大制定的标准。 我们以 selectList 为例,来看一下下面的执行过程。 这是 DefaultSqlSession 中 selectList 的代码,我们可以看到出现了 executor,这是什么呢?我们下面来解释。 Executor 还记得我们之前的流程中提到了 Executor(执行器) 这个概念吗?我们来回顾一下它第一次出现的位置。 由 Configuration 对象创建了一个 Executor 对象,这个 Executor 是干嘛的呢?下面我们就来认识一下 Executor 的继承结构 每一个 SqlSession 都会拥有一个 Executor 对象,这个对象负责增删改查的具体操作,我们可以简单的将它理解为 JDBC 中 Statement 的封装版。 也可以理解为 SQL 的执行引擎,要干活总得有一个发起人吧,可以把 Executor 理解为发起人的角色。 首先先从 Executor 的继承体系来认识一下 如上图所示,位于继承体系最顶层的是 Executor 执行器,它有两个实现类,分别是BaseExecutor和 CachingExecutor。 BaseExecutor 是一个抽象类,这种通过抽象的实现接口的方式是适配器设计模式之接口适配 的体现,是Executor 的默认实现,实现了大部分 Executor 接口定义的功能,降低了接口实现的难度。BaseExecutor 的子类有三个,分别是 SimpleExecutor、ReuseExecutor 和 BatchExecutor。 SimpleExecutor : 简单执行器,是 MyBatis 中默认使用的执行器,每执行一次 update 或 select,就开启一个Statement 对象,用完就直接关闭 Statement 对象(可以是 Statement 或者是 PreparedStatment 对象) ReuseExecutor : 可重用执行器,这里的重用指的是重复使用 Statement,它会在内部使用一个 Map 把创建的Statement 都缓存起来,每次执行 SQL 命令的时候,都会去判断是否存在基于该 SQL 的 Statement 对象,如果存在 Statement 对象并且对应的 connection 还没有关闭的情况下就继续使用之前的 Statement 对象,并将其缓存起来。因为每一个 SqlSession 都有一个新的 Executor 对象,所以我们缓存在 ReuseExecutor 上的 Statement作用域是同一个 SqlSession。 BatchExecutor : 批处理执行器,用于将多个 SQL 一次性输出到数据库 CachingExecutor: 缓存执行器,先从缓存中查询结果,如果存在就返回之前的结果;如果不存在,再委托给Executor delegate 去数据库中取,delegate 可以是上面任何一个执行器。 Executor 的创建和选择 我们上面提到 Executor 是由 Configuration 创建的,Configuration 会根据执行器的类型创建,如下 这一步就是执行器的创建过程,根据传入的 ExecutorType 类型来判断是哪种执行器,如果不指定 ExecutorType ,默认创建的是简单执行器。它的赋值可以通过两个地方进行赋值: 可以通过 标签来设置当前工程中所有的 SqlSession 对象使用默认的 Executor <settings> <!--取值范围 SIMPLE, REUSE, BATCH --> <setting name="defaultExecutorType" value="SIMPLE"/> </settings> 另外一种直接通过Java对方法赋值的方式 session = factory.openSession(ExecutorType.BATCH); Executor 的具体执行过程 Executor 中的大部分方法的调用链其实是差不多的,下面是深入源码分析执行过程,如果你没有时间或者暂时不想深入研究的话,给你下面的执行流程图作为参考。 我们紧跟着上面的 selectList 继续分析,它会调用到 executor.query 方法。 当有一个查询请求访问的时候,首先会经过 Executor 的实现类 CachingExecutor ,先从缓存中查询 SQL 是否是第一次执行,如果是第一次执行的话,那么就直接执行 SQL 语句,并创建缓存,如果第二次访问相同的 SQL 语句的话,那么就会直接从缓存中提取。 上面这段代码是从 selectList -> 从缓存中 query 的具体过程。可能你看到这里有些觉得类都是什么东西,我想鼓励你一下,把握重点,不用每段代码都看,从找到 SQL 的调用链路,其他代码想看的时候在看,看源码就是很容易发蒙,容易烦躁,但是切记一点,把握重点。 上面代码会判断缓存中是否有这条 SQL 语句的执行结果,如果没有的话,就再重新创建 Executor 执行器执行 SQL 语句,注意, list = doQuery 是真正执行 SQL 语句的过程,这个过程中会创建我们上面提到的三种执行器,这里我们使用的是简单执行器。 到这里,执行器所做的工作就完事了,Executor 会把后续的工作交给 StatementHandler 继续执行。下面我们来认识一下 StatementHandler 上面代码会判断缓存中是否有这条 SQL 语句的执行结果,如果没有的话,就再重新创建 Executor 执行器执行 SQL 语句,注意, list = doQuery 是真正执行 SQL 语句的过程,这个过程中会创建我们上面提到的三种执行器,这里我们使用的是简单执行器。 到这里,执行器所做的工作就完事了,Executor 会把后续的工作交给 StatementHandler 继续执行。下面我们来认识一下 StatementHandler StatementHandler 的继承结构 有没有感觉和 Executor 的继承体系很相似呢?最顶级接口是四大组件对象,分别有两个实现类 BaseStatementHandler 和 RoutingStatementHandler,BaseStatementHandler 有三个实现类, 他们分别是 SimpleStatementHandler、PreparedStatementHandler 和 CallableStatementHandler。 RoutingStatementHandler : RoutingStatementHandler 并没有对 Statement 对象进行使用,只是根据StatementType 来创建一个代理,代理的就是对应Handler的三种实现类。在MyBatis工作时,使用的StatementHandler 接口对象实际上就是 RoutingStatementHandler 对象。 BaseStatementHandler : 是 StatementHandler 接口的另一个实现类,它本身是一个抽象类,用于简化StatementHandler 接口实现的难度,属于适配器设计模式体现,它主要有三个实现类 SimpleStatementHandler: 管理 Statement 对象并向数据库中推送不需要预编译的SQL语句。PreparedStatementHandler: 管理 Statement 对象并向数据中推送需要预编译的SQL语句。CallableStatementHandler:管理 Statement 对象并调用数据库中的存储过程。 StatementHandler 的创建和源码分析 我们继续来分析上面 query 的调用链路,StatementHandler 的创建过程如下 MyBatis 会根据 SQL 语句的类型进行对应 StatementHandler 的创建。我们以预处理 StatementHandler 为例来讲解一下 执行器不仅掌管着 StatementHandler 的创建,还掌管着创建 Statement 对象,设置参数等,在创建完 PreparedStatement 之后,我们需要对参数进行处理了。 如 如果用一副图来表示一下这个执行流程的话我想是这样 这里我们先暂停一下,来认识一下第三个核心组件 ParameterHandler ParameterHandler - ParameterHandler 介绍 ParameterHandler 相比于其他的组件就简单很多了,ParameterHandler 译为参数处理器,负责为 PreparedStatement 的 sql 语句参数动态赋值,这个接口很简单只有两个方法 ParameterHandler 只有一个实现类 DefaultParameterHandler , 它实现了这两个方法。 getParameterObject: 用于读取参数setParameters: 用于对 PreparedStatement 的参数赋值ParameterHandler 的解析过程 上面我们讨论过了 ParameterHandler 的创建过程,下面我们继续上面 parameterSize 流程 这就是具体参数的解析过程了,下面我们来描述一下 下面用一个流程图表示一下 ParameterHandler 的解析过程,以简单执行器为例 我们在完成 ParameterHandler 对 SQL 参数的预处理后,回到 SimpleExecutor 中的 doQuery 方法 上面又引出来了一个重要的组件那就是 ResultSetHandler,下面我们来认识一下这个组件 ResultSetHandler - ResultSetHandler 简介 ResultSetHandler 也是一个非常简单的接口 ResultSetHandler 是一个接口,它只有一个默认的实现类,像是 ParameterHandler 一样,它的默认实现类是DefaultResultSetHandler ResultSetHandler 解析过程 MyBatis 只有一个默认的实现类就是 DefaultResultSetHandler,DefaultResultSetHandler 主要负责处理两件事 处理 Statement 执行后产生的结果集,生成结果列表 处理存储过程执行后的输出参数 按照 Mapper 文件中配置的 ResultType 或 ResultMap 来封装成对应的对象,最后将封装的对象返回即可。 其中涉及的主要对象有: ResultSetWrapper : 结果集的包装器,主要针对结果集进行的一层包装,它的主要属性有 ResultSet : Java JDBC ResultSet 接口表示数据库查询的结果。 有关查询的文本显示了如何将查询结果作为java.sql.ResultSet 返回。 然后迭代此ResultSet以检查结果。 TypeHandlerRegistry: 类型注册器,TypeHandlerRegistry 在初始化的时候会把所有的 Java类型和类型转换器进行注册。 ColumnNames: 字段的名称,也就是查询操作需要返回的字段名称 ClassNames: 字段的类型名称,也就是 ColumnNames 每个字段名称的类型 JdbcTypes: JDBC 的类型,也就是 java.sql.Types 类型 ResultMap: 负责处理更复杂的映射关系 在 DefaultResultSetHandler 中处理完结果映射,并把上述结构返回给调用的客户端,从而执行完成一条完整的SQL语句。 内容转载自:CSDN博主:cxuann 原文链接:https://blog.csdn.net/qq_36894974/article/details/104132876?depth_1-utm_source=distribute.pc_feed.none-task&request_id=&utm_source=distribute.pc_feed.none-task
问问小秘 2020-03-05 15:44:27 0 浏览量 回答数 0

问题

程序员报错QA大分享(1)

程序员报错QA征集第一弹来了哦~包含QA分享一期征集的部分内容,链接附带解决方案,可收藏哦~ npm install安装依赖一直报错?报错https://developer.aliyun.com/ask/301...
问问小秘 2020-06-18 15:46:14 1684 浏览量 回答数 2

问题

【阿里云产品公测】在Laravel4框架中使用阿里云ACE的缓存服务

受论坛排版和格式限制,这篇帖子的格式不是很利于阅读,如果你看帖子觉得不那么舒服,可以看我发表在自己博客上的原文:http://www.ofcss.com/2014/04/25/use-...
dvbhack 2019-12-01 21:08:05 11068 浏览量 回答数 4

回答

Layout Go工程项目的整体组织 首先我们看一下整个 Go 工程是怎么组织起来的。 很多同事都在用 GitLab 的,GitLab 的一个 group 里面可以创建很多 project。如果我们进行微服务化改造,以前很多巨石架构的应用可能就拆成了很多个独立的小应用。那么这么多小应用,你是要建 N 个 project 去维护,还是说按照部门或者组来组织这些项目呢?在 B 站的话,我们之前因为是 Monorepo,现在是按照部门去组织管理代码,就是说在单个 GitLab 的 project 里面是有多个 app 的,每一个 app 就表示一个独立的微服务,它可以独立去交付部署。所以说我们看到下面这张图里面,app 的目录里面是有好多个子目录的,比方说我们的评论服务,会员服务。跟 app 同级的目录有一个叫 pkg,可以存放业务有关的公共库。这是我们的一个组织方式。当然,还有一种方式,你可以按照 GitLab 的 project 去组织,但我觉得这样的话可能相对要创建的 project 会非常多。 如果你按部门组织的话,部门里面有很多 app,app 目录怎么去组织?我们实际上会给每一个 app 取一个全局唯一名称,可以理解为有点像 DNS 那个名称。我们对业务的命名也是一样的,我们基本上是三段式的命名,比如账号业务,它是一个账号业务、服务、子服务的三段命名。三段命名以后,在这个 app 目录里面,你也可以按照这三层来组织。比如我们刚刚说的账号目录,我可能就是 account 目录,然后 VIP,在 VIP 目录下可能会放各种各样的不同角色的微服务,比方说可能有一些是做 job,做定时任务或者流式处理的一些任务,有可能是做对外暴露的 API 的一些服务,这个就是我们关于整个大的 app 的组织的一种形式。 微服务中的 app 服务分类 微服务中单个 app 的服务里又分为几类不同的角色。我们基本上会把 app 分为 interface(BFF)、service、job(补充:还有一个 task,偏向定时执行,job 偏向流式) 和 admin。 Interface 是对外的业务网关服务,因为我们最终是面向终端用户的 API,面向 app,面向 PC 场景的,我们把这个叫成业务网关。因为我们不是统一的网关,我们可能是按照大的业务线去独立分拆的一些子网关,这个的话可以作为一个对外暴露的 HTTP 接口的一个目录去组织它的代码,当然也可能是 gRPC 的(参考 B 站对外的 gRPC Moss 分享)。 Service 这个角色主要是面向对内通信的微服务,它不直接对外。也就是说,业务网关的请求会转发或者是会 call 我们的内部的 service,它们之间的通讯可能是使用自己的 RPC,在 b 站我们主要是使用 gRPC。使用 gRPC 通讯以后,service 它因为不直接对外,service 之间可能也可以相互去 call。 Admin 区别于 service,很多应用除了有面向用户的一些接口,实际上还有面向企业内部的一些运营侧的需求,通常数据权限更高,从安全设计角度需要代码物理层面隔离,避免意外。 第四个是 ecode。我们当时也在内部争论了很久,我们的错误码定义到底是放在哪里?我们目前的做法是,一个应用里面,假设你有多种角色,它们可能会复用一些错误码。所以说我们会把我们的 ecode 给单独抽出来,在这一个应用里面是可以复用的。注意,它只在这一个应用里面复用,它不会去跨服跨目录应用,它是针对业务场景的一个业务错误码的组织。 App 目录组织 我们除了一个应用里面多种角色的这种情况,现在展开讲一下具体到一个 service 里面,它到底是怎么组织的。我们的 app 目录下大概会有 api、cmd、configs、 internal 目录,目录里一般还会放置 README、CHANGELOG、OWNERS。 API 是放置 api 定义以及对应的生成的 client 代码,包含基于 pb 定义(我们使用 PB 作为 DSL 描述 API) 生成的 swagger.json。 而 cmd,就是放 main 函数的。Configs 目录主要是放一些服务所需的配置文件,比方说说我们可能会使用 TOML 或者是使用 YAML 文件。 Internal 的话,它里面有四个子目录,分别是 model、dao、service 和 server。Model 的定位职责就是对我们底层存储的持久化层或者存储层的数据的映射,它是具体的 Go 的一个 struct。我们再看 dao,你实际就是要操作 MySQL 或者 Redis,最终返回的就是这些 model(存储映射)。Service 组织起来比较简单,就是我们通过 dao 里面的各个方法来完成一个完整的业务逻辑。我们还看到有个 server,因为我一个微服务有可能企业内部不一定所有 RPC 都统一,那我们处于过渡阶段,所以 server 里面会有两个小目录,一个是 HTTP 目录,暴露的是 HTTP 接口,还有一个是 gRPC 目录,我们会暴露 gRPC 的协议。所以在 server 里面,两个不同的启动的 server,就是说一个服务和启动两个端口,然后去暴露不同的协议,HTTP 接 RPC,它实际上会先 call 到 service,service 再 call 到 dao,dao 实际上会使用 model 的一些数据定义 struct。但这里面有一个非常重要的就是,因为这个结构体不能够直接返回给我们的 api 做外对外暴露来使用,为什么?因为可能从数据库里面取的敏感字段,当我们实际要返回到 api 的时候,可能要隐藏掉一些字段,在 Java 里面,会抽象的一个叫 DTO 的对象,它只是用来传输用的,同理,在我们 Go 里面,实际也会把这些 model 的一些结构体映射成 api 里面的结构体(基于 PB Message 生成代码后的 struct)。 Rob Pike 当时说过的一句话,a little copying is better than a little dependency,我们就遵循了这个理念。在我们这个目录结构里面,有 internal 目录,我们知道 Go 的目录只允许这个目录里面的人去 import 到它,跨目录的人实际是不能直接引用到它的。所以说,我们看到 service 有一个 model,那我的 job 代码,我做一些定时任务的代码或者是我的网关代码有可能会映射同一个 model,那是不是要把这个 model 放到上一级目录让大家共享?对于这个问题,其实我们当时内部也争论过很久。我们认为,每一个微服务应该只对自己的 model 负责,所以我们宁愿去做一小部分的代码 copy,也不会去为了几个服务之间要共享这一点点代码,去把这个 model 提到和 app 目录级别去共用,因为你一改全错,当然了,你如果是拷贝的话,就是每个地方都要去改,那我们觉得,依赖的问题可能会比拷贝代码相对来说还是要更复杂的。 这个是一个标准的 PB 文件,就是我们内部的一个 demo 的 service。最上面的 package 是 PB 的包名,demo.service.v1,这个包使用的是三段式命名,全局唯一的名称。那这个名称为什么不是用 ID?我见过有些公司对内部做的 CMDB 或者做服务树去管理企业内部微服务的时候,是用了一些名称加上 ID 来搞定唯一性,但是我们知道后面那一串 ID 数字是不容易被传播或者是不容易被记住的,这也是 DNS 出来的一个意义,所以我们用绝对唯一的一个名称来表示这个包的名字,在后面带上这一个 PB 文件的版本号 V1。 我们看第二段定义,它有个 Service Demo 代码,其实就表示了我们这个服务要启动的服务的一个名称,我们看到这个服务名称里面有很多个 RPC 的方法,表示最终这一个应用或者这个 service 要对外暴露这几个 RPC 的方法。这里面有个小细节,我们看一下 SayHello 这个方法,实际它有 option 的一个选项。通过这一个 PB 文件,你既可以描述出你要暴露的是 gRPC 协议,又暴露出 HTTP 的一个接口,这个好处是你只需要一个 PB 文件描述你暴露的所有 api。我们回想一下,我们刚刚目录里面有个 api 目录,实际这里面就是放这一个 PB 文件,描述这一个工程到底返回的接口是什么。不管是 gRPC 还是 HTTP 都是这一个文件。还有一个好处是什么?实际上我们可以在 PB 文件里面加上很多的注释。用 PB 文件的好处是你不需要额外地再去写文档,因为写文档和写服务的定义,它本质上是两个步骤,特别容易不一致,接口改了,文档不同步。我们如果基于这一个 PB 文件,它生成的 service 代码或者调用代码或者是文档都是唯一的。 依赖顺序与 api 维护 就像我刚刚讲到的,model 是一个存储层的结构体的一一映射,dao 处理一些数据读写包,比方说数据库缓存,server 的话就是启动了一些 gRPC 或者 HTTP Server,所以它整个依赖顺序如下:main 函数启动 server,server 会依赖 api 定义好的 PB 文件,定义好这些方法或者是服务名之后,实际上生成代码的时候,比方说 protocbuf 生成代码的时候,它会把抽象 interface 生成好。然后我们看一下 service,它实际上是弱依赖的 api,就是说我的 server 启动以后,要注册一个具体的业务代码的逻辑,映射方法,映射名字,实际上是弱依赖的 api 生成的 interface 的代码,你就可以很方便地启动你的 server,把你具体的 service 的业务逻辑给注入到这个 server,和方法进行一一绑定。最后,dao 和 service 实际上都会依赖这个 model。 因为我们在 PB 里面定义了一些 message,这些 message 生成的 Go 的 struct 和刚刚 model 的 struct 是两个不同的对象,所以说你要去手动 copy 它,把它最终返回。但是为了快捷,你不可能每次手动去写这些代码,因为它要做 mapping,所以我们又把 K8s 里类似 DeepCopy 的两个结构体相互拷贝的工具给抠出来了,方便我们内部 model 和 api 的 message 两个代码相互拷贝的时候,可以少写一些代码,减少一些工作量。 上面讲的就是我们关于工程的一些 layout 实践。简单回溯一下,大概分为几块,第一就是 app 是怎么组织的,app 里面有多种角色的服务是怎么组织的,第三就是一个 app 里面的目录是怎么组织的,最后我重点讲了一下 api 是怎么维护的。 Unittest 测试方法论 现在回顾一下单元测试。我们先看这张图,这张图是我从《Google 软件测试之道》这本书里面抠出来的,它想表达的意思就是最小型的测试不能给我们的最终项目的质量带来最大的信心,它比较容易带来一些优秀的代码质量,良好的异常处理等等。但是对于一个面向用户场景的服务,你只有做大型测试,比方做接口测试,在 App 上验收功能的这种测试,你应用交付的信心可能会更足。这个其实要表达的就是一个“721 原则”。我们就是 70% 写小型测试,可以理解为单元测试,因为它相对来说好写,针对方法级别。20% 是做一些中型测试,可能你要连调几个项目去完成你的 api。剩下 10% 是大型测试,因为它是最终面向用户场景的,你要去使用我们的 App,或者用一些测试 App 去测试它。这个就是测试的一些简单的方法论。 单元测试原则 我们怎么去对待 Go 里面的单元测试?在《Google 软件测试之道》这本书里面,它强调的是对于一个小型测试,一个单元测试,它要有几个特质。它不能依赖外部的一些环境,比如我们公司有测试环境,有持续集成环境,有功能测试环境,你不能依赖这些环境构建自己的单元测试,因为测试环境容易被破坏,它容易有数据的变更,数据容易不一致,你之前构建的案例重跑的话可能就会失败。 我觉得单元测试主要有四点要求。第一,快速,你不能说你跑个单元测试要几分钟。第二,要环境一致,也就是说你跑测试前和跑测试后,它的环境是一致的。第三,你写的所有单元测试的方法可以以任意顺序执行,不应该有先后的依赖,如果有依赖,也是在你测试的这个方法里面,自己去 setup 和 teardown,不应该有 Test Stub 函数存在顺序依赖。第四,基于第三点,你可以做并行的单元测试,假设我写了一百个单元测试,一个个跑肯定特别慢。 doker-compose 最近一段时间,我们演进到基于 docker-compose 实现跨平台跨语言环境的容器依赖管理方案,以解决运行 unittest 场景下的容器依赖问题。 首先,你要跑单元测试,你不应该用 VPN 连到公司的环境,好比我在星巴克点杯咖啡也可以写单元测试,也可以跑成功。基于这一点,Docker 实际上是非常好的解决方式。我们也有同学说,其他语言有一些 in-process 的 mock,是不是可以启动 MySQL 的 mock ,然后在 in-process 上跑?可以,但是有一个问题,你每一个语言都要写一个这样的 mock ,而且要写非常多种,因为我们中间件越来越多,MySQL,HBase,Kafka,什么都有,你很难覆盖所有的组件 Mock。这种 mock 或者 in-process 的实现不能完整地代表线上的情况,比方说,你可能 mock 了一个 MySQL,检测到 query 或者 insert ,没问题,但是你实际要跑一个 transaction,要验证一些功能就未必能做得非常完善了。所以基于这个原因,我们当时选择了 docker-compose,可以很好地解决这个问题。 我们对开发人员的要求就是,你本地需要装 Docker,我们开发人员大部分都是用 Mac,相对来说也比较简单,Windows 也能搞定,如果是 Linux 的话就更简单了。本地安装 Docker,本质上的理解就是无侵入式的环境初始化,因为你在容器里面,你拉起一个 MySQL,你自己来初始化数据。在这个容器被销毁以后,它的环境实际上就满足了我们刚刚提的环境一致的问题,因为它相当于被重置了,也可以很方便地快速重置环境,也可以随时随地运行,你不需要依赖任何外部服务,这个外部服务指的是像 MySQL 这种外部服务。当然,如果你的单元测试依赖另外一个 RPC 的 service 的话,PB 的定义会生成一个 interface,你可以把那个 interface 代码给 mock 掉,所以这个也是能做掉的。对于小型测试来说,你不依赖任何外部环境,你也能够快速完成。 另外,docker-compose 是声明式的 API,你可以声明你要用 MySQL,Redis,这个其实就是一个配置文件,非常简单。这个就是我们在单元测试上的一些实践。 我们现在看一下,service 目录里面多了一个 test 目录,我们会在这个里面放 docker-compose 的 YAML 文件来表示这次单元化测试需要初始化哪些资源,你要构建自己的一些测试的数据集。因为是这样的,你是写 dao 层的单元测试的话,可能就需要 database.sql 做一些数据的初始化,如果你是做 service 的单元测试的话,实际你可以把整个 dao 给 mock 掉,我觉得反而还相对简单,所以我们主要针对场景就是在 dao 里面偏持久层的,利用 docker-compose 来解决。 容器的拉起,容器的销毁,这些工作到底谁来做?是开发同学自己去拉起和销毁,还是说你能够把它做成一个 Library,让我们的同学写单元测试的时候比较方便?我倾向的是后者。所以在我们最终写单元测试的时候,你可以很方便地 setup 一个依赖文件,去 setup 你的容器的一些信息,或者把它销毁掉。所以说,你把环境准备好以后,最终可以跑测试代码也非常方便。当然我们也提供了一些命令函,就是 binary 的一些工具,它可以针对各个语言方便地拉起容器和销毁容器,然后再去执行代码,所以我们也提供了一些快捷的方式。 刚刚我也提到了,就是我们对于 service 也好,API 也好,因为依赖下层的 dao 或者依赖下层的 service,你都很方便 mock 掉,这个写单元测试相对简单,这个我不展开讲,你可以使用 GoMock 或者 GoMonkey 实现这个功能。 Toolchain 我们利用多个 docker-compose 来解决 dao 层的单元测试,那对于我刚刚提到的项目的一些规范,单元测试的一些模板,甚至是我写了一些 dao 的一些占位符,或者写了一些 service 代码的一些占位符,你有没有考虑过这种约束有没有人会去遵循?所以我这里要强调一点,工具一定要大于约束和文档,你写了约束,写了文档,那么你最终要通过工具把它落实。所以在我们内部会有一个类似 go tool 的脚手架,叫 Kratos Tool,把我们刚刚说的约定规范都通过这个工具一键初始化。 对于我们内部的工具集,我们大概会分为几块。第一块就是 API 的,就是你写一个 PB 文件,你可以基于这个 PB 文件生成 gRPC,HTTP 的框架代码,你也可以基于这个 PB 文件生成 swagger 的一些 JSON 文件或者是 Markdown 文件。当然了,我们还会生成一些 API,用于 debug 的 client 方便去调试,因为我们知道,gRPC 调试起来相对麻烦一些,你要去写代码。 还有一些工具是针对 project 的,一键生成整个应用的 layout,非常方便。我们还提了 model,就是方便 model 和 DTO,DTO 就是 API 里面定义的 message 的 struct 做 DeepCopy,这个也是一个工具。 对于 cache 的话,我们操作 memcache,操作 Redis 经常会要做什么逻辑?假如我们有一个 cache aside 场景,你读了一个 cache,cache miss 要回原 DB,你要把这个缓存回塞回去,甚至你可能这个回塞缓存想异步化,甚至是你要去读这个 DB 的时候要做归并回源(singleflight),我们把这些东西做成一些工具,让它整个回源到 DB 的逻辑更加简单,就是把这些场景描述出来,然后你通过工具可以一键生成这些代码,所以也是会比较方便。 我们再看最后一个,就是 test 的一些工具。我们会基于项目里面,比方说 dao 或者是 service 定义的 interface 去帮你写好 mock 的代码,我直接在里面填,只要填代码逻辑就行了,所以也会加速我们的生产。 上图是 Kratos 的一个 demo,基本就是支持了一些 command。这里就是一个 kratos new kratos-demo 的一个工程,-d YourPath 把它导到某一个路径去,--proto 顺便把 API 里面的 proto 代码也生成了,所以非常简单,一行就可以很快速启动一个 HTTP 或者 gRPC 服务。 我们知道,一个微服务的框架实际非常重,有很多初始化的方式等等,非常麻烦。所以说,你通过脚手架的方式就会非常方便,工具大于约定和文档这个这个理念就是这么来的。 Configuration 讲完工具以后,最后讲一下配置文件。我为什么单独提一下配置文件?实际它也是工程化的一部分。我们一个线上的业务服务包含三大块,第一,应用程序,第二,配置文件,第三,数据集。配置文件最容易导致线上出 bug,因为你改一行配置,整个行为可能跟 App 想要的行为完全不一样。而且我们的代码的开发交付需要经过哪些流程?需要 commit 代码,需要 review,需要单元测试,需要 CD,需要交付到线上,需要灰度,它的整个流程是非常长的。在一步步的环境里面,你的 bug 需要前置解决,越前置解决,成本越低。因为你的代码的开发流程是这么一个 pipeline,所以 bug 最终流到线上的概率很低,但是配置文件没有经过这么复杂的流程,可能大家发现线上有个问题,决定要改个线上配置,就去配置中心或者配置文件改,然后 push 上线,接着就问题了,这个其实很常见。 从 SRE 的角度来说,导致线上故障的主因就是来自配置变更,所以 SRE 很大的工作是控制变更管理,如果能把变更管理做好,实际上很多问题都不会出现。配置既然在整个应用里面这么重要,那在我们整个框架或者在 Go 的工程化实践里面,我们应该对配置文件做一些什么事情? 我觉得是几个。第一,我们的目标是什么?配置文件不应该太复杂,我见过很多框架,或者是业务的一些框架,它实际功能非常强大,但是它的配置文件超级多。我就发现有个习惯,只要有一个同事写错了这个配置,当我新起一个项目的时候,一定会有人把这个错误的配置拷贝到另外一个系统里面去。然后当发现这个应用出问题的时候,我们一般都会内部说一下,你看看其他同事有没有也配错的,实际这个配错概率非常高。因为你的配置选项越多,复杂性越高,它越容易出错。所以第一个要素就是说,尽量避免复杂的配置文件。配得越多,越容易出错。 第二,实际我们的配置方式也非常多,有些用 JSON,有些用 YAML,有些用 Properties,有些用 INI。那能不能收敛成通用的一种方式呢?无论它是用 Python 的脚本也好,或者是用 JSON 也好,你只要有一种唯一的约定,不需要太多样的配置方式,对我们的运维,对我们的 SRE 同时来说,他跨项目的变更成本会变低。 第三,一定要往简单化去努力。这句话其实包含了几个方面的含义。首先,我们很多配置它到底是必须的还是可选的,如果是可选,配置文件是不是就可以把它踢掉,甚至不要出现?我曾经有一次看到我们 Java 同事的配置 retry 有一个重试默认是零,内部重试是 80 次,直接把 Redis cluster 打故障了,为什么?其实这种事故很低级,所以简单化努力的另外一层含义是指,我们在框架层面,尤其是提供 SDK 或者是提供 framework 的这些同事尽量要做一些防御编程,让这种错配漏配也处于一个可控的范围,比方重试 80 次,你觉得哪个 SDK 会这么做?所以这个是我们要考虑的。但是还有一点要强调的是,我们对于业务开发的同事,我们的配置应该足够的简单,这个简单还包含,如果你的日志基本上都是写在这个目录,你就不要提供这个配置给他,反而不容易出错。但是对于我们内部的一些 infrastructure,它可能需要非常复杂的配置来优化,根据我的场景去做优化,所以它是两种场景,一种是业务场景,足够简单,一种是我要针对我的通用的 infrastructure 去做场景的优化,需要很复杂的配置,所以它是两种场景,所以我们要想清楚你的业务到底是哪一种形态。 还有一个问题就是我们配置文件一定要做好权限的变更和跟踪,因为我们知道上线出问题的时候,我们的第一想法不是查 bug,是先止损,止损先找最近有没有变更。如果发现有变更,一般是先回滚,回滚的时候,我们通常只回滚了应用程序,而忘记回滚了配置。每个公司可能内部的配置中心,或者是配置场景,或者跟我们的二进制的交付上线都不一样,那么这里的理念就是你的应用程序和配置文件一定是同一个版本,或者是某种意义上让他们产生一个版本的映射,比方说你的应用程序 1.0,你的配置文件 2.0,它们之间存在一个强绑定关系,我们在回滚的时候应该是一起回滚的。我们曾经也因为类似的一些不兼容的配置的变更,二进制程序上线,但配置文件忘记回滚,出现过事故,所以这个是要强调的。 另外,配置的变更也要经过 review,如果没问题,应该也是按照 App 发布一样,先灰度,再放量,再全量等等类似的一种方式去推,演进式的这种发布,我们也叫滚动发布,我觉得配置文件也是一样的思路。 加入阿里云钉钉群享福利:每周技术直播,定期群内有奖活动、大咖问答 原文链接
有只黑白猫 2020-01-09 17:29:54 0 浏览量 回答数 0

问题

HBase Read Replicas功能介绍系列

转载自:http://www.hbase.group/article/11 1.概述 对于HBase read replicas模块打算有几篇文章组成一个系列,详细的介绍这个功能,大概分read ...
pandacats 2019-12-20 19:45:55 4 浏览量 回答数 0

回答

存储在OSS上的文件,如何设置防盗链功能? 为了防止用户在OSS上的数据被其他人盗链,OSS支持基于HTTP header中表头字段referer的防盗链方法。 目前,只有通过OSS的控制台( http://i.aliyun.com/dashboard/instance?type=oss)可以对一个bucket设置referer字段的白名单和是否允许referer字段为空的请求访问。    例如,对于一个名为mydata的bucket,设置其referer白名单为 http://www.aliyun.com。则所有referer为 http://www.aliyun.com的请求才能访问mydata这个bucket中的Object。    细节分析: 1) 用户只有通过 URL 签名或者匿名访问 Object 时,才会做防盗链验证。请求的 Header 中有“Authorization”字段的,不会做防盗链验证。 2) 一个 bucket 可以支持多个 referer 参数,这些参数之间由“,”号分隔。 3) Referer 参数支持通配符“*”和“?”。 4) 用户可以设置是否允许 referer 字段为空的请求访问。 5) 白名单为空时,不会检查 referer 字段是否为空(不然所有的请求都会被拒绝)。 6) 白名单不为空,且设置了不允许 referer 字段为空的规则;则只有 referer 属于白名单的请求被允许,其他请求(包括 referer 为空的请求)会被拒绝。 7) 如果白名单不为空,但设置了允许 referer 字段为空的规则;则 referer 为空的请求和符合白名单的请求会被允许;其他请求都会被拒绝。 8) Bucket 的三种权限(private,public-read,public-read-write)都会检查 referer字段。       星号“*”: 可以使用星号代替0个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。 问号“?”: 可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。    不允许Refer为空 可能有些人搞不明白,简单说就是直接在浏览器中输入图片URL,refer为空;从网页中点击打开图片则refer不为空。    注:资料参考API文档地址 http://help.aliyun.com/manual?&helpId=253        细节分析参考资料 http://www.amznz.com/aliyun-oss-referer/ ------------------------- 11.云服务器与OSS 上传文件,流量与请求次数是否收费? 云服务器与OSS之间通过内网地址上传或下载数据,属内网流量,是免费的。 阿里云服务器与OSS之间的内网访问通信地址为: http://oss-internal.aliyuncs.com (需用以上方式进行访问,方可计为内网流量) *  可通过cname方式或三级域名的方式访问文件 云服务器与OSS每次请求所产生的请求次数,不分内外网都会计费。 收费详情请参考 http://www.aliyun.com/product?type=oss#price 12.OSS API返回结果没有JSON格式的吗? 只有XML格式 13. 如何进行大文件上传? 1、有开发能力的用户:可以通过oss API或SDK来操作。 • 5GB以下文件或网络速度好的用户,可以使用PUT object 。 • 5GB以上或网络速度不好并且文件在100M以上的用户推荐使用 Multipart Upload 2、无开发基础客户可下载OSS客户端,请参考 http://bbs.aliyun.com/read.php?tid=95321 14.object怎么改名? 两种方法可以实现:1. 您可以删除原来的文件,上传新命名的文件也能达到改名的效果2. 您可以通过copy objcet 源文件复制成为一个新名字的文件。再把源文件删除即可 15.OSS中可以重命名bucket吗?是否支持object迁移? OSS的bucket暂不支持重命名,若需要其他名称建议您重新创建bucket。 OSS 提供了COPY objcet的功能,您可以将原bucekt下的文件COPY到新bucket即可。 16.咨询一下java sdk中的 ossclient对象是否是线程安全的? java sdk中的 ossclient对象是线程安全的 17.测试版PHP SDK中不能自动检测所需PHP模块,是什么原因? 1.使用phpinfo来查看PHP模块。使用PHPSDK需要配置CURL功能模。具体安装CURL的方法可参考: http://bbs.aliyun.com/read.php?tid=18967 ; 2.您可以下载最新的PHP SDK包。已支持自动检测所需PHP模块 http://www.aliyun.com/product?type=oss#resources 18.比如多个文件object, 直接指定多个object,生成一个url,打包一起下载? 目前oss不支持多个object打包下载。 此需求可以由上层应用逻辑进行处理。OSS服务提供平台级基础资源的存储支持。 19.OSS返回的文件网络路径,域名都是aliyun的吗? 是的。支持CNAME 同时现在支持绑定自己的域名 20.可以给出一个java实现生成url签名的代码示例吗? 生成签名以后的URL的示例代码如下: // Generate a presigned URL Date expires = new Date (new Date().getTime()   1000 * 60); // 1 minute to expire GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, key); generatePresignedUrlRequest.setExpiration(expires); URL url = client.generatePresignedUrl(generatePresignedUrlRequest); System.out.println(url.toString()); 这段代码假定指定bucketName和key的Object已经上传到OSS,用户可以根据修改设定expires,即过期时间。更详细的操作可以参考OSSClient#generatePresignedUrl方法和GeneratePresignedUrlRequest类的帮助。 ------------------------- 21.OSS中url中可以实现授权文件上传吗? Oss中url中授权文件上传可以实现 java版代码示例如下:GeneratePresignedUrlRequest generatePresignedUrlRequest = 1)url中包含签名的好像能够实现文件的下载,阿里云能实现url中授权文件上传吗? new GeneratePresignedUrlRequest(bucketName, key); 2)java版代码示例如下: generatePresignedUrlRequest.setMethod(HttpMethod.PUT); generatePresignedUrlRequest.setExpiration(expires); generatePresignedUrlRequest.addUserMetadata("usermeta", "uservalue"); // If you need to set user metadata URL url = client.generatePresignedUrl(generatePresignedUrlRequest); 22.如何使用JAVA SDK源代码? 您可以使用jd decompiler等Java反编译的工具打开SDK的jar文件,即可以查看全部源代码。 23.为什么bucket下的文件都删除了,却还能查看到占用的空间,并且bucket也删除不了? 请确认您是否使用过UploadMultipart 的功能,如使用过,建议您可以通过UploadsList Multipart 查看是否存在已经被初始化但是未被Complete或者Abort的 Multipart Upload的part。如果有,则需再执行Abort Multipart Upload(来终止上次操作的 Multipart Upload,该命令会自动删除未完成的part)。 因为未完成合并的part,无法形成objcet, 所以通过object list是看不到这些残留的part 但这些都会产生占用空间量。 24.如何使用内网 ? 阿里云云服务器与OSS之间通过Bucket.oss-internal.aliyuncs.com(OSS内网请求域名)的方式请求,所产生的网络流量可享受内网流量免费。 25.无法上传大文件怎么办? 无法向OSS上传大文件。上传1KB以下的文件就可以,2KB以上的文件就不成功,请求发出去就收不到任何响应,直至超时。 解决办法是将本机的MTU设成1470(默认应该是1500) Linux下修改MTU的命令是:(以阿里云服务器oss走内网默认是eth0为例) ip link set dev eth0 mtu 1470 26.OSS支持bucket作为三级域名的访问方式? 三级域名外链访问: http://bucketname.oss.aliyuncs.com/object 例如: http://cloudstorage.oss.aliyuncs.com/pujing.jpg 普通外链访问: http://oss.aliyuncs.com/bucketname/object 例如: http://oss.aliyuncs.com/cloudstorage/pujing.jpg 温馨提示:如果你的bucket里面有下划线"_",那么由于不符合WWW规范,所以无法做为三级域名使用,只能使用普通外链访问方式。 ------------------------- 终于整理出来了 。。。。大半夜的 闹鬼啊 ------------------------- 回 6楼(kashi) 的帖子 谢谢支持 ------------------------- 回 5楼(yyd521) 的帖子 只要能帮到大家   应该的拉 ------------------------- Re:ReOSS官方帮助文档在此归类发布,常见问题基本能在这里找到答案。 引用第10楼pasahu于2013-07-20 20:53发表的 ReOSS官方帮助文档在此归类发布,常见问题基本能在这里找到答案。 : 快点吧 discuz  x2.5  3.0整出来吧。。搞些实在的。 你好  这个我们在做  很快  插件就出来了 ------------------------- 感谢夸奖
asky8 2019-12-02 01:36:19 0 浏览量 回答数 0

回答

回 3楼(莫有) 的帖子 您好, 请问您使用的系统是哪种Linux发行版呢?是CentOS 6吗? ------------------------- 回 5楼(莫有) 的帖子 您好, 好的,等我找到合适的测试机,再为您在CentOS7 系统里测试ipv6的隧道设置喔。 ------------------------- 回 5楼(莫有) 的帖子 您好, 为您写了这个CentOS 7的配置帖子,希望对您有帮助喔: https://bbs.aliyun.com/read.php?tid=285557 ------------------------- 回 10楼(非洲小犀牛) 的帖子 您好, 如果您的是Linux系统,可能需要先为系统启用ipv6的功能喔。请看这里的例子: https://bbs.aliyun.com/read/285557.html ------------------------- 回 12楼(猎马网) 的帖子 您好, 欢迎来到阿里云论坛。 IPv6测试不能通过的原因是什么呢?您在 http://ipv6-test.com/validate.php 里测试您的站点访问结果是什么呢? ------------------------- 回 14楼(猎马网) 的帖子 您好, 如本例中的,添加IPv6隧道地址的默认网关命令,应该是: netsh interface ipv6 add route ::/0 IP6Tunnel 2001:470:18:401::1 请问,您在做第5步时,是否有运行如上边类似的命令吗? ------------------------- 回 16楼(猎马网) 的帖子 您好, 您可以查看“网络连接”里对应的连接属性,估计可以直接修改的哩。 ------------------------- 回 19楼(猎马网) 的帖子 您好, 我在测试机里使用wget测试,好象正常: root@los:~/test4# wget -6 http://www.iliema.com/ converted 'http://www.iliema.com/' (ANSI_X3.4-1968) -> 'http://www.iliema.com/' (UTF-8) --2016-08-11 22:28:41--   http://www.iliema.com/ Resolving www.iliema.com (www.iliema.com)... 2001:470:1f14:b5f::2 Connecting to www.iliema.com (www.iliema.com)|2001:470:1f14:b5f::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 77636 (76K) [text/html] Saving to: 'index.html.3' ------------------------- 回 20楼(猎马网) 的帖子 您好, 应该可以如IPv4那样,多个域名指到相同的IPv6地址。 ------------------------- 回 24楼(很快) 的帖子 您好, 请问您的nginx web是安装在Windows还是Linux的系统上? ------------------------- 回 26楼(喵咪喵) 的帖子 您好, 欢迎来到阿里云论坛。 申请到IPv6的隧道地址后,还需要在系统里配置的,以让这个IPv6的地址能被外网的用户访问到喔。 ------------------------- 回 29楼(不断学习) 的帖子 您好, 请问您使用的操作系统是WIndows 2012吗? 请问您执行的netsh命令是和操作说明那里一样的吗? ------------------------- 回 31楼(喵咪喵) 的帖子 您好, 应该不影响,如果前两项检查测试通过,最后一条(IPv6-only)测试不通过,应该是可以的。 ------------------------- 回 34楼(wolfing5210) 的帖子 您好, 我在Linux系统上,能ping通您的IPv6地址: root@los:~# ping6 2001:470:35:102a::2 PING 2001:470:35:102a::2(2001:470:35:102a::2) 56 data bytes 64 bytes from 2001:470:35:102a::2: icmp_seq=1 ttl=119 time=225 ms 64 bytes from 2001:470:35:102a::2: icmp_seq=2 ttl=119 time=226 ms 如果您要测试,要具备两个条件, a. 在Windows系统里,应该是使用 ping -6 的参数 b. 发出测试的系统是启用了IPv6 ------------------------- 回 37楼(小成123456) 的帖子 您好, 抱歉延时回复。 请问您在系统里,执行 ipconfig /all 后,能看到输出信息中包含的ipv6 tunel信息吗? ------------------------- 回 39楼(呢你) 的帖子 您好, 抱歉给您带来不便。 请问苹果审核拒绝的原因是什么,是不能连接到ipv6地址吗? 请问您创建的ipv6隧道地址,测试时能从外网成功访问吗? ------------------------- 回 41楼(呢你) 的帖子 您好, 80端口测试是正常的,但好象web返回了错误。 建议您咨询一下您的 APP 程序员。 root@los:~/test# curl [2001:470:18:95c::2] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' J BossWeb/2.0.1.GA - Error report ------------------------- 回 44楼(nyanko桑) 的帖子 您好, 那请问您在例子中,第5步执行的命令是哪些呢? ------------------------- 回 45楼(小成123456) 的帖子 您好, 域名AAAA解析与IPv6隧道地址设置并不直接相关,如果您的IPv6隧道地址设置正确,从外网应该能ping通这个新设置的IPv6隧道地址。 ------------------------- 回 48楼(nyanko桑) 的帖子 您好, 好象命令看起来没有问题,您是从 HE 隧道地址设置网站里直接复制的,对吗? 那执行命令时,是否回显的结果是“确定”,还是有别的错误信息提示呢? ------------------------- 回 50楼(持名) 的帖子 您好, 那就奇怪了。 建议您回过头梳理一下,看看是否缺了哪个步骤或环境有哪些特殊的地方。 ------------------------- 回 52楼(nyanko桑) 的帖子 您好, 或许将原命令中的“add”(添加)改为“del”(删除)后,可以试试。  我个人猜测的。 ------------------------- 回 54楼(nyanko桑) 的帖子 您好, 好哩,到时如还没有解决问题,可通过站内信,发来临时的ECS登录信息,我为您看看喔。 ------------------------- 回 56楼(nyanko桑) 的帖子 您好, 申请到的IPv6隧道地址是不变的呀,除非您删除了。 ------------------------- 回 58楼(nyanko桑) 的帖子 您好, 好哩,祝愿您的APP能通过苹果的审核。 如还有疑问,欢迎跟帖。 ------------------------- 回 60楼(゛温ゝ先生) 的帖子 您好, 您在站内信里提到说“网络有重名”,现在系统里没成功添加ipv6地址吗? ------------------------- 回 61楼(陈cc123) 的帖子 您好, 一般AAA记录里,主机记录填写的是从HE申请到的IPv6隧道地址。 更新:应该是“记录值”里填写从he申请到的ipv6隧道地址。 ------------------------- 回 65楼(陈cc123) 的帖子 您好, 对不起,之前我的说法有错误。 按阿里云解析面板中,“主机记录”应该是您需要设置的网站访问地址,如我这里想设置 ipv6.anqun.org 的ipv6地址,“主机记录”里填写“ipv6”,而“记录值”里填写IPv6隧道地址:2001:470:18:401::2 ------------------------- 回 67楼(陈cc123) 的帖子 您好, 那请问您提交给 http://ipv6-test.com/ 测试的网址是什么呢? ------------------------- 回 69楼(陈cc123) 的帖子 您好, 页面 http://ipv6-test.com/validate.php 里提交的网址应该是一个域名网址,应该不能直接提交IPv6地址去测试的喔。 您可以在您的域名控制面板添加一条AAA记录的呀。 ------------------------- 回 72楼(陈cc123) 的帖子 您好, 能否使用如 netstat -noa | grep 80 的命令,来查看当前Web服务是否在ipv6地址监听使用呢? ------------------------- 回 74楼(陈cc123) 的帖子 您好, 图中没有显示IPv6相关的8080端口使用情况喔, 或许您可以运行 netstat -noa | grep 8080 再次确认一下。 ------------------------- 回 78楼(陈cc123) 的帖子 您好, 是的,不好意思,我忘记了您的系统是Windows,不是linux,所以不能直接用grep的命令。 现在从外网测试,您的tomcat站点是可以从ipv6地址访问了,但或许您将web从8080换到常用的80端口,方便访问。 root@los:~/test# curl [2001:470:18:ab3::2]:8080 -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 ------------------------- 回 80楼(陈cc123) 的帖子 您好, 如果您提交给苹果审核就是带8080的IPv6地址,那可保持现状。 能否说一下具体您审核网址?如果按上边的测试结果来看,您的IPv6隧道地址是(曾)正常工作。 ------------------------- 回 82楼(陈cc123) 的帖子 您好, 现在从外网测试您给的网址,正常。 root@los:~/test# curl -6 'http://www.91mcgj.cn:8080' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 root@los:~/test# curl 'http://www.91mcgj.cn:8080' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 ------------------------- 回 84楼(陈cc123) 的帖子 您好, 可能那个检测的站点,只能检测默认80端口的吧,具体到您这里,您是要写明8080端口的,所以那个测试网址可能不适用喔。 ------------------------- 回 87楼(xiaopao888) 的帖子 您好, 欢迎来到阿里云论坛。 能否请问在“命令提示符”里执行以下的命令,看输出结果有没有关于ipv6的80地址监听呢? netstat -noa | find "80" ------------------------- 回 88楼(莫尼玛) 的帖子 您好, 欢迎来到阿里云论坛。 如果您使用自己的环境来测试,需要确认您的环境是否支持ipv6使用环境喔,如您的telnet程序是否支持ipv6,您的网络是否支持ipv6。 我拿一个美国的vps来测试,也是可以成功连接到您的ipv6隧道地址: root@los:~/test# curl [2001:470:18:aa8::2] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Microsoft Internet Information Services 8 ------------------------- 回 91楼(xiaopao888) 的帖子 您好, 如果web没有在iPv6的网络接口上监听,请尝试调整一下web的配置文件喔,如让它在所有的可用网络接口里监听。 ------------------------- 回 93楼(莫尼玛) 的帖子 您好, 请问您在tcp 8300里提供的服务是web的吗? 如果是web服务,测试不成功喔: root@los:~# curl [2001:470:18:aa8::2:8300] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' root@los:~# ------------------------- 回 97楼(莫尼玛) 的帖子 您好, 好象用telnet测试8300 tcp 端口,不成功喔: root@los:~# telnet -6 2001:470:18:aa8::2 8300 Trying 2001:470:18:aa8::2... telnet: Unable to connect to remote host: Connection refused root@los:~# telnet -6 2001:470:18:aa8::2 80 Trying 2001:470:18:aa8::2... Connected to 2001:470:18:aa8::2. Escape character is '^]'. Connection closed by foreign host. ------------------------- 回 100楼(莫尼玛) 的帖子 您好, 如果您的socket程序默认不是在所有的端口上监听使用,是需要调整一下的喔。 或您使用 netstat -noa 的命令,查看一下都有哪些8300的端口在使用。 ------------------------- 回 102楼(莫尼玛) 的帖子 您好, 0.0.0.0 可能代表是IPv4的所有网络接口,不包括IPv6的啊。 请看这个云友以下的这个贴图,最后一行代表是IPv6的所有网络接口: ------------------------- 回 105楼(莫尼玛) 的帖子 您好, 好的,请稍等。 8310可以,8300也可以。 root@los:~# telnet -6 ht.yulesy.cn 8310 Trying 2001:470:18:aa8::2... Connected to ht.yulesy.cn. Escape character is '^]'. root@los:~# telnet -6 ht.yulesy.cn 8300 Trying 2001:470:18:aa8::2... Connected to ht.yulesy.cn. Escape character is '^]'. ------------------------- 回 109楼(涛涛~) 的帖子 您好, 如果您需要通过http访问位于两个不同服务器上的文件,或许是需要为这两个服务器都配置ipv6隧道地址喔。 ------------------------- 回 110楼(陌祥伟) 的帖子 您好, 我现在没测试机,不能具体为您查看输出结果, 您用 ipconfig 查看到的信息页面内容是怎么样的呢? ------------------------- 回 113楼(陌祥伟) 的帖子 您好, 请问您提到的“本地ping和telnet端口是通的”,是ping ipv6和telnet ipv6隧道地址都正常吗? ------------------------- 回 115楼(陌祥伟) 的帖子 您好, 我这里为您测试,也是ping6不通, 或许您需要再检查一下是否有防火墙或其它缺漏的环节没留意到: --- 2001:470:23:70d::2 ping statistics --- 65 packets transmitted, 0 received, 100% packet loss, time 64000ms ------------------------- 回 119楼(leyuwei) 的帖子 您好, 请问您的ipv6隧道地址是 2001:470:18:ecc::2 吗? 我从外网测试,返回是403的错误页: root@los:~# wget -6 http://[2001:470:18:ecc::2]:8080 converted 'http://[2001:470:18:ecc::2]:8080' (ANSI_X3.4-1968) -> 'http://[2001:470:18:ecc::2]:8080' (UTF-8) --2017-01-07 01:27:05--  http://[2001:470:18:ecc::2]:8080/ Connecting to [2001:470:18:ecc::2]:8080... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-01-07 01:27:09 ERROR 403: Forbidden. root@los:~# curl -6 'http://www.dlmunews.club:8080' <p align='center'>▒▒▒▒▒▒▒▒▒▒▒▒ַ▒▒▒▒▒޲▒ϣ▒▒▒▒▒▒ô▒▒▒▒▒▒▒▒°ɣ▒</p> <p align='center'>▒▒▒▒▒ִ▒▒▒▒ˣ▒▒▒▒▒▒޾▒Ҫ▒▒ȡһЩ▒ֶ▒▒ˣ▒</p> <br/> <p align='center'>403 FORBIDDEN</p> <p align='center'>▒▒▒▒▒▒˼▒▒▒▒▒▒▒뿴▒▒▒ҵ▒▒▒▒ӣ▒</p>root@los:~# ------------------------- 回 118楼(陌祥伟) 的帖子 您好, 我去找个Windows 2008的系统为您测试一下喔。 请等待。 ------------------------- Re:回 118楼(陌祥伟) 的帖子 您好, 我找个测试机(用的是Windows 2008 SP2 32位中文版公共镜像),重复操作了一次,好象正常哩: C:\Users\Administrator>netsh interface ipv6 show interface Idx  Met   MTU   状态          名称 ---  ---  -----  -----------  -------------------   1   50 4294967295  connected    Loopback Pseudo-Interface 1 15   10   1280  connected    IP6Tunnel 10   10   1500  connected    本地连接 22   50   1280  disconnected  本地连接* 12 23   50   1280  disconnected  本地连接* 13 11   10   1500  connected    本地连接 2 C:\Users\Administrator>ping -6 2001:470:18:401::2 正在 Ping 2001:470:18:401::2 从 2001:470:18:401::2 具有 32 字节的数据: 来自 2001:470:18:401::2 的回复: 时间<1ms 来自 2001:470:18:401::2 的回复: 时间<1ms 2001:470:18:401::2 的 Ping 统计信息:     数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位):     最短 = 0ms,最长 = 0ms,平均 = 0ms Control-C ^C C:\Users\Administrator>ping -6 ipv6.google.com 正在 Ping ipv6.l.google.com [2404:6800:4008:800::200e] 从 2001:470:18:401::2 具 有 32 字节的数据: 来自 2404:6800:4008:800::200e 的回复: 时间=401ms 来自 2404:6800:4008:800::200e 的回复: 时间=400ms ------------------------- 回 122楼(leyuwei) 的帖子 您好, 在我使用的测试机里,能访问到您提供的网址内容喔,祝您通过APP的IPv6审核。 root@los:~/test# curl -6 'http://www.dlmunews.club:8080/dlmunews/test.html' test IPV6root@los:~/test# ------------------------- 回 125楼(陌祥伟) 的帖子 您好, 抱歉没有留意您的ECS网络类型, 弹性公网IP,看介绍说是一种NatIP,我不确定这与“经典网络”里的公网IP是否有一些使用限制情景, 建议您发工单咨询一下阿里云官方工程师: https://workorder.console.aliyun.com/ 本帖里的例子ECS是“经典网络”,并不是“专有网络”或“弹性公网IP”的使用场景喔。 ------------------------- 回 131楼(dearvitamin) 的帖子 您好, 测试得知,经典网络中的站点可以,专用网络中的站点不可以访问到喔。 root@los:~/test# curl -6 'http://www.spl258.com' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' 斯普林游戏 root@los:~/test# curl -6 'http://www.longm258.com' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' ------------------------- 回 133楼(vinny1024) 的帖子 您好, 欢迎来到阿里云论坛。 本例子里的Web是IIS,并不是apache喔。 请问您在apache的配置文件里,已经设置监听使得ipv6的地址和端口了吗? ------------------------- 回 136楼(raolan123) 的帖子 您好, 已有的云友反馈,不能按例子中的方法在”专有网络“中成功设置ipv6隧道地址。 ------------------------- 回 138楼(ekuns) 的帖子 您好, 欢迎来到阿里云论坛。 操作步骤,Windows 2012和Windows 2008应该是大致相同的。 请问您是否曾按帖子里的步骤,在Windows 2008里测试了呢? 如果您在Windows 2008里测试失败,我为您找个测试机来实践一下喔。 ------------------------- 回 140楼(poplanchong) 的帖子 您好, 如果是ipv6-only,可能还需要DNS解析之类支持的。 ------------------------- 回 142楼(poplanchong) 的帖子 您好, 欢迎来到阿里云论坛。 如果可以ping通ipv6的隧道地址,那么说明配置应该是成功的。 但如果您设置ipv6隧道地址目的是为了通过苹果的APP审核,还是要看苹果公司的判断结果喔。 祝您成功。 ------------------------- 回 144楼(poplanchong) 的帖子 您好, 很高兴听到您的APP已经通过苹果公司的审核。 我没有向苹果公司提交过APP审核,并没有实践的经验。所以我也不确定为什么苹果公司先后不同审核结果的原因。 您前后向苹果公司提交过几个网址用于审核? ------------------------- 回 146楼(没办法抽奖) 的帖子 您好, 我在测试机里, 可以ping通您提到的网关,但您的隧道地址ping不通喔, 是不是哪一步没有操作完整? root@los:~/test5# ping6 2001:470:1f04:a9e::2 PING 2001:470:1f04:a9e::2(2001:470:1f04:a9e::2) 56 data bytes --- 2001:470:1f04:a9e::2 ping statistics --- 41 packets transmitted, 0 received, 100% packet loss, time 39999ms root@los:~/test5# ping6 2001:470:1f04:a9e::1 PING 2001:470:1f04:a9e::1(2001:470:1f04:a9e::1) 56 data bytes 64 bytes from 2001:470:1f04:a9e::1: icmp_seq=1 ttl=56 time=53.5 ms 64 bytes from 2001:470:1f04:a9e::1: icmp_seq=2 ttl=56 time=53.8 ms ------------------------- 回 147楼(poplanchong) 的帖子 您好,   如此,我也不确定具体的原因了。不过,APP审核通过了,终究是件好事,是不是呢? ------------------------- 回 150楼(没办法抽奖) 的帖子 晚上好, 请问您的ECS操作系统是Windows 2012的吗? ------------------------- 回 152楼(l_zhaowei) 的帖子 您好, 请问您新购的ECS实例带宽类型是“专有网络”的吗? ------------------------- 回 153楼(l_zhaowei) 的帖子 您好, 暂时没有在“专有网络”实现IPv6隧道地址的方案喔,抱歉。 ------------------------- 回 157楼(鸿儒网络) 的帖子 您好, 看您的截图,或许需要先着重看一下,为什么“80端口不显示IPV6”, 请问您的站点绑定属性中,是否有IPv6的地址可以选择使用呢? ------------------------- 回 159楼(aeria) 的帖子 您好, 欢迎来到阿里云论坛。 请问您运行 netstat 的命令,可以查看到tomcat在ipv6的80端口上也有监听使用吗? ------------------------- 回 161楼(aeria) 的帖子 您好, 能贴一下您的tomcat配置文件 server.xml 的内容吗(监听那个环节的)? ------------------------- 回 164楼(aeria) 的帖子 您好, 或许您可以查看一下这个问答里提到的“authbind”: http://serverfault.com/questions/605684/tomcat-java-not-listening-on-ipv6 ------------------------- 回 167楼(aeria) 的帖子 您好, 那我去找个测试机,为您测试一下。 您的环境,是Windows 2012 + Tomcat 8 吗? ------------------------- 回 170楼(aeria) 的帖子 您好, 为您写了这个帖子,不知道是否对您有用: 《用ipv6隧道地址访问tomcat 站点内容》 - https://bbs.aliyun.com/read/312055.html ------------------------- 回 172楼(bingo_vc) 的帖子 您好, 欢迎来到阿里云论坛。 如果您的站点不需要域名访问,直接用ipv6隧道地址访问,应该也是可以的喔。 ------------------------- 回 174楼(clks) 的帖子 您好, 现在为您测试,可以访问得到页面喔: --2017-04-09 06:25:52--   http://www.meihaojiawodecheng.cn/ Resolving www.meihaojiawodecheng.cn (www.meihaojiawodecheng.cn)... 2001:470:18:352::2, 116.62.37.108 Connecting to www.meihaojiawodecheng.cn (www.meihaojiawodecheng.cn)|2001:470:18:352::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2241 (2.2K) [text/html] Saving to: 'index.html.3' ------------------------- 回 176楼(clks) 的帖子 您好, 在浏览器里,输入如 http://[2001:470:18:352::2]/ 的地址后,应该就能显示到站点内容了,有时可能需要刷新多几下。 ------------------------- 回 178楼(自由2017) 的帖子 您好, 抱歉延时回复。 请问您的ECS实例带宽类型是哪种,是“经典网络”还是“专有网络”呢? ------------------------- 回 179楼(l_zhaowei) 的帖子 您好, 如果ECS实例是“专有网络”的,或许可以参考这个帖子里的例子试试喔: https://bbs.aliyun.com/read/312196.html ------------------------- 回 182楼(l_zhaowei) 的帖子 您好, 有“经典网络”的选项,据云友们反馈,好象一些较早之前注册和使用的阿里云账户还可以在新购的ECS配置里选择“经典网络”的网络类型。 ------------------------- 回 183楼(lbmjsls) 的帖子 您好, 欢迎来到阿里云论坛。 是的,可以,您可以用一个已经有ICP备案的子域名来操作,如果您认为不会对您的业务带来负面影响的话。 ------------------------- 回 186楼(l_zhaowei) 的帖子 您好, 目前收到的反馈来看,并不是所有的阿里云账号可以选购到“经典网络”。 我并不清楚阿里云的具体购物车规则哩。 ------------------------- 回 188楼(自由2017) 的帖子 您好, 如果ECS实例是“专有网络”的,或许可以参考这个帖子里的例子试试喔: https://bbs.aliyun.com/read/312196.html ------------------------- 回 190楼(自由2017) 的帖子 您好, 已经站内信您喔。 ------------------------- 回 192楼(lbmjsls) 的帖子 您好, 都可以ping通,但返回的延时可能有些高。 root@los:~/test5# ping6 thls.qian178.com PING thls.qian178.com(lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes 64 bytes from lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=1 ttl=121 time=624 ms 64 bytes from lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=2 ttl=121 time=622 ms --- thls.qian178.com ping statistics --- 3 packets transmitted, 2 received, 33% packet loss, time 2000ms rtt min/avg/max/mdev = 622.017/623.254/624.492/1.467 ms root@los:~/test5# ping6 qian178.com PING qian178.com(lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes 64 bytes from lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=2 ttl=121 time=564 ms 64 bytes from lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=3 ttl=121 time=563 ms ------------------------- 回 194楼(龙阁商务) 的帖子 您好, 欢迎来到阿里云论坛。 如果前两项测试通,那就可以了呀。 您是对哪里还不满意呢? ------------------------- 回 196楼(龙阁商务) 的帖子 您好, 苹果审核不限次数的吧? 期待您的审核结果喔。 ------------------------- 回 198楼(cloud_lee) 的帖子 您好, 在国外的IPv6环境中的服务器为您测试IPv6访问,是可以的喔: --2017-04-17 07:40:56--   http://www.zxwol.com/ Resolving www.zxwol.com (www.zxwol.com)... 2001:470:18:5cf::2 Connecting to www.zxwol.com (www.zxwol.com)|2001:470:18:5cf::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 135046 (132K) [text/html] Saving to: 'index.html.15' ------------------------- 回 204楼(龙阁商务) 的帖子 您好, 现在测试,可以访问喔。 --2017-04-18 03:48:45--   http://myjcb.hqzh168.com/ Resolving myjcb.hqzh168.com (myjcb.hqzh168.com)... 2001:470:a:ba4::2 Connecting to myjcb.hqzh168.com (myjcb.hqzh168.com)|2001:470:a:ba4::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 34431 (34K) [text/html] Saving to: 'index.html.16' ------------------------- 回 206楼(hsy-ios) 的帖子 您好, 欢迎来到阿里云论坛。 现在看起来,您的ipv6隧道地址可以ping得通喔: PING 2001:470:18:600::2(2001:470:18:600::2) 56 data bytes 64 bytes from 2001:470:18:600::2: icmp_seq=1 ttl=121 time=557 ms 64 bytes from 2001:470:18:600::2: icmp_seq=2 ttl=121 time=567 ms 64 bytes from 2001:470:18:600::2: icmp_seq=3 ttl=121 time=574 ms ------------------------- 回 208楼(hsy-ios) 的帖子 您好, 请问是哪个ipv6地址呢? ------------------------- 回 210楼(hsy-ios) 的帖子 您好, --2017-04-20 22:41:23--  http://[2001:470:18:600::2]/ Connecting to [2001:470:18:600::2]:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://m.wnchebao.com/ [following] converted 'https://m.wnchebao.com/' (ANSI_X3.4-1968) -> 'https://m.wnchebao.com/' (UTF-8) --2017-04-20 22:41:24--   https://m.wnchebao.com/ Resolving m.wnchebao.com (m.wnchebao.com)... 2001:470:18:600::2 Connecting to m.wnchebao.com (m.wnchebao.com)|2001:470:18:600::2|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2017-04-20 22:41:27 ERROR 404: Not Found. ------------------------- 回 212楼(鸿儒网络) 的帖子 您好, 感谢您的经验分享喔。 如有更多的用户遇到类似的“延迟生效”现象,将添加相应的提示信息喔。 ------------------------- 回 214楼(北极星图图) 的帖子 您好, 如果tomcat没有在ipv6的网络地址上监听,您可以详细查看一下tomcat的配置文件喔, 这里有一个例子可以参考一下: https://bbs.aliyun.com/read/312055.html ------------------------- 回 215楼(潘飞虎) 的帖子 您好, 测试的话,您的ipv6隧道地址可以ping通,但ipv6的80连接超时,建议检查web服务的配置喔: PING 2001:470:18:6ae::2(2001:470:18:6ae::2) 56 data bytes 64 bytes from 2001:470:18:6ae::2: icmp_seq=1 ttl=121 time=564 ms 64 bytes from 2001:470:18:6ae::2: icmp_seq=2 ttl=121 time=565 ms --- 2001:470:18:6ae::2 ping statistics --- 3 packets transmitted, 2 received, 33% packet loss, time 1999ms rtt min/avg/max/mdev = 564.291/565.080/565.870/1.090 ms root@los:~/test5# wget -6 http://[2001:470:18:6ae::2] converted 'http://[2001:470:18:6ae::2]' (ANSI_X3.4-1968) -> 'http://[2001:470:18:6ae::2]' (UTF-8) --2017-04-26 14:02:36--  http://[2001:470:18:6ae::2]/ Connecting to [2001:470:18:6ae::2]:80... failed: Connection timed out. Retrying. ------------------------- 回 216楼(hzyt) 的帖子 您好, 欢迎来到阿里云论坛。 请问您ECS实例带宽类型是哪种呢,是“专有网络”吗? ------------------------- 回 220楼(潘飞虎) 的帖子 您好, 请问您的apache配置文件,如 httpd.conf 中,是否有监听ipv6的网络地址呢(如[::])? ------------------------- 回 221楼(永超科技) 的帖子 您好, 请问是否您多次运行了相同的netsh配置命令呢? ------------------------- 回 224楼(beijixingtu) 的帖子 您好, 现在访问您的站点,在ipv6访问中,应该是可以看到内容(或许是部分)的: ------------------------- 回 226楼(四眼鱼) 的帖子 您好, 抱歉延时回复, 请问您的ECS实例使用提“经典网络”的网络类型吗? ------------------------- 回 228楼(这是高科技) 的帖子 您好, 因为目前阿里云的“专有网络”类型的ECS实例限制,不能成功配置和使用6in4的IPv6隧道地址的。 使用外部的IPv6地址的VPS,虽然可以尝试,但也不一定能100%解决苹果APP上架的困扰。 ------------------------- 回 229楼(潘飞虎) 的帖子 您好, 可能还需要看具体的原因,苹果有没有具体说是因为什么而拒绝呢?还是因为IPv6的访问可用性吗? IPv6的DNS并不是必须的,如果您也想设置IPv6的DNS,可以参考这个帖子:《用HE提供的免费DNS解析服务通过IPv6 DNS检测》 - https://bbs.aliyun.com/read/313524.html? ------------------------- 回 233楼(潘飞虎) 的帖子 您好, 嗯,或许您还可以具体说说,中国目前的公共互联网还没有实现IPv6,所以对于中国的APP很为难。 ------------------------- 回 234楼(beijixingtu) 的帖子 您好, 是的,如果可以,可以附上说明,目前中国的公共互联网没有实现IPv6,一般用户无法直接在IPv6的环境里完成完整测试。 ------------------------- 回 237楼(潘飞虎) 的帖子 您好, 苹果要求目前国内还没有完整布置的IPv6环境,是有些让普通人摸不着头脑。 那您现在的工作环境中,有具备测试条件吗?如Mac电脑和苹果手机。 ------------------------- 回 239楼(潘飞虎) 的帖子 您好, 文档中提到,即使是用Mac模拟ipv6的网络,但带宽的出口还是ipv4的。 或许您可以尝试建一个可访问ipv6的wifi环境试试,如网上看到有一些无线路由器或许可以“独特”地构建出来。 ------------------------- 回 240楼(xunchengweidao) 的帖子 您好, 欢迎来到阿里云论坛。 或许您当前使用的nginx没有编译对ipv6的支持喔。 ------------------------- 回 244楼(feng_li) 的帖子 您好, 欢迎来到阿里云论坛。 很乐意,为您ping6测试: PING www.ymygo.com(wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net) 56 data bytes 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=1 ttl=121 time=430 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=2 ttl=121 time=429 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=3 ttl=121 time=430 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=4 ttl=121 time=430 ms ------------------------- 回 246楼(feng_li) 的帖子 您好, 现在再次测试,还是能ping得通。 配置了ipv6的隧道地址,仅是说您的系统(服务器)可以通过隧道地址交换ipv6的数据,如能ping6通或浏览ipv6的网站。但这并不代表着您的APP一定可以支持ipv6的访问喔。建议您再对照着苹果对于APP的 IPv6 设计指导,看看是否有其它原因: https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html PING www.ymygo.com(wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net) 56 data bytes 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=1 ttl=121 time=434 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=2 ttl=121 time=434 ms ------------------------- 回 248楼(爱爱莫能助) 的帖子 您好, 欢迎来到阿里云论坛。 在系统里配置ipv6的命令在he的站点上有提供现成的喔。 ------------------------- 回 251楼(天下才子) 的帖子 您好, 为您查看,现在可以在浏览器里看到内容喔: ------------------------- 回 255楼(居然要昵称) 的帖子 您好, 欢迎来到阿里云论坛。 请问,如 ping ::1  会有哪些信息提示呢? ------------------------- 回 254楼(天下才子) 的帖子 您好, 请问您家里的宽带是哪家的呢,是中国电信的吗? ------------------------- 回 259楼(新飞) 的帖子 您好, 最后一项检测的对象是ipv6 dns server,这是与域名的解析DNS地址相关, 如果您需要,可能需要将域名的DNS地址更改为国外支持ipv6的。 ------------------------- 回 260楼(robin_tian) 的帖子 您好, 欢迎来到阿里云论坛, 看起来,http可以访问喔(但首页会提示404出错): converted 'http://api2.ihyoo.com' (ANSI_X3.4-1968) -> 'http://api2.ihyoo.com' (UTF-8) --2017-05-15 16:03:04--   http://api2.ihyoo.com/ Resolving api2.ihyoo.com (api2.ihyoo.com)... 2001:470:18:d6::2 Connecting to api2.ihyoo.com (api2.ihyoo.com)|2001:470:18:d6::2|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2017-05-15 16:03:06 ERROR 404: Not Found. ------------------------- 回 264楼(天下才子) 的帖子 您好, 如果在您的电脑上不能访问ipv6的网站,可以尝试通过这个在线网站测试一下(可能要用代理): www.ipv6proxy.net ------------------------- 回 267楼(jsrabbit) 的帖子 您好, 欢迎来到阿里云论坛。 看您的几个截图,出现了两个IPv6地址,2001:da8:20d:400::8be0:dd58 和 2001:470:18:b5::2, 如果 2001:470:18:b5::2 是正确的,现在测试是可以访问到80端口端的喔: converted 'http://[2001:470:18:b5::2]' (ANSI_X3.4-1968) -> 'http://[2001:470:18:b5::2]' (UTF-8) --2017-05-17 13:50:44--  http://[2001:470:18:b5::2]/ Connecting to [2001:470:18:b5::2]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 107908 (105K) [text/html] Saving to: 'index.html' index.html                       100%[=========================================================>] 105.38K  20.0KB/s   in 5.3s ------------------------- 回 269楼(jsrabbit) 的帖子 您好, 个人觉得 IPv6 DNS Server 设置与否,影响不大。但您有空,也可以换一家支持IPv6的国外DNS商,如 dns.he.net。 ------------------------- 回 270楼(eric984) 的帖子 来自河源的朋友, 欢迎来到阿里云论坛。 如之前有云友提到,将HE提供的示例命令中,将公网IP换成私网IP,或许就可以了喔。 ------------------------- 回 273楼(通通优品) 的帖子 您好, 欢迎来到阿里云论坛。 请问您在HE里提交的IP地址是什么呢? 一般是提交ECS实例的公网IP地址,并不是内网IP地址喔。 ------------------------- 回 275楼(通通优品) 的帖子 您好, 那能否再检查一下您的安全组规则设置呢(有没有过滤80端口)? 如果可以,或许您可以先尝试在规则里开放所有的访问,对比一下结果。 ------------------------- 回 277楼(通通优品) 的帖子 您好, 如果您多次尝试运行命令来绑定ipv6隧道地址,需要确认最后ipv6隧道地址是能从外网ping6通的喔,同时可以查看一下路由表是否正确。 ------------------------- 回 280楼(大男人主义) 的帖子 您好, 欢迎来到阿里云论坛。 祝您的APP能成功上架喔。 ------------------------- 回 282楼(仙人掌有刺) 的帖子 您好, 从现在的测试结果来看,好象您的域名AAAA解析没有生效或失败: converted 'http://m.dnanren.cn' (ANSI_X3.4-1968) -> 'http://m.dnanren.cn' (UTF-8) --2017-05-25 10:30:51--   http://m.dnanren.cn/ Resolving m.dnanren.cn (m.dnanren.cn)... failed: Name or service not known. wget: unable to resolve host address 'm.dnanren.cn' ------------------------- 回 284楼(葫芦娃警长) 的帖子 您好, 抱歉给您带来不便。 域名AAAA记录和ipv4的A记录是不互相影响的喔。 如果ping -6 外网的地址不通,那有可能是路由没配置好喔。 ------------------------- 回 287楼(中广巨力) 的帖子 您好, 欢迎来到阿里云论坛。 现在好象我无法ping通您的ipv6隧道地址喔: PING 2001:470:1f10:124::2(2001:470:1f10:124::2) 56 data bytes --- 2001:470:1f10:124::2 ping statistics --- 13 packets transmitted, 0 received, 100% packet loss, time 11997ms ------------------------- 回 290楼(中广巨力) 的帖子 您好, 欢迎来到阿里云论坛。 一般不需要重新申请第二个隧道地址喔。 建议您检查一下ipv6的路由情况。 ------------------------- 回 292楼(中广巨力) 的帖子 您好, 抱歉延时回复。 如果您ping -6 不通隧道地址的网关,可以检查一下ECS实例的安全组是否有限制访问: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 294楼(yan555) 的帖子 您好, 欢迎来到阿里云论坛。 请问您在系统中执行的是哪些命令, 执行命令后,有哪些回显的信息呢? ------------------------- 回 298楼(lsfoo) 的帖子 您好, 欢迎来到阿里云论坛。 例子中是ipv6隧道地址,是需经ipv4传送的,所以,建议您在安全组里允许所有的协议和端口,对比测试一下喔。 ------------------------- 回 300楼(华邦云12138) 的帖子 您好, 提示有重名,有可能是多次执行命令后提示的。 可删除之前添加的,或第二次执行命令时,跳过这一步。 ------------------------- 回 301楼(华邦云12138) 的帖子 您好, 建议您检查实例的安全组规则, 如果可以,建议放行全部的协议和端口: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 305楼(华邦云12138) 的帖子 您好, 抱歉延时回复。 能否截图,看看您的安全组规则呢? ------------------------- 回 306楼(笔墨kk) 的帖子 您好, 欢迎来到阿里云论坛。 在图中看到的信息,虚拟的IPv6网络接口是“断开”状态的喔。 请问您具体执行了哪些命令呢? ------------------------- 回 310楼(笔墨kk) 的帖子 您好, 看命令的内容,是HE网站上提供的。 如果您使用的专有网络,需要注意将命令中的公网IP换成系统的内网IP喔。 ------------------------- 回 312楼(笔墨kk) 的帖子 您好, 可以先试试哩,替换一下IP后试试。 ------------------------- 回 314楼(华邦云12138) 的帖子 您好, 如广东的中国电信用户,应该也可以直接ping -6 的吧, 如现在我尝试的: 正在 Ping 2001:470:18:b07::2 具有 32 字节的数据: 请求超时。 来自 2001:470:18:b07::2 的回复: 时间=994ms 来自 2001:470:18:b07::2 的回复: 时间=996ms 来自 2001:470:18:b07::2 的回复: 时间=959ms 2001:470:18:b07::2 的 Ping 统计信息:     数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失), 往返行程的估计时间(以毫秒为单位):     最短 = 959ms,最长 = 996ms,平均 = 983ms ------------------------- 回 317楼(笔墨kk) 的帖子 您好, 创建IPv6隧道地址时,是需要提交公网IP的喔。 只不过,是在创建好隧道地址后的命令中,替换喔。 ------------------------- 回 320楼(笔墨kk) 的帖子 您好, 很高兴听到您已经在系统中成功配置了ipv6隧道地址。 ------------------------- 回 322楼(笔墨kk) 的帖子 您好, 这个需要满足一些条件的,如您家里用来ping的系统是什么呢,有没有启用ipv6?您家里的路由器是否支持ipv6? 如在我自己的电脑里能ping -6 通您的隧道地址: 正在 Ping yongchun.gosob.com [2001:470:18:cce::2] 具有 32 字节的数据: 来自 2001:470:18:cce::2 的回复: 时间=3291ms 请求超时。 来自 2001:470:18:cce::2 的回复: 时间=676ms 来自 2001:470:18:cce::2 的回复: 时间=913ms ------------------------- 回 321楼(miazhang) 的帖子 您好, 欢迎来到阿里云论坛。 现在从外网的机子测试,能ping6通您的隧道地址喔。 论坛在Chrome和Firefox里,是无法上传图片,但如UC可以。 PING 2001:470:18:b61::2(2001:470:18:b61::2) 56 data bytes 64 bytes from 2001:470:18:b61::2: icmp_seq=1 ttl=121 time=610 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=2 ttl=121 time=602 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=3 ttl=121 time=601 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=4 ttl=121 time=602 ms ------------------------- 回 326楼(笔墨kk) 的帖子 您好, 嗯,一般情况来说,能ping -6 得通ipv6隧道地址,那说明您的设置生效了喔。 如果不信,那可以重装ECS系统后,再ping -6 一下,看能否通。 ------------------------- 回 328楼(笔墨kk) 的帖子 您好, 好哩,祝您的APP上架成功喔。 ------------------------- 回 329楼(miazhang) 的帖子 您好, 请问执行以下命令,会有什么样的显示结果呢? netstat -noa | find ":80" ------------------------- 回 333楼(miazhang) 的帖子 您好, 如果这是全部的信息输出, 是喔,您的Web服务没有在ipv6的网络接口上监听使用喔。 ------------------------- 回 334楼(leodoo) 的帖子 您好, 欢迎来到阿里云论坛。 1. HE的隧道地址是6in4,好象是理解为将ipv6的数据包通过ipv4来传送。如果您的应用服务需要使用ipv6地址来通讯,是需要在ipv6的网络接口上监听 3. 从外网测试,可以访问您的站点喔: converted 'http://5656k.com' (ANSI_X3.4-1968) -> 'http://5656k.com' (UTF-8) --2017-06-15 10:24:13--   http://5656k.com/ Resolving 5656k.com (5656k.com)... 2001:470:18:cf4::2 Connecting to 5656k.com (5656k.com)|2001:470:18:cf4::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.5' ------------------------- Re:回 338楼(miazhang) 的帖子 您好, 如果是 dig,应该是dig域名而不是网址吧? ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46629 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ; www.xueshupa.net.              IN      AAAA ;; ANSWER SECTION: www.xueshupa.net.       600     IN      AAAA    2001:470:18:b61::2 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 25716 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ; http://www.xueshupa.net.       IN      AAAA ;; Query time: 5013 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Thu Jun 15 23:22:35 CST 2017 ;; MSG SIZE  rcvd: 52 ------------------------- 回 340楼(超级蜜蜂) 的帖子 您好, 欢迎来到阿里云论坛。 现在我测试,可以喔: --2017-06-20 21:20:37--   https://www.zgzbsc.vip/Diamond/frontgoods/index Resolving www.zgzbsc.vip (www.zgzbsc.vip)... 2001:470:18:1141::2 Connecting to www.zgzbsc.vip (www.zgzbsc.vip)|2001:470:18:1141::2|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index' ------------------------- 回 342楼(miazhang) 的帖子 您好, 抱歉听到您的APP被苹果拒审, 如在开始讨论的,苹果并不要求APP服务器一定要有IPv6的地址,但强调APP软件本身要使用ipv6-only的设计规范,如要使用域名来引用地址,要使用新的函数,不能将ipv4的地址写死,等等。 建议您下一步的排查重心放在APP软件本身上。 ------------------------- 回 344楼(超级蜜蜂) 的帖子 您好, 抱歉听到您的APP被苹果拒审, 如在开始讨论的,苹果并不要求APP服务器一定要有IPv6的地址,但强调APP软件本身要使用ipv6-only的设计规范,如要使用域名来引用地址,要使用新的函数,不能将ipv4的地址写死,等等。 建议您下一步的排查重心放在APP软件本身上。 ------------------------- 回 347楼(hornsun.tech) 的帖子 您好, 欢迎来到阿里云论坛。 服务器 执行 netstat -nao | find "80"时 没看到有[::]:80端 -> 请问您有没检查Web的设置,是否有监听使用ipv6的地址呢? 按照提示,安全组规则也增加了公网的入网规则 -> 请问您添加的规则是怎么样的呢? ------------------------- 回 348楼(24k壮士) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,不能ping6通您的隧道地址喔。 ING zgzzhds.com(AyinAy7-1-pt.tunnel.tserv25.sin1.ipv6.he.net) 56 data bytes --- zgzzhds.com ping statistics --- 12 packets transmitted, 0 received, 100% packet loss, time 10997ms ------------------------- 回 351楼(很赞) 的帖子 您好, 欢迎来到阿里云论坛。 是的,因为SLB的服务器用户不能配置隧道地址,而ECS是在SLB后边。 ------------------------- 回 353楼(很赞) 的帖子 您好, 按苹果的指导文档来看,要求的是APP软件本身能兼容ipv6-only的网络环境,并不是要求APP服务器有ipv6的地址。 所以,重心应该是在app软件本身的设计和构建上哩。 ------------------------- 回 355楼(aaa.a) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,可以ping得通喔: PING 2001:470:35:7ee::2(2001:470:35:7ee::2) 56 data bytes 64 bytes from 2001:470:35:7ee::2: icmp_seq=1 ttl=120 time=555 ms 64 bytes from 2001:470:35:7ee::2: icmp_seq=2 ttl=120 time=555 ms 64 bytes from 2001:470:35:7ee::2: icmp_seq=3 ttl=120 time=555 ms ------------------------- 回 357楼(miazhang) 的帖子 您好, ipv6 dns server,请参考这个例子:《用HE提供的免费DNS解析服务通过IPv6 DNS检测》 - https://bbs.aliyun.com/read/313524.html? ------------------------- 回 359楼(xl_young) 的帖子 您好, 欢迎来到阿里云论坛。 请问您的实例安全组是否允许所以协议通过呢? ------------------------- 回 361楼(xl_young) 的帖子 您好, 能否截图看看安全组规则的内容? ------------------------- 您好,欢迎来到阿里云论坛。可以ping6通,wget返回404错误信息:--2017-08-01 12:24:03--  http://api.qingyun100.com/Resolving api.qingyun100.com (api.qingyun100.com)... 2001:470:18:490::2, 139.196.40.67Connecting to api.qingyun100.com (api.qingyun100.com)|2001:470:18:490::2|:80... connected.HTTP request sent, awaiting response... 404 Not Found2017-08-01 12:24:03 ERROR 404: Not Found. ------------------------- 回 365楼(菜鸟017) 的帖子 您好, 欢迎来到阿里云论坛。 从外围的服务器来测试的话,提示403禁止访问喔: --2017-08-09 09:35:44--   http://tangxianqipai1.zai0312.com:90/ Resolving tangxianqipai1.zai0312.com (tangxianqipai1.zai0312.com)... 2001:470:18:695::2 Connecting to tangxianqipai1.zai0312.com (tangxianqipai1.zai0312.com)|2001:470:18:695::2|:90... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-08-09 09:35:45 ERROR 403: Forbidden. ------------------------- 回 368楼(菜鸟017) 的帖子 您好, 当时,我是使用境外的IPv6机子来为您测试的喔。 ------------------------- 回 369楼(菜鸟017) 的帖子 您好, 这个可能是测试时,所使用的DNS域名服务器不支持ipv6吧。 一般这个不太紧要的,因为国内的DNS服务器,一般没有IPv6地址的,除非您使用国外的。 ------------------------- 回 372楼(菜鸟017) 的帖子 您好, 目前的情况,可能阿里云没有为ECS配置可公众访问的IPv6地址呢。 阿里云的公共DNS服务器,目前好象也没有IPv6地址。 ------------------------- 回 374楼(菜鸟017) 的帖子 您好, 如果是在Windows 2012,删除之前存在的“ip6tunnel”虚拟接口, 或许可以试试以下这个命令: netsh int ipv6 delete interface "ip6tunnel" ------------------------- 回 377楼(菜鸟017) 的帖子 您好, 很高兴听到您已经解决了问题, 有空时,请多来阿里云论坛逛逛喔。 ------------------------- 回 380楼(sheldonlin) 的帖子 您好, 欢迎来到阿里云论坛。 能否贴出您在Windows里执行的命令? ------------------------- 您好,可能需要检查web服务是否也在ipv6的网络地址里监听80端口: --2017-08-20 09:37:23--  (try: 2)   http://kambuzz.com/ Connecting to kambuzz.com (kambuzz.com)|2001:470:18:8f2::2|:80... failed: Connection re fused. liujia@hk2:~/test6$ ping6 2001:470:18:8f2::2 PING 2001:470:18:8f2::2(2001:470:18:8f2::2) 56 data bytes 64 bytes from 2001:470:18:8f2::2: icmp_seq=1 ttl=127 time=311 ms 64 bytes from 2001:470:18:8f2::2: icmp_seq=2 ttl=127 time=310 ms ------------------------- 回 386楼(sheldonlin) 的帖子 您好, 是的。 好象没有80端口的监听使用情况喔。 执行以下的命令,再看看: netstat -noa | find ":80" ------------------------- 回 388楼(sheldonlin) 的帖子 您好, 您是想让您的站点能从ipv6的网络里访问到页面内容吗? 从您的命令输出结果来看,好象并没有web进程喔。 关于苹果对于ipv6-only的要求,请看这个指导文档: https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1 ------------------------- 回 391楼(sheldonlin) 的帖子 您好, 那您在运行tomcat后,执行 netstat -noa | find ":8080" 后,有哪些输出结果呢? ------------------------- 回 394楼(sheldonlin) 的帖子 您好, 请尝试检查实例的安全组规则,看是否有阻止外网访问8080端口: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 398楼(sheldonlin) 的帖子 您好, 总结得不错。 现在测试,是可以从外网的ipv6测试机访问的: liujia@hk2:~/test6$ wget -6 kambuzz.com:8080 --2017-08-21 10:51:58--   http://kambuzz.com:8080/ Resolving kambuzz.com (kambuzz.com)... 2001:470:18:8f2::2 Connecting to kambuzz.com (kambuzz.com)|2001:470:18:8f2::2|:8080... connected. HTTP request sent, awaiting response... 200 Length: unspecified [text/html] index.html: Permission denied 如果您的实例是Linux系统的,建议在后台长驻运行一个ping6的命令,如 ping6 ipv6.google.com ,以让您的ipv6隧道地址保持激活的状态,避免如20分钟后ipv6隧道地址ping6不通。 ------------------------- 回 400楼(sheldonlin) 的帖子 您好, 有时您的IPv6隧道地址ping不通, 在ping通时,可以访问到页面的内容,如: ------------------------- 回 402楼(sheldonlin) 的帖子 您好, 不确定具体的原因,但您可以尝试更换到其它的中转服务器,如美国的,看看会不会比目前的香港好些。 ------------------------- 回 405楼(sheldonlin) 的帖子 您好, ping6了几分钟后,可以ping通了。 liujia@hk2:~$ ping6 2001:470:c:67a::2 PING 2001:470:c:67a::2(2001:470:c:67a::2) 56 data bytes 64 bytes from 2001:470:c:67a::2: icmp_seq=232 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=233 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=234 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=235 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=236 ttl=123 time=315 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=237 ttl=123 time=387 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=238 ttl=123 time=387 ms --- 2001:470:c:67a::2 ping statistics --- 238 packets transmitted, 7 received, 97% packet loss, time 238848ms rtt min/avg/max/mdev = 313.431/335.021/387.851/33.233 ms ------------------------- 回 407楼(sheldonlin) 的帖子 您好, 测试的ping值差不多喔: PING 2001:470:18:94d::2(2001:470:18:94d::2) 56 data bytes 64 bytes from 2001:470:18:94d::2: icmp_seq=1 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=2 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=3 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=4 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=5 ttl=127 time=325 ms ------------------------- 回 409楼(觅约) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,访问正常喔: liujia@hk2:~/test6$ wget -6 app.miyueta.com:9088 --2017-08-28 18:25:36--   http://app.miyueta.com:9088/ Resolving app.miyueta.com (app.miyueta.com)... 2001:19f0:6001:213:5400:ff:fe77:5183 Connecting to app.miyueta.com (app.miyueta.com)|2001:19f0:6001:213:5400:ff:fe77:5183|:9088... connected. HTTP request sent, awaiting response... 200 OK Length: 52 [text/html] ------------------------- Re:回 411楼(ios——ot) 的帖子 您好, 我现在从外网为您ping6测试,可ping通,但有丢包。 liujia@hk2:~$ ping6 admin.allti.com.cn PING admin.allti.com.cn(wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net) 56 data bytes 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=4 ttl=124 time=566 ms 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=5 ttl=124 time=545 ms 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=13 ttl=124 time=539 ms --- admin.allti.com.cn ping statistics --- 16 packets transmitted, 3 received, 81% packet loss, time 15087ms rtt min/avg/max/mdev = 539.496/550.382/566.125/11.400 ms ------------------------- 回 415楼(ios——ot) 的帖子 您好, 有可能。换别的中转服务器,如美国的来对比看看。 ------------------------- 回 437楼(卡乐) 的帖子 版主回复: 没看到相应的安全性评估。 个人想,是这样的:如果您的数据传送开始时,已经是加密的,如https,那隧道转发的服务器也不能读取到数据内容吧? 且,隧道转发的服务商,he.net应该是一家有信誉的公司。 再者,这里的隧道地址设置,目的是帮助APP上架,如果您的APP上架后,可停用隧道地址。 ------------------------- 回 439楼(卡乐) 的帖子 版主回复: 反方向操作哩,如在系统里禁用/删除隧道地址(如netsh int ipv6 delete interface "ip6tunnel")。 ------------------------- 回 443楼(阿凯十三郎) 的帖子 版主回复: 或许您需要检查一下ECS实例的安全组,看是放行了ipv6隧道地址服务器的访问。 目前测试来看,您的ipv6隧道地址从外网是ping6不通的。 --2018-01-25 10:41:07--   http://www.cjnmw.xyz/ Resolving www.cjnmw.xyz (www.cjnmw.xyz)... 2001:470:18:f02::2 Connecting to www.cjnmw.xyz (www.cjnmw.xyz)|2001:470:18:f02::2|:80... failed: Connection timed out. Retrying. liujia@hk2:~/test7$ ping6 2001:470:18:f02::2 PING 2001:470:18:f02::2(2001:470:18:f02::2) 56 data bytes --- 2001:470:18:f02::2 ping statistics --- 21 packets transmitted, 0 received, 100% packet loss, time 20154ms liujia@hk2:~/test7$ ping6 2001:470:18:f02::1 PING 2001:470:18:f02::1(2001:470:18:f02::1) 56 data bytes 64 bytes from 2001:470:18:f02::1: icmp_seq=1 ttl=64 time=1.41 ms 64 bytes from 2001:470:18:f02::1: icmp_seq=2 ttl=64 time=1.40 ms --- 2001:470:18:f02::1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 1.404/1.409/1.415/0.037 ms ------------------------- 回 448楼(阿凯十三郎) 的帖子 版主回复: 从您的ECS实例能ping通隧道地址服务器的IP,但不代表从隧道地址的服务器能ping通(访问)您的ECS实例喔。 ------------------------- 回 449楼(阿凯十三郎) 的帖子 版主回复: 是哩,看起来,外网已经能通过隧道地址访问到您的apache里了。 您调整了ECS实例的安全组规则吗? ------------------------- 回 452楼(阿凯十三郎) 的帖子 版主回复: 据网友反馈:域名本身的 ipv6 DNS Server 并不重要。 ------------------------- 回 455楼(纪念青春) 的帖子 版主回复: 请试试: netsh int ipv6 delete interface "ip6tunnel" ------------------------- 回 458楼(老黄000001) 的帖子 您好, 图中信息,显示IPv6隧道地址断开状态, 请问您在之前配置隧道地址的命令中,包含的IP是ECS实例的公网IP还是内网IP? 一般来说,应该在命令中写内网IP的,即您图中的看到的172.18.132.2 ------------------------- 回 460楼(尜淇专版) 的帖子 您好, 在He.net里申请隧道地址时,请填写ECS实例的公网IP地址喔。 ------------------------- 回 462楼(潮约) 的帖子 您好, 使用VPC网络的ECS实例,在配置隧道地址时,是需要绑定内网IP,因为公网IP不是在系统里。 如果配置隧道地址时,绑定了内网IP,也无法正常使用的话,建议检查ECS实例安全组规则或Windows防火墙,如将隧道地址服务器的IPv4加到白名单中。
dongshan8 2019-12-02 02:58:13 0 浏览量 回答数 0

回答

回 3楼(莫有) 的帖子 您好, 请问您使用的系统是哪种Linux发行版呢?是CentOS 6吗? ------------------------- 回 5楼(莫有) 的帖子 您好, 好的,等我找到合适的测试机,再为您在CentOS7 系统里测试ipv6的隧道设置喔。 ------------------------- 回 5楼(莫有) 的帖子 您好, 为您写了这个CentOS 7的配置帖子,希望对您有帮助喔: https://bbs.aliyun.com/read.php?tid=285557 ------------------------- 回 10楼(非洲小犀牛) 的帖子 您好, 如果您的是Linux系统,可能需要先为系统启用ipv6的功能喔。请看这里的例子: https://bbs.aliyun.com/read/285557.html ------------------------- 回 12楼(猎马网) 的帖子 您好, 欢迎来到阿里云论坛。 IPv6测试不能通过的原因是什么呢?您在 http://ipv6-test.com/validate.php 里测试您的站点访问结果是什么呢? ------------------------- 回 14楼(猎马网) 的帖子 您好, 如本例中的,添加IPv6隧道地址的默认网关命令,应该是: netsh interface ipv6 add route ::/0 IP6Tunnel 2001:470:18:401::1 请问,您在做第5步时,是否有运行如上边类似的命令吗? ------------------------- 回 16楼(猎马网) 的帖子 您好, 您可以查看“网络连接”里对应的连接属性,估计可以直接修改的哩。 ------------------------- 回 19楼(猎马网) 的帖子 您好, 我在测试机里使用wget测试,好象正常: root@los:~/test4# wget -6 http://www.iliema.com/ converted 'http://www.iliema.com/' (ANSI_X3.4-1968) -> 'http://www.iliema.com/' (UTF-8) --2016-08-11 22:28:41--   http://www.iliema.com/ Resolving www.iliema.com (www.iliema.com)... 2001:470:1f14:b5f::2 Connecting to www.iliema.com (www.iliema.com)|2001:470:1f14:b5f::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 77636 (76K) [text/html] Saving to: 'index.html.3' ------------------------- 回 20楼(猎马网) 的帖子 您好, 应该可以如IPv4那样,多个域名指到相同的IPv6地址。 ------------------------- 回 24楼(很快) 的帖子 您好, 请问您的nginx web是安装在Windows还是Linux的系统上? ------------------------- 回 26楼(喵咪喵) 的帖子 您好, 欢迎来到阿里云论坛。 申请到IPv6的隧道地址后,还需要在系统里配置的,以让这个IPv6的地址能被外网的用户访问到喔。 ------------------------- 回 29楼(不断学习) 的帖子 您好, 请问您使用的操作系统是WIndows 2012吗? 请问您执行的netsh命令是和操作说明那里一样的吗? ------------------------- 回 31楼(喵咪喵) 的帖子 您好, 应该不影响,如果前两项检查测试通过,最后一条(IPv6-only)测试不通过,应该是可以的。 ------------------------- 回 34楼(wolfing5210) 的帖子 您好, 我在Linux系统上,能ping通您的IPv6地址: root@los:~# ping6 2001:470:35:102a::2 PING 2001:470:35:102a::2(2001:470:35:102a::2) 56 data bytes 64 bytes from 2001:470:35:102a::2: icmp_seq=1 ttl=119 time=225 ms 64 bytes from 2001:470:35:102a::2: icmp_seq=2 ttl=119 time=226 ms 如果您要测试,要具备两个条件, a. 在Windows系统里,应该是使用 ping -6 的参数 b. 发出测试的系统是启用了IPv6 ------------------------- 回 37楼(小成123456) 的帖子 您好, 抱歉延时回复。 请问您在系统里,执行 ipconfig /all 后,能看到输出信息中包含的ipv6 tunel信息吗? ------------------------- 回 39楼(呢你) 的帖子 您好, 抱歉给您带来不便。 请问苹果审核拒绝的原因是什么,是不能连接到ipv6地址吗? 请问您创建的ipv6隧道地址,测试时能从外网成功访问吗? ------------------------- 回 41楼(呢你) 的帖子 您好, 80端口测试是正常的,但好象web返回了错误。 建议您咨询一下您的 APP 程序员。 root@los:~/test# curl [2001:470:18:95c::2] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' J BossWeb/2.0.1.GA - Error report ------------------------- 回 44楼(nyanko桑) 的帖子 您好, 那请问您在例子中,第5步执行的命令是哪些呢? ------------------------- 回 45楼(小成123456) 的帖子 您好, 域名AAAA解析与IPv6隧道地址设置并不直接相关,如果您的IPv6隧道地址设置正确,从外网应该能ping通这个新设置的IPv6隧道地址。 ------------------------- 回 48楼(nyanko桑) 的帖子 您好, 好象命令看起来没有问题,您是从 HE 隧道地址设置网站里直接复制的,对吗? 那执行命令时,是否回显的结果是“确定”,还是有别的错误信息提示呢? ------------------------- 回 50楼(持名) 的帖子 您好, 那就奇怪了。 建议您回过头梳理一下,看看是否缺了哪个步骤或环境有哪些特殊的地方。 ------------------------- 回 52楼(nyanko桑) 的帖子 您好, 或许将原命令中的“add”(添加)改为“del”(删除)后,可以试试。  我个人猜测的。 ------------------------- 回 54楼(nyanko桑) 的帖子 您好, 好哩,到时如还没有解决问题,可通过站内信,发来临时的ECS登录信息,我为您看看喔。 ------------------------- 回 56楼(nyanko桑) 的帖子 您好, 申请到的IPv6隧道地址是不变的呀,除非您删除了。 ------------------------- 回 58楼(nyanko桑) 的帖子 您好, 好哩,祝愿您的APP能通过苹果的审核。 如还有疑问,欢迎跟帖。 ------------------------- 回 60楼(゛温ゝ先生) 的帖子 您好, 您在站内信里提到说“网络有重名”,现在系统里没成功添加ipv6地址吗? ------------------------- 回 61楼(陈cc123) 的帖子 您好, 一般AAA记录里,主机记录填写的是从HE申请到的IPv6隧道地址。 更新:应该是“记录值”里填写从he申请到的ipv6隧道地址。 ------------------------- 回 65楼(陈cc123) 的帖子 您好, 对不起,之前我的说法有错误。 按阿里云解析面板中,“主机记录”应该是您需要设置的网站访问地址,如我这里想设置 ipv6.anqun.org 的ipv6地址,“主机记录”里填写“ipv6”,而“记录值”里填写IPv6隧道地址:2001:470:18:401::2 ------------------------- 回 67楼(陈cc123) 的帖子 您好, 那请问您提交给 http://ipv6-test.com/ 测试的网址是什么呢? ------------------------- 回 69楼(陈cc123) 的帖子 您好, 页面 http://ipv6-test.com/validate.php 里提交的网址应该是一个域名网址,应该不能直接提交IPv6地址去测试的喔。 您可以在您的域名控制面板添加一条AAA记录的呀。 ------------------------- 回 72楼(陈cc123) 的帖子 您好, 能否使用如 netstat -noa | grep 80 的命令,来查看当前Web服务是否在ipv6地址监听使用呢? ------------------------- 回 74楼(陈cc123) 的帖子 您好, 图中没有显示IPv6相关的8080端口使用情况喔, 或许您可以运行 netstat -noa | grep 8080 再次确认一下。 ------------------------- 回 78楼(陈cc123) 的帖子 您好, 是的,不好意思,我忘记了您的系统是Windows,不是linux,所以不能直接用grep的命令。 现在从外网测试,您的tomcat站点是可以从ipv6地址访问了,但或许您将web从8080换到常用的80端口,方便访问。 root@los:~/test# curl [2001:470:18:ab3::2]:8080 -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 ------------------------- 回 80楼(陈cc123) 的帖子 您好, 如果您提交给苹果审核就是带8080的IPv6地址,那可保持现状。 能否说一下具体您审核网址?如果按上边的测试结果来看,您的IPv6隧道地址是(曾)正常工作。 ------------------------- 回 82楼(陈cc123) 的帖子 您好, 现在从外网测试您给的网址,正常。 root@los:~/test# curl -6 'http://www.91mcgj.cn:8080' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 root@los:~/test# curl 'http://www.91mcgj.cn:8080' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Apache Tomcat/7.0.54 ------------------------- 回 84楼(陈cc123) 的帖子 您好, 可能那个检测的站点,只能检测默认80端口的吧,具体到您这里,您是要写明8080端口的,所以那个测试网址可能不适用喔。 ------------------------- 回 87楼(xiaopao888) 的帖子 您好, 欢迎来到阿里云论坛。 能否请问在“命令提示符”里执行以下的命令,看输出结果有没有关于ipv6的80地址监听呢? netstat -noa | find "80" ------------------------- 回 88楼(莫尼玛) 的帖子 您好, 欢迎来到阿里云论坛。 如果您使用自己的环境来测试,需要确认您的环境是否支持ipv6使用环境喔,如您的telnet程序是否支持ipv6,您的网络是否支持ipv6。 我拿一个美国的vps来测试,也是可以成功连接到您的ipv6隧道地址: root@los:~/test# curl [2001:470:18:aa8::2] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' Microsoft Internet Information Services 8 ------------------------- 回 91楼(xiaopao888) 的帖子 您好, 如果web没有在iPv6的网络接口上监听,请尝试调整一下web的配置文件喔,如让它在所有的可用网络接口里监听。 ------------------------- 回 93楼(莫尼玛) 的帖子 您好, 请问您在tcp 8300里提供的服务是web的吗? 如果是web服务,测试不成功喔: root@los:~# curl [2001:470:18:aa8::2:8300] -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' root@los:~# ------------------------- 回 97楼(莫尼玛) 的帖子 您好, 好象用telnet测试8300 tcp 端口,不成功喔: root@los:~# telnet -6 2001:470:18:aa8::2 8300 Trying 2001:470:18:aa8::2... telnet: Unable to connect to remote host: Connection refused root@los:~# telnet -6 2001:470:18:aa8::2 80 Trying 2001:470:18:aa8::2... Connected to 2001:470:18:aa8::2. Escape character is '^]'. Connection closed by foreign host. ------------------------- 回 100楼(莫尼玛) 的帖子 您好, 如果您的socket程序默认不是在所有的端口上监听使用,是需要调整一下的喔。 或您使用 netstat -noa 的命令,查看一下都有哪些8300的端口在使用。 ------------------------- 回 102楼(莫尼玛) 的帖子 您好, 0.0.0.0 可能代表是IPv4的所有网络接口,不包括IPv6的啊。 请看这个云友以下的这个贴图,最后一行代表是IPv6的所有网络接口: ------------------------- 回 105楼(莫尼玛) 的帖子 您好, 好的,请稍等。 8310可以,8300也可以。 root@los:~# telnet -6 ht.yulesy.cn 8310 Trying 2001:470:18:aa8::2... Connected to ht.yulesy.cn. Escape character is '^]'. root@los:~# telnet -6 ht.yulesy.cn 8300 Trying 2001:470:18:aa8::2... Connected to ht.yulesy.cn. Escape character is '^]'. ------------------------- 回 109楼(涛涛~) 的帖子 您好, 如果您需要通过http访问位于两个不同服务器上的文件,或许是需要为这两个服务器都配置ipv6隧道地址喔。 ------------------------- 回 110楼(陌祥伟) 的帖子 您好, 我现在没测试机,不能具体为您查看输出结果, 您用 ipconfig 查看到的信息页面内容是怎么样的呢? ------------------------- 回 113楼(陌祥伟) 的帖子 您好, 请问您提到的“本地ping和telnet端口是通的”,是ping ipv6和telnet ipv6隧道地址都正常吗? ------------------------- 回 115楼(陌祥伟) 的帖子 您好, 我这里为您测试,也是ping6不通, 或许您需要再检查一下是否有防火墙或其它缺漏的环节没留意到: --- 2001:470:23:70d::2 ping statistics --- 65 packets transmitted, 0 received, 100% packet loss, time 64000ms ------------------------- 回 119楼(leyuwei) 的帖子 您好, 请问您的ipv6隧道地址是 2001:470:18:ecc::2 吗? 我从外网测试,返回是403的错误页: root@los:~# wget -6 http://[2001:470:18:ecc::2]:8080 converted 'http://[2001:470:18:ecc::2]:8080' (ANSI_X3.4-1968) -> 'http://[2001:470:18:ecc::2]:8080' (UTF-8) --2017-01-07 01:27:05--  http://[2001:470:18:ecc::2]:8080/ Connecting to [2001:470:18:ecc::2]:8080... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-01-07 01:27:09 ERROR 403: Forbidden. root@los:~# curl -6 'http://www.dlmunews.club:8080' <p align='center'>▒▒▒▒▒▒▒▒▒▒▒▒ַ▒▒▒▒▒޲▒ϣ▒▒▒▒▒▒ô▒▒▒▒▒▒▒▒°ɣ▒</p> <p align='center'>▒▒▒▒▒ִ▒▒▒▒ˣ▒▒▒▒▒▒޾▒Ҫ▒▒ȡһЩ▒ֶ▒▒ˣ▒</p> <br/> <p align='center'>403 FORBIDDEN</p> <p align='center'>▒▒▒▒▒▒˼▒▒▒▒▒▒▒뿴▒▒▒ҵ▒▒▒▒ӣ▒</p>root@los:~# ------------------------- 回 118楼(陌祥伟) 的帖子 您好, 我去找个Windows 2008的系统为您测试一下喔。 请等待。 ------------------------- Re:回 118楼(陌祥伟) 的帖子 您好, 我找个测试机(用的是Windows 2008 SP2 32位中文版公共镜像),重复操作了一次,好象正常哩: C:\Users\Administrator>netsh interface ipv6 show interface Idx  Met   MTU   状态          名称 ---  ---  -----  -----------  -------------------   1   50 4294967295  connected    Loopback Pseudo-Interface 1 15   10   1280  connected    IP6Tunnel 10   10   1500  connected    本地连接 22   50   1280  disconnected  本地连接* 12 23   50   1280  disconnected  本地连接* 13 11   10   1500  connected    本地连接 2 C:\Users\Administrator>ping -6 2001:470:18:401::2 正在 Ping 2001:470:18:401::2 从 2001:470:18:401::2 具有 32 字节的数据: 来自 2001:470:18:401::2 的回复: 时间<1ms 来自 2001:470:18:401::2 的回复: 时间<1ms 2001:470:18:401::2 的 Ping 统计信息:     数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位):     最短 = 0ms,最长 = 0ms,平均 = 0ms Control-C ^C C:\Users\Administrator>ping -6 ipv6.google.com 正在 Ping ipv6.l.google.com [2404:6800:4008:800::200e] 从 2001:470:18:401::2 具 有 32 字节的数据: 来自 2404:6800:4008:800::200e 的回复: 时间=401ms 来自 2404:6800:4008:800::200e 的回复: 时间=400ms ------------------------- 回 122楼(leyuwei) 的帖子 您好, 在我使用的测试机里,能访问到您提供的网址内容喔,祝您通过APP的IPv6审核。 root@los:~/test# curl -6 'http://www.dlmunews.club:8080/dlmunews/test.html' test IPV6root@los:~/test# ------------------------- 回 125楼(陌祥伟) 的帖子 您好, 抱歉没有留意您的ECS网络类型, 弹性公网IP,看介绍说是一种NatIP,我不确定这与“经典网络”里的公网IP是否有一些使用限制情景, 建议您发工单咨询一下阿里云官方工程师: https://workorder.console.aliyun.com/ 本帖里的例子ECS是“经典网络”,并不是“专有网络”或“弹性公网IP”的使用场景喔。 ------------------------- 回 131楼(dearvitamin) 的帖子 您好, 测试得知,经典网络中的站点可以,专用网络中的站点不可以访问到喔。 root@los:~/test# curl -6 'http://www.spl258.com' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' 斯普林游戏 root@los:~/test# curl -6 'http://www.longm258.com' -so - | grep -iPo '(?<=<title>)(.*)(?=</title>)' ------------------------- 回 133楼(vinny1024) 的帖子 您好, 欢迎来到阿里云论坛。 本例子里的Web是IIS,并不是apache喔。 请问您在apache的配置文件里,已经设置监听使得ipv6的地址和端口了吗? ------------------------- 回 136楼(raolan123) 的帖子 您好, 已有的云友反馈,不能按例子中的方法在”专有网络“中成功设置ipv6隧道地址。 ------------------------- 回 138楼(ekuns) 的帖子 您好, 欢迎来到阿里云论坛。 操作步骤,Windows 2012和Windows 2008应该是大致相同的。 请问您是否曾按帖子里的步骤,在Windows 2008里测试了呢? 如果您在Windows 2008里测试失败,我为您找个测试机来实践一下喔。 ------------------------- 回 140楼(poplanchong) 的帖子 您好, 如果是ipv6-only,可能还需要DNS解析之类支持的。 ------------------------- 回 142楼(poplanchong) 的帖子 您好, 欢迎来到阿里云论坛。 如果可以ping通ipv6的隧道地址,那么说明配置应该是成功的。 但如果您设置ipv6隧道地址目的是为了通过苹果的APP审核,还是要看苹果公司的判断结果喔。 祝您成功。 ------------------------- 回 144楼(poplanchong) 的帖子 您好, 很高兴听到您的APP已经通过苹果公司的审核。 我没有向苹果公司提交过APP审核,并没有实践的经验。所以我也不确定为什么苹果公司先后不同审核结果的原因。 您前后向苹果公司提交过几个网址用于审核? ------------------------- 回 146楼(没办法抽奖) 的帖子 您好, 我在测试机里, 可以ping通您提到的网关,但您的隧道地址ping不通喔, 是不是哪一步没有操作完整? root@los:~/test5# ping6 2001:470:1f04:a9e::2 PING 2001:470:1f04:a9e::2(2001:470:1f04:a9e::2) 56 data bytes --- 2001:470:1f04:a9e::2 ping statistics --- 41 packets transmitted, 0 received, 100% packet loss, time 39999ms root@los:~/test5# ping6 2001:470:1f04:a9e::1 PING 2001:470:1f04:a9e::1(2001:470:1f04:a9e::1) 56 data bytes 64 bytes from 2001:470:1f04:a9e::1: icmp_seq=1 ttl=56 time=53.5 ms 64 bytes from 2001:470:1f04:a9e::1: icmp_seq=2 ttl=56 time=53.8 ms ------------------------- 回 147楼(poplanchong) 的帖子 您好,   如此,我也不确定具体的原因了。不过,APP审核通过了,终究是件好事,是不是呢? ------------------------- 回 150楼(没办法抽奖) 的帖子 晚上好, 请问您的ECS操作系统是Windows 2012的吗? ------------------------- 回 152楼(l_zhaowei) 的帖子 您好, 请问您新购的ECS实例带宽类型是“专有网络”的吗? ------------------------- 回 153楼(l_zhaowei) 的帖子 您好, 暂时没有在“专有网络”实现IPv6隧道地址的方案喔,抱歉。 ------------------------- 回 157楼(鸿儒网络) 的帖子 您好, 看您的截图,或许需要先着重看一下,为什么“80端口不显示IPV6”, 请问您的站点绑定属性中,是否有IPv6的地址可以选择使用呢? ------------------------- 回 159楼(aeria) 的帖子 您好, 欢迎来到阿里云论坛。 请问您运行 netstat 的命令,可以查看到tomcat在ipv6的80端口上也有监听使用吗? ------------------------- 回 161楼(aeria) 的帖子 您好, 能贴一下您的tomcat配置文件 server.xml 的内容吗(监听那个环节的)? ------------------------- 回 164楼(aeria) 的帖子 您好, 或许您可以查看一下这个问答里提到的“authbind”: http://serverfault.com/questions/605684/tomcat-java-not-listening-on-ipv6 ------------------------- 回 167楼(aeria) 的帖子 您好, 那我去找个测试机,为您测试一下。 您的环境,是Windows 2012 + Tomcat 8 吗? ------------------------- 回 170楼(aeria) 的帖子 您好, 为您写了这个帖子,不知道是否对您有用: 《用ipv6隧道地址访问tomcat 站点内容》 - https://bbs.aliyun.com/read/312055.html ------------------------- 回 172楼(bingo_vc) 的帖子 您好, 欢迎来到阿里云论坛。 如果您的站点不需要域名访问,直接用ipv6隧道地址访问,应该也是可以的喔。 ------------------------- 回 174楼(clks) 的帖子 您好, 现在为您测试,可以访问得到页面喔: --2017-04-09 06:25:52--   http://www.meihaojiawodecheng.cn/ Resolving www.meihaojiawodecheng.cn (www.meihaojiawodecheng.cn)... 2001:470:18:352::2, 116.62.37.108 Connecting to www.meihaojiawodecheng.cn (www.meihaojiawodecheng.cn)|2001:470:18:352::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2241 (2.2K) [text/html] Saving to: 'index.html.3' ------------------------- 回 176楼(clks) 的帖子 您好, 在浏览器里,输入如 http://[2001:470:18:352::2]/ 的地址后,应该就能显示到站点内容了,有时可能需要刷新多几下。 ------------------------- 回 178楼(自由2017) 的帖子 您好, 抱歉延时回复。 请问您的ECS实例带宽类型是哪种,是“经典网络”还是“专有网络”呢? ------------------------- 回 179楼(l_zhaowei) 的帖子 您好, 如果ECS实例是“专有网络”的,或许可以参考这个帖子里的例子试试喔: https://bbs.aliyun.com/read/312196.html ------------------------- 回 182楼(l_zhaowei) 的帖子 您好, 有“经典网络”的选项,据云友们反馈,好象一些较早之前注册和使用的阿里云账户还可以在新购的ECS配置里选择“经典网络”的网络类型。 ------------------------- 回 183楼(lbmjsls) 的帖子 您好, 欢迎来到阿里云论坛。 是的,可以,您可以用一个已经有ICP备案的子域名来操作,如果您认为不会对您的业务带来负面影响的话。 ------------------------- 回 186楼(l_zhaowei) 的帖子 您好, 目前收到的反馈来看,并不是所有的阿里云账号可以选购到“经典网络”。 我并不清楚阿里云的具体购物车规则哩。 ------------------------- 回 188楼(自由2017) 的帖子 您好, 如果ECS实例是“专有网络”的,或许可以参考这个帖子里的例子试试喔: https://bbs.aliyun.com/read/312196.html ------------------------- 回 190楼(自由2017) 的帖子 您好, 已经站内信您喔。 ------------------------- 回 192楼(lbmjsls) 的帖子 您好, 都可以ping通,但返回的延时可能有些高。 root@los:~/test5# ping6 thls.qian178.com PING thls.qian178.com(lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes 64 bytes from lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=1 ttl=121 time=624 ms 64 bytes from lbmjsls-1-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=2 ttl=121 time=622 ms --- thls.qian178.com ping statistics --- 3 packets transmitted, 2 received, 33% packet loss, time 2000ms rtt min/avg/max/mdev = 622.017/623.254/624.492/1.467 ms root@los:~/test5# ping6 qian178.com PING qian178.com(lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net) 56 data bytes 64 bytes from lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=2 ttl=121 time=564 ms 64 bytes from lbmjsls-2-pt.tunnel.tserv20.hkg1.ipv6.he.net: icmp_seq=3 ttl=121 time=563 ms ------------------------- 回 194楼(龙阁商务) 的帖子 您好, 欢迎来到阿里云论坛。 如果前两项测试通,那就可以了呀。 您是对哪里还不满意呢? ------------------------- 回 196楼(龙阁商务) 的帖子 您好, 苹果审核不限次数的吧? 期待您的审核结果喔。 ------------------------- 回 198楼(cloud_lee) 的帖子 您好, 在国外的IPv6环境中的服务器为您测试IPv6访问,是可以的喔: --2017-04-17 07:40:56--   http://www.zxwol.com/ Resolving www.zxwol.com (www.zxwol.com)... 2001:470:18:5cf::2 Connecting to www.zxwol.com (www.zxwol.com)|2001:470:18:5cf::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 135046 (132K) [text/html] Saving to: 'index.html.15' ------------------------- 回 204楼(龙阁商务) 的帖子 您好, 现在测试,可以访问喔。 --2017-04-18 03:48:45--   http://myjcb.hqzh168.com/ Resolving myjcb.hqzh168.com (myjcb.hqzh168.com)... 2001:470:a:ba4::2 Connecting to myjcb.hqzh168.com (myjcb.hqzh168.com)|2001:470:a:ba4::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 34431 (34K) [text/html] Saving to: 'index.html.16' ------------------------- 回 206楼(hsy-ios) 的帖子 您好, 欢迎来到阿里云论坛。 现在看起来,您的ipv6隧道地址可以ping得通喔: PING 2001:470:18:600::2(2001:470:18:600::2) 56 data bytes 64 bytes from 2001:470:18:600::2: icmp_seq=1 ttl=121 time=557 ms 64 bytes from 2001:470:18:600::2: icmp_seq=2 ttl=121 time=567 ms 64 bytes from 2001:470:18:600::2: icmp_seq=3 ttl=121 time=574 ms ------------------------- 回 208楼(hsy-ios) 的帖子 您好, 请问是哪个ipv6地址呢? ------------------------- 回 210楼(hsy-ios) 的帖子 您好, --2017-04-20 22:41:23--  http://[2001:470:18:600::2]/ Connecting to [2001:470:18:600::2]:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://m.wnchebao.com/ [following] converted 'https://m.wnchebao.com/' (ANSI_X3.4-1968) -> 'https://m.wnchebao.com/' (UTF-8) --2017-04-20 22:41:24--   https://m.wnchebao.com/ Resolving m.wnchebao.com (m.wnchebao.com)... 2001:470:18:600::2 Connecting to m.wnchebao.com (m.wnchebao.com)|2001:470:18:600::2|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2017-04-20 22:41:27 ERROR 404: Not Found. ------------------------- 回 212楼(鸿儒网络) 的帖子 您好, 感谢您的经验分享喔。 如有更多的用户遇到类似的“延迟生效”现象,将添加相应的提示信息喔。 ------------------------- 回 214楼(北极星图图) 的帖子 您好, 如果tomcat没有在ipv6的网络地址上监听,您可以详细查看一下tomcat的配置文件喔, 这里有一个例子可以参考一下: https://bbs.aliyun.com/read/312055.html ------------------------- 回 215楼(潘飞虎) 的帖子 您好, 测试的话,您的ipv6隧道地址可以ping通,但ipv6的80连接超时,建议检查web服务的配置喔: PING 2001:470:18:6ae::2(2001:470:18:6ae::2) 56 data bytes 64 bytes from 2001:470:18:6ae::2: icmp_seq=1 ttl=121 time=564 ms 64 bytes from 2001:470:18:6ae::2: icmp_seq=2 ttl=121 time=565 ms --- 2001:470:18:6ae::2 ping statistics --- 3 packets transmitted, 2 received, 33% packet loss, time 1999ms rtt min/avg/max/mdev = 564.291/565.080/565.870/1.090 ms root@los:~/test5# wget -6 http://[2001:470:18:6ae::2] converted 'http://[2001:470:18:6ae::2]' (ANSI_X3.4-1968) -> 'http://[2001:470:18:6ae::2]' (UTF-8) --2017-04-26 14:02:36--  http://[2001:470:18:6ae::2]/ Connecting to [2001:470:18:6ae::2]:80... failed: Connection timed out. Retrying. ------------------------- 回 216楼(hzyt) 的帖子 您好, 欢迎来到阿里云论坛。 请问您ECS实例带宽类型是哪种呢,是“专有网络”吗? ------------------------- 回 220楼(潘飞虎) 的帖子 您好, 请问您的apache配置文件,如 httpd.conf 中,是否有监听ipv6的网络地址呢(如[::])? ------------------------- 回 221楼(永超科技) 的帖子 您好, 请问是否您多次运行了相同的netsh配置命令呢? ------------------------- 回 224楼(beijixingtu) 的帖子 您好, 现在访问您的站点,在ipv6访问中,应该是可以看到内容(或许是部分)的: ------------------------- 回 226楼(四眼鱼) 的帖子 您好, 抱歉延时回复, 请问您的ECS实例使用提“经典网络”的网络类型吗? ------------------------- 回 228楼(这是高科技) 的帖子 您好, 因为目前阿里云的“专有网络”类型的ECS实例限制,不能成功配置和使用6in4的IPv6隧道地址的。 使用外部的IPv6地址的VPS,虽然可以尝试,但也不一定能100%解决苹果APP上架的困扰。 ------------------------- 回 229楼(潘飞虎) 的帖子 您好, 可能还需要看具体的原因,苹果有没有具体说是因为什么而拒绝呢?还是因为IPv6的访问可用性吗? IPv6的DNS并不是必须的,如果您也想设置IPv6的DNS,可以参考这个帖子:《用HE提供的免费DNS解析服务通过IPv6 DNS检测》 - https://bbs.aliyun.com/read/313524.html? ------------------------- 回 233楼(潘飞虎) 的帖子 您好, 嗯,或许您还可以具体说说,中国目前的公共互联网还没有实现IPv6,所以对于中国的APP很为难。 ------------------------- 回 234楼(beijixingtu) 的帖子 您好, 是的,如果可以,可以附上说明,目前中国的公共互联网没有实现IPv6,一般用户无法直接在IPv6的环境里完成完整测试。 ------------------------- 回 237楼(潘飞虎) 的帖子 您好, 苹果要求目前国内还没有完整布置的IPv6环境,是有些让普通人摸不着头脑。 那您现在的工作环境中,有具备测试条件吗?如Mac电脑和苹果手机。 ------------------------- 回 239楼(潘飞虎) 的帖子 您好, 文档中提到,即使是用Mac模拟ipv6的网络,但带宽的出口还是ipv4的。 或许您可以尝试建一个可访问ipv6的wifi环境试试,如网上看到有一些无线路由器或许可以“独特”地构建出来。 ------------------------- 回 240楼(xunchengweidao) 的帖子 您好, 欢迎来到阿里云论坛。 或许您当前使用的nginx没有编译对ipv6的支持喔。 ------------------------- 回 244楼(feng_li) 的帖子 您好, 欢迎来到阿里云论坛。 很乐意,为您ping6测试: PING www.ymygo.com(wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net) 56 data bytes 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=1 ttl=121 time=430 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=2 ttl=121 time=429 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=3 ttl=121 time=430 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=4 ttl=121 time=430 ms ------------------------- 回 246楼(feng_li) 的帖子 您好, 现在再次测试,还是能ping得通。 配置了ipv6的隧道地址,仅是说您的系统(服务器)可以通过隧道地址交换ipv6的数据,如能ping6通或浏览ipv6的网站。但这并不代表着您的APP一定可以支持ipv6的访问喔。建议您再对照着苹果对于APP的 IPv6 设计指导,看看是否有其它原因: https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html PING www.ymygo.com(wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net) 56 data bytes 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=1 ttl=121 time=434 ms 64 bytes from wsbl-1-pt.tunnel.tserv22.tyo1.ipv6.he.net: icmp_seq=2 ttl=121 time=434 ms ------------------------- 回 248楼(爱爱莫能助) 的帖子 您好, 欢迎来到阿里云论坛。 在系统里配置ipv6的命令在he的站点上有提供现成的喔。 ------------------------- 回 251楼(天下才子) 的帖子 您好, 为您查看,现在可以在浏览器里看到内容喔: ------------------------- 回 255楼(居然要昵称) 的帖子 您好, 欢迎来到阿里云论坛。 请问,如 ping ::1  会有哪些信息提示呢? ------------------------- 回 254楼(天下才子) 的帖子 您好, 请问您家里的宽带是哪家的呢,是中国电信的吗? ------------------------- 回 259楼(新飞) 的帖子 您好, 最后一项检测的对象是ipv6 dns server,这是与域名的解析DNS地址相关, 如果您需要,可能需要将域名的DNS地址更改为国外支持ipv6的。 ------------------------- 回 260楼(robin_tian) 的帖子 您好, 欢迎来到阿里云论坛, 看起来,http可以访问喔(但首页会提示404出错): converted 'http://api2.ihyoo.com' (ANSI_X3.4-1968) -> 'http://api2.ihyoo.com' (UTF-8) --2017-05-15 16:03:04--   http://api2.ihyoo.com/ Resolving api2.ihyoo.com (api2.ihyoo.com)... 2001:470:18:d6::2 Connecting to api2.ihyoo.com (api2.ihyoo.com)|2001:470:18:d6::2|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2017-05-15 16:03:06 ERROR 404: Not Found. ------------------------- 回 264楼(天下才子) 的帖子 您好, 如果在您的电脑上不能访问ipv6的网站,可以尝试通过这个在线网站测试一下(可能要用代理): www.ipv6proxy.net ------------------------- 回 267楼(jsrabbit) 的帖子 您好, 欢迎来到阿里云论坛。 看您的几个截图,出现了两个IPv6地址,2001:da8:20d:400::8be0:dd58 和 2001:470:18:b5::2, 如果 2001:470:18:b5::2 是正确的,现在测试是可以访问到80端口端的喔: converted 'http://[2001:470:18:b5::2]' (ANSI_X3.4-1968) -> 'http://[2001:470:18:b5::2]' (UTF-8) --2017-05-17 13:50:44--  http://[2001:470:18:b5::2]/ Connecting to [2001:470:18:b5::2]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 107908 (105K) [text/html] Saving to: 'index.html' index.html                       100%[=========================================================>] 105.38K  20.0KB/s   in 5.3s ------------------------- 回 269楼(jsrabbit) 的帖子 您好, 个人觉得 IPv6 DNS Server 设置与否,影响不大。但您有空,也可以换一家支持IPv6的国外DNS商,如 dns.he.net。 ------------------------- 回 270楼(eric984) 的帖子 来自河源的朋友, 欢迎来到阿里云论坛。 如之前有云友提到,将HE提供的示例命令中,将公网IP换成私网IP,或许就可以了喔。 ------------------------- 回 273楼(通通优品) 的帖子 您好, 欢迎来到阿里云论坛。 请问您在HE里提交的IP地址是什么呢? 一般是提交ECS实例的公网IP地址,并不是内网IP地址喔。 ------------------------- 回 275楼(通通优品) 的帖子 您好, 那能否再检查一下您的安全组规则设置呢(有没有过滤80端口)? 如果可以,或许您可以先尝试在规则里开放所有的访问,对比一下结果。 ------------------------- 回 277楼(通通优品) 的帖子 您好, 如果您多次尝试运行命令来绑定ipv6隧道地址,需要确认最后ipv6隧道地址是能从外网ping6通的喔,同时可以查看一下路由表是否正确。 ------------------------- 回 280楼(大男人主义) 的帖子 您好, 欢迎来到阿里云论坛。 祝您的APP能成功上架喔。 ------------------------- 回 282楼(仙人掌有刺) 的帖子 您好, 从现在的测试结果来看,好象您的域名AAAA解析没有生效或失败: converted 'http://m.dnanren.cn' (ANSI_X3.4-1968) -> 'http://m.dnanren.cn' (UTF-8) --2017-05-25 10:30:51--   http://m.dnanren.cn/ Resolving m.dnanren.cn (m.dnanren.cn)... failed: Name or service not known. wget: unable to resolve host address 'm.dnanren.cn' ------------------------- 回 284楼(葫芦娃警长) 的帖子 您好, 抱歉给您带来不便。 域名AAAA记录和ipv4的A记录是不互相影响的喔。 如果ping -6 外网的地址不通,那有可能是路由没配置好喔。 ------------------------- 回 287楼(中广巨力) 的帖子 您好, 欢迎来到阿里云论坛。 现在好象我无法ping通您的ipv6隧道地址喔: PING 2001:470:1f10:124::2(2001:470:1f10:124::2) 56 data bytes --- 2001:470:1f10:124::2 ping statistics --- 13 packets transmitted, 0 received, 100% packet loss, time 11997ms ------------------------- 回 290楼(中广巨力) 的帖子 您好, 欢迎来到阿里云论坛。 一般不需要重新申请第二个隧道地址喔。 建议您检查一下ipv6的路由情况。 ------------------------- 回 292楼(中广巨力) 的帖子 您好, 抱歉延时回复。 如果您ping -6 不通隧道地址的网关,可以检查一下ECS实例的安全组是否有限制访问: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 294楼(yan555) 的帖子 您好, 欢迎来到阿里云论坛。 请问您在系统中执行的是哪些命令, 执行命令后,有哪些回显的信息呢? ------------------------- 回 298楼(lsfoo) 的帖子 您好, 欢迎来到阿里云论坛。 例子中是ipv6隧道地址,是需经ipv4传送的,所以,建议您在安全组里允许所有的协议和端口,对比测试一下喔。 ------------------------- 回 300楼(华邦云12138) 的帖子 您好, 提示有重名,有可能是多次执行命令后提示的。 可删除之前添加的,或第二次执行命令时,跳过这一步。 ------------------------- 回 301楼(华邦云12138) 的帖子 您好, 建议您检查实例的安全组规则, 如果可以,建议放行全部的协议和端口: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 305楼(华邦云12138) 的帖子 您好, 抱歉延时回复。 能否截图,看看您的安全组规则呢? ------------------------- 回 306楼(笔墨kk) 的帖子 您好, 欢迎来到阿里云论坛。 在图中看到的信息,虚拟的IPv6网络接口是“断开”状态的喔。 请问您具体执行了哪些命令呢? ------------------------- 回 310楼(笔墨kk) 的帖子 您好, 看命令的内容,是HE网站上提供的。 如果您使用的专有网络,需要注意将命令中的公网IP换成系统的内网IP喔。 ------------------------- 回 312楼(笔墨kk) 的帖子 您好, 可以先试试哩,替换一下IP后试试。 ------------------------- 回 314楼(华邦云12138) 的帖子 您好, 如广东的中国电信用户,应该也可以直接ping -6 的吧, 如现在我尝试的: 正在 Ping 2001:470:18:b07::2 具有 32 字节的数据: 请求超时。 来自 2001:470:18:b07::2 的回复: 时间=994ms 来自 2001:470:18:b07::2 的回复: 时间=996ms 来自 2001:470:18:b07::2 的回复: 时间=959ms 2001:470:18:b07::2 的 Ping 统计信息:     数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失), 往返行程的估计时间(以毫秒为单位):     最短 = 959ms,最长 = 996ms,平均 = 983ms ------------------------- 回 317楼(笔墨kk) 的帖子 您好, 创建IPv6隧道地址时,是需要提交公网IP的喔。 只不过,是在创建好隧道地址后的命令中,替换喔。 ------------------------- 回 320楼(笔墨kk) 的帖子 您好, 很高兴听到您已经在系统中成功配置了ipv6隧道地址。 ------------------------- 回 322楼(笔墨kk) 的帖子 您好, 这个需要满足一些条件的,如您家里用来ping的系统是什么呢,有没有启用ipv6?您家里的路由器是否支持ipv6? 如在我自己的电脑里能ping -6 通您的隧道地址: 正在 Ping yongchun.gosob.com [2001:470:18:cce::2] 具有 32 字节的数据: 来自 2001:470:18:cce::2 的回复: 时间=3291ms 请求超时。 来自 2001:470:18:cce::2 的回复: 时间=676ms 来自 2001:470:18:cce::2 的回复: 时间=913ms ------------------------- 回 321楼(miazhang) 的帖子 您好, 欢迎来到阿里云论坛。 现在从外网的机子测试,能ping6通您的隧道地址喔。 论坛在Chrome和Firefox里,是无法上传图片,但如UC可以。 PING 2001:470:18:b61::2(2001:470:18:b61::2) 56 data bytes 64 bytes from 2001:470:18:b61::2: icmp_seq=1 ttl=121 time=610 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=2 ttl=121 time=602 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=3 ttl=121 time=601 ms 64 bytes from 2001:470:18:b61::2: icmp_seq=4 ttl=121 time=602 ms ------------------------- 回 326楼(笔墨kk) 的帖子 您好, 嗯,一般情况来说,能ping -6 得通ipv6隧道地址,那说明您的设置生效了喔。 如果不信,那可以重装ECS系统后,再ping -6 一下,看能否通。 ------------------------- 回 328楼(笔墨kk) 的帖子 您好, 好哩,祝您的APP上架成功喔。 ------------------------- 回 329楼(miazhang) 的帖子 您好, 请问执行以下命令,会有什么样的显示结果呢? netstat -noa | find ":80" ------------------------- 回 333楼(miazhang) 的帖子 您好, 如果这是全部的信息输出, 是喔,您的Web服务没有在ipv6的网络接口上监听使用喔。 ------------------------- 回 334楼(leodoo) 的帖子 您好, 欢迎来到阿里云论坛。 1. HE的隧道地址是6in4,好象是理解为将ipv6的数据包通过ipv4来传送。如果您的应用服务需要使用ipv6地址来通讯,是需要在ipv6的网络接口上监听 3. 从外网测试,可以访问您的站点喔: converted 'http://5656k.com' (ANSI_X3.4-1968) -> 'http://5656k.com' (UTF-8) --2017-06-15 10:24:13--   http://5656k.com/ Resolving 5656k.com (5656k.com)... 2001:470:18:cf4::2 Connecting to 5656k.com (5656k.com)|2001:470:18:cf4::2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.5' ------------------------- Re:回 338楼(miazhang) 的帖子 您好, 如果是 dig,应该是dig域名而不是网址吧? ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46629 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ; www.xueshupa.net.              IN      AAAA ;; ANSWER SECTION: www.xueshupa.net.       600     IN      AAAA    2001:470:18:b61::2 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 25716 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ; http://www.xueshupa.net.       IN      AAAA ;; Query time: 5013 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Thu Jun 15 23:22:35 CST 2017 ;; MSG SIZE  rcvd: 52 ------------------------- 回 340楼(超级蜜蜂) 的帖子 您好, 欢迎来到阿里云论坛。 现在我测试,可以喔: --2017-06-20 21:20:37--   https://www.zgzbsc.vip/Diamond/frontgoods/index Resolving www.zgzbsc.vip (www.zgzbsc.vip)... 2001:470:18:1141::2 Connecting to www.zgzbsc.vip (www.zgzbsc.vip)|2001:470:18:1141::2|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index' ------------------------- 回 342楼(miazhang) 的帖子 您好, 抱歉听到您的APP被苹果拒审, 如在开始讨论的,苹果并不要求APP服务器一定要有IPv6的地址,但强调APP软件本身要使用ipv6-only的设计规范,如要使用域名来引用地址,要使用新的函数,不能将ipv4的地址写死,等等。 建议您下一步的排查重心放在APP软件本身上。 ------------------------- 回 344楼(超级蜜蜂) 的帖子 您好, 抱歉听到您的APP被苹果拒审, 如在开始讨论的,苹果并不要求APP服务器一定要有IPv6的地址,但强调APP软件本身要使用ipv6-only的设计规范,如要使用域名来引用地址,要使用新的函数,不能将ipv4的地址写死,等等。 建议您下一步的排查重心放在APP软件本身上。 ------------------------- 回 347楼(hornsun.tech) 的帖子 您好, 欢迎来到阿里云论坛。 服务器 执行 netstat -nao | find "80"时 没看到有[::]:80端 -> 请问您有没检查Web的设置,是否有监听使用ipv6的地址呢? 按照提示,安全组规则也增加了公网的入网规则 -> 请问您添加的规则是怎么样的呢? ------------------------- 回 348楼(24k壮士) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,不能ping6通您的隧道地址喔。 ING zgzzhds.com(AyinAy7-1-pt.tunnel.tserv25.sin1.ipv6.he.net) 56 data bytes --- zgzzhds.com ping statistics --- 12 packets transmitted, 0 received, 100% packet loss, time 10997ms ------------------------- 回 351楼(很赞) 的帖子 您好, 欢迎来到阿里云论坛。 是的,因为SLB的服务器用户不能配置隧道地址,而ECS是在SLB后边。 ------------------------- 回 353楼(很赞) 的帖子 您好, 按苹果的指导文档来看,要求的是APP软件本身能兼容ipv6-only的网络环境,并不是要求APP服务器有ipv6的地址。 所以,重心应该是在app软件本身的设计和构建上哩。 ------------------------- 回 355楼(aaa.a) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,可以ping得通喔: PING 2001:470:35:7ee::2(2001:470:35:7ee::2) 56 data bytes 64 bytes from 2001:470:35:7ee::2: icmp_seq=1 ttl=120 time=555 ms 64 bytes from 2001:470:35:7ee::2: icmp_seq=2 ttl=120 time=555 ms 64 bytes from 2001:470:35:7ee::2: icmp_seq=3 ttl=120 time=555 ms ------------------------- 回 357楼(miazhang) 的帖子 您好, ipv6 dns server,请参考这个例子:《用HE提供的免费DNS解析服务通过IPv6 DNS检测》 - https://bbs.aliyun.com/read/313524.html? ------------------------- 回 359楼(xl_young) 的帖子 您好, 欢迎来到阿里云论坛。 请问您的实例安全组是否允许所以协议通过呢? ------------------------- 回 361楼(xl_young) 的帖子 您好, 能否截图看看安全组规则的内容? ------------------------- 您好,欢迎来到阿里云论坛。可以ping6通,wget返回404错误信息:--2017-08-01 12:24:03--  http://api.qingyun100.com/Resolving api.qingyun100.com (api.qingyun100.com)... 2001:470:18:490::2, 139.196.40.67Connecting to api.qingyun100.com (api.qingyun100.com)|2001:470:18:490::2|:80... connected.HTTP request sent, awaiting response... 404 Not Found2017-08-01 12:24:03 ERROR 404: Not Found. ------------------------- 回 365楼(菜鸟017) 的帖子 您好, 欢迎来到阿里云论坛。 从外围的服务器来测试的话,提示403禁止访问喔: --2017-08-09 09:35:44--   http://tangxianqipai1.zai0312.com:90/ Resolving tangxianqipai1.zai0312.com (tangxianqipai1.zai0312.com)... 2001:470:18:695::2 Connecting to tangxianqipai1.zai0312.com (tangxianqipai1.zai0312.com)|2001:470:18:695::2|:90... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-08-09 09:35:45 ERROR 403: Forbidden. ------------------------- 回 368楼(菜鸟017) 的帖子 您好, 当时,我是使用境外的IPv6机子来为您测试的喔。 ------------------------- 回 369楼(菜鸟017) 的帖子 您好, 这个可能是测试时,所使用的DNS域名服务器不支持ipv6吧。 一般这个不太紧要的,因为国内的DNS服务器,一般没有IPv6地址的,除非您使用国外的。 ------------------------- 回 372楼(菜鸟017) 的帖子 您好, 目前的情况,可能阿里云没有为ECS配置可公众访问的IPv6地址呢。 阿里云的公共DNS服务器,目前好象也没有IPv6地址。 ------------------------- 回 374楼(菜鸟017) 的帖子 您好, 如果是在Windows 2012,删除之前存在的“ip6tunnel”虚拟接口, 或许可以试试以下这个命令: netsh int ipv6 delete interface "ip6tunnel" ------------------------- 回 377楼(菜鸟017) 的帖子 您好, 很高兴听到您已经解决了问题, 有空时,请多来阿里云论坛逛逛喔。 ------------------------- 回 380楼(sheldonlin) 的帖子 您好, 欢迎来到阿里云论坛。 能否贴出您在Windows里执行的命令? ------------------------- 您好,可能需要检查web服务是否也在ipv6的网络地址里监听80端口: --2017-08-20 09:37:23--  (try: 2)   http://kambuzz.com/ Connecting to kambuzz.com (kambuzz.com)|2001:470:18:8f2::2|:80... failed: Connection re fused. liujia@hk2:~/test6$ ping6 2001:470:18:8f2::2 PING 2001:470:18:8f2::2(2001:470:18:8f2::2) 56 data bytes 64 bytes from 2001:470:18:8f2::2: icmp_seq=1 ttl=127 time=311 ms 64 bytes from 2001:470:18:8f2::2: icmp_seq=2 ttl=127 time=310 ms ------------------------- 回 386楼(sheldonlin) 的帖子 您好, 是的。 好象没有80端口的监听使用情况喔。 执行以下的命令,再看看: netstat -noa | find ":80" ------------------------- 回 388楼(sheldonlin) 的帖子 您好, 您是想让您的站点能从ipv6的网络里访问到页面内容吗? 从您的命令输出结果来看,好象并没有web进程喔。 关于苹果对于ipv6-only的要求,请看这个指导文档: https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1 ------------------------- 回 391楼(sheldonlin) 的帖子 您好, 那您在运行tomcat后,执行 netstat -noa | find ":8080" 后,有哪些输出结果呢? ------------------------- 回 394楼(sheldonlin) 的帖子 您好, 请尝试检查实例的安全组规则,看是否有阻止外网访问8080端口: https://help.aliyun.com/document_detail/25471.html ------------------------- 回 398楼(sheldonlin) 的帖子 您好, 总结得不错。 现在测试,是可以从外网的ipv6测试机访问的: liujia@hk2:~/test6$ wget -6 kambuzz.com:8080 --2017-08-21 10:51:58--   http://kambuzz.com:8080/ Resolving kambuzz.com (kambuzz.com)... 2001:470:18:8f2::2 Connecting to kambuzz.com (kambuzz.com)|2001:470:18:8f2::2|:8080... connected. HTTP request sent, awaiting response... 200 Length: unspecified [text/html] index.html: Permission denied 如果您的实例是Linux系统的,建议在后台长驻运行一个ping6的命令,如 ping6 ipv6.google.com ,以让您的ipv6隧道地址保持激活的状态,避免如20分钟后ipv6隧道地址ping6不通。 ------------------------- 回 400楼(sheldonlin) 的帖子 您好, 有时您的IPv6隧道地址ping不通, 在ping通时,可以访问到页面的内容,如: ------------------------- 回 402楼(sheldonlin) 的帖子 您好, 不确定具体的原因,但您可以尝试更换到其它的中转服务器,如美国的,看看会不会比目前的香港好些。 ------------------------- 回 405楼(sheldonlin) 的帖子 您好, ping6了几分钟后,可以ping通了。 liujia@hk2:~$ ping6 2001:470:c:67a::2 PING 2001:470:c:67a::2(2001:470:c:67a::2) 56 data bytes 64 bytes from 2001:470:c:67a::2: icmp_seq=232 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=233 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=234 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=235 ttl=123 time=313 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=236 ttl=123 time=315 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=237 ttl=123 time=387 ms 64 bytes from 2001:470:c:67a::2: icmp_seq=238 ttl=123 time=387 ms --- 2001:470:c:67a::2 ping statistics --- 238 packets transmitted, 7 received, 97% packet loss, time 238848ms rtt min/avg/max/mdev = 313.431/335.021/387.851/33.233 ms ------------------------- 回 407楼(sheldonlin) 的帖子 您好, 测试的ping值差不多喔: PING 2001:470:18:94d::2(2001:470:18:94d::2) 56 data bytes 64 bytes from 2001:470:18:94d::2: icmp_seq=1 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=2 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=3 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=4 ttl=127 time=325 ms 64 bytes from 2001:470:18:94d::2: icmp_seq=5 ttl=127 time=325 ms ------------------------- 回 409楼(觅约) 的帖子 您好, 欢迎来到阿里云论坛。 现在测试,访问正常喔: liujia@hk2:~/test6$ wget -6 app.miyueta.com:9088 --2017-08-28 18:25:36--   http://app.miyueta.com:9088/ Resolving app.miyueta.com (app.miyueta.com)... 2001:19f0:6001:213:5400:ff:fe77:5183 Connecting to app.miyueta.com (app.miyueta.com)|2001:19f0:6001:213:5400:ff:fe77:5183|:9088... connected. HTTP request sent, awaiting response... 200 OK Length: 52 [text/html] ------------------------- Re:回 411楼(ios——ot) 的帖子 您好, 我现在从外网为您ping6测试,可ping通,但有丢包。 liujia@hk2:~$ ping6 admin.allti.com.cn PING admin.allti.com.cn(wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net) 56 data bytes 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=4 ttl=124 time=566 ms 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=5 ttl=124 time=545 ms 64 bytes from wbnahqs-1-pt.tunnel.tserv25.sin1.ipv6.he.net: icmp_seq=13 ttl=124 time=539 ms --- admin.allti.com.cn ping statistics --- 16 packets transmitted, 3 received, 81% packet loss, time 15087ms rtt min/avg/max/mdev = 539.496/550.382/566.125/11.400 ms ------------------------- 回 415楼(ios——ot) 的帖子 您好, 有可能。换别的中转服务器,如美国的来对比看看。 ------------------------- 回 437楼(卡乐) 的帖子 版主回复: 没看到相应的安全性评估。 个人想,是这样的:如果您的数据传送开始时,已经是加密的,如https,那隧道转发的服务器也不能读取到数据内容吧? 且,隧道转发的服务商,he.net应该是一家有信誉的公司。 再者,这里的隧道地址设置,目的是帮助APP上架,如果您的APP上架后,可停用隧道地址。 ------------------------- 回 439楼(卡乐) 的帖子 版主回复: 反方向操作哩,如在系统里禁用/删除隧道地址(如netsh int ipv6 delete interface "ip6tunnel")。 ------------------------- 回 443楼(阿凯十三郎) 的帖子 版主回复: 或许您需要检查一下ECS实例的安全组,看是放行了ipv6隧道地址服务器的访问。 目前测试来看,您的ipv6隧道地址从外网是ping6不通的。 --2018-01-25 10:41:07--   http://www.cjnmw.xyz/ Resolving www.cjnmw.xyz (www.cjnmw.xyz)... 2001:470:18:f02::2 Connecting to www.cjnmw.xyz (www.cjnmw.xyz)|2001:470:18:f02::2|:80... failed: Connection timed out. Retrying. liujia@hk2:~/test7$ ping6 2001:470:18:f02::2 PING 2001:470:18:f02::2(2001:470:18:f02::2) 56 data bytes --- 2001:470:18:f02::2 ping statistics --- 21 packets transmitted, 0 received, 100% packet loss, time 20154ms liujia@hk2:~/test7$ ping6 2001:470:18:f02::1 PING 2001:470:18:f02::1(2001:470:18:f02::1) 56 data bytes 64 bytes from 2001:470:18:f02::1: icmp_seq=1 ttl=64 time=1.41 ms 64 bytes from 2001:470:18:f02::1: icmp_seq=2 ttl=64 time=1.40 ms --- 2001:470:18:f02::1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 1.404/1.409/1.415/0.037 ms ------------------------- 回 448楼(阿凯十三郎) 的帖子 版主回复: 从您的ECS实例能ping通隧道地址服务器的IP,但不代表从隧道地址的服务器能ping通(访问)您的ECS实例喔。 ------------------------- 回 449楼(阿凯十三郎) 的帖子 版主回复: 是哩,看起来,外网已经能通过隧道地址访问到您的apache里了。 您调整了ECS实例的安全组规则吗? ------------------------- 回 452楼(阿凯十三郎) 的帖子 版主回复: 据网友反馈:域名本身的 ipv6 DNS Server 并不重要。 ------------------------- 回 455楼(纪念青春) 的帖子 版主回复: 请试试: netsh int ipv6 delete interface "ip6tunnel" ------------------------- 回 458楼(老黄000001) 的帖子 您好, 图中信息,显示IPv6隧道地址断开状态, 请问您在之前配置隧道地址的命令中,包含的IP是ECS实例的公网IP还是内网IP? 一般来说,应该在命令中写内网IP的,即您图中的看到的172.18.132.2 ------------------------- 回 460楼(尜淇专版) 的帖子 您好, 在He.net里申请隧道地址时,请填写ECS实例的公网IP地址喔。 ------------------------- 回 462楼(潮约) 的帖子 您好, 使用VPC网络的ECS实例,在配置隧道地址时,是需要绑定内网IP,因为公网IP不是在系统里。 如果配置隧道地址时,绑定了内网IP,也无法正常使用的话,建议检查ECS实例安全组规则或Windows防火墙,如将隧道地址服务器的IPv4加到白名单中。
dongshan8 2019-12-02 02:58:04 0 浏览量 回答数 0
阿里云企业服务平台 陈四清的老板信息查询 上海奇点人才服务相关的云产品 爱迪商标注册信息 安徽华轩堂药业的公司信息查询 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 天籁阁商标注册信息 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 北京芙蓉天下的公司信息查询