aliyun支持ipv6的配置-苹果审核被拒的的破解之道

元旦期待已久的iOS版本,苦苦等到1.7号方值被拒了,原因是不支持ip6,现要改造支持ipv6,公司用的aliyun服务器 nginx做反向代理 服务器的操作系统是linux,通过ping6的方式可以之道网址是否支持ipv6

ping6 ipv6.xxxx.com 
ping6 ipv6的ip
请参考:http://lesca.me/archives/how-to-ping-ipv6-address.html

在gogole后国内大部分都是不支持ipv6,包括aliyun都是禁用状态,在google之后发现了破解之道

一.确认系统版本

# cat /proc/version (Linux查看当前操作系统版本信息)
Linux version 2.6.32-431.23.3.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Thu Jul 31 17:20:51 UTC 2014
# uname -a   (Linux查看版本当前操作系统内核信息
Linux iZ28jhy70mhZ 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
扫描二维码关注公众号,回复: 244838 查看本文章

二.linux支持ipv6

2.1.确认linux是否启用了ipv6通过以下命令,能看到ipv6的字样说明支持

# lsmod | grep ipv6
  ipv6                  318183  90 sit
# ifconfig
# ip a
  inet6 addr: fe80::216:6eff:xx:1bab/64 Scope:Link (inet6字样)

2.2配置启用ipv6

由于国内目前并不支持ipv6,阿里就索性把ipv6的模块给禁用了。可以在内核加载模块中看到禁用的文件:

#cat /etc/modprobe.d/disable_ipv6.conf
alias net-pf-10 off
alias ipv6 off
options ipv6 disable=1

并且在网络配置中,也看到了对ipv6的禁用:

cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=iZ28jhy70mhZ
NETWORKING_IPV6=no
PEERNTP=no
GATEWAY=115.29.xxx.247

因此要开启ipv6的支持修改 /etc/sysconfig/network中的NETWORKING_IPV6=yes,并且注释掉/etc/modprobe.d/disable_ipv6.conf的内容或删除该文件。

2.3配置好以后重启阿里云服务器

# shutdown -r now

三.Nginx支持ipv6

进入到nginx下,看是否有编译模块 --with-ipv6

# cd /etc/nginx/sbin/
# ./nginx -V
nginx version: nginx/1.6.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --with-openssl=../openssl-1.0.1k --with-http_stub_status_module 
--with-http_ssl_module --with-http_realip_module --with-http_gunzip_module --with-http_gzip_static_module 
--with-http_secure_link_module --with-http_auth_request_module --with-file-aio --with-ipv6

如果有则下一步,如果没有需要重新编译下依赖模块

四.配置ipv6隧道

4.1.注册登陆 https://www.tunnelbroker.net/ (需要邮箱验证)

4.2.Create Regular Tunnel(输入外网ip地址,也就nginx所在的服务器外网地址,并选择亚洲:HK)

4.3 tab到 ExampleConfigurateions到栏目下 select 与自己操作系统对应的名称,我选择的是Linux-route2 ,copy展示出来的命令在终端中执行

modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 216.218.221.6 local 115.39.xx.505 ttl 255
ip link set he-ipv6 up
ip addr add 4001:470:18:2d1::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr

回去之后会看到

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::516:4eff:fe02:1bab/64 scope link
       valid_lft forever preferred_lft forever
ping6 x001:4x0:18:2f1::2 (HE中ipv6的地址,如果能ping6通说明配置成功)

五.配置nginx支持ipv6

listen    80;
listen    [::]:80 ipv6only=on;
server_name  xxx.xxx.com;

HTTPS的配置

listen  443 ssl http2;
listen  [::]:443 ssl http2;
server_name  xxx.xxx.com;

执行以下命令就看到监听的端口是否支持ipv6

# netstat -lan|grep LISTEN
# netstat -tulpn | grep :80
tcp        0      0 10.165.40.56:80             0.0.0.0:*                   LISTEN      1147/nginx
tcp        0      0 :::80                       :::*                        LISTEN      1147/nginx
tcp        0      0 :::8080                     :::*                        LISTEN      1168/java
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      1168/java
tcp        0      0 :::7080                     :::*                        LISTEN      1203/java
tcp        0      0 :::8009                     :::*                        LISTEN      1168/java

六.配置 DNS 使其支持 IPv6 解析

6.1AAAA解析,值填 HE里的Client IPv6 Address,去掉最后的/64即可,如4001:370:200:100::2

6.2 ping6  demo.test.com (配置好的域名)看到正常输入就说明配置成功了

七.需要IOS移动端做适配处理。

参考地址:

http://lesca.me/archives/how-to-ping-ipv6-address.html   --正确pingipv6

https://ilazycat.com/posts/2016/12/aliyun-ecs-ipv6-configuration.html  --

https://jiandanxinli.github.io/2016-08-06.html  -- 

https://tunnelbroker.net/ --隧道配置网址

https://ilazycat.com/posts/2016/12/aliyun-ecs-ipv6-configuration.html

http://www.itdadao.com/articles/c15a1011825p0.html

猜你喜欢

转载自wo-niu.iteye.com/blog/2351213