前几天有个小伙伴的 iOS App 提交给水果审核没通过,水果给出的原因是应用在 IPv6 的环境下无法使用。原来小伙伴用的服务器是阿里云的 ECS ,而这玩意并不支持 IPv6 。。。这里就不得不吐槽一下阿里云这么大的云服务厂商,马上都要2017年了还不支持 IPv6 ,然而考虑一下 IPv6 在中国确实发展的并不怎么样。还好,我们可以用 Hurricane Electric 提供的 IPv6 Tunnel Broker 来让 ECS 支持 IPv6 。本文就以 Ubuntu 为例,来介绍一下具体的操作方法, CentOS 等操作系统都差不多,稍作修改也可以用。
首先,到 https://www.tunnelbroker.net/ 注册一个账户,然后登陆,戳 Create Regular Tunnel 。IPv4 Endpoint (Your side) 这里填你 ECS 的公网 IP 地址, Available Tunnel Servers 这里选一个,一般来说 HK 离大陆近延迟低,不过最近 HE.net 的香港似乎都是绕了一圈美国回来的,所以延迟反而很高,这个看自己情况选就好。然后戳 Create Tunnel ,就完成了。
接下来修改 ECS 里面的系统配置,由于阿里云的网络不支持 IPv6 所以他官方镜像里面相关的设置都是被禁用了的,想要使用 IPv6 就要做一些修改。首先修改 /etc/sysctl.conf ,把下面三项设置都改为0
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
然后编辑 /etc/network/interfaces ,在下面添加 IPv6 Tunnel的相关信息
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address <IPV6>::2
netmask 64
remote <Tunnel 的 Server IPv4 Address>
local <阿里云的内网 IPv4 地址>
endpoint any
ttl 255
gateway <IPv6>::1
up ip -6 route add 2000::/3 via ::<HE 的 Server IPv4 Address> dev he-ipv6
up ip -6 addr add <IPv6>::1:1/128 dev he-ipv6
up ip -6 addr add <IPv6>::2:1/128 dev he-ipv6
down ip -6 route flush dev he-ipv6
其中里面<IPv6> 需要你自己替换成你刚刚申请的 Tunnel 的 Server IPv6 Address,但不包括最后的::1/64。
确定配置没问题之后就可以重启服务器了,重启之后看看 he-ipv6 接口有没有被启用,如果没有的话手动执行 ifup he-ipv6 启用相关接口,然后你就应该可以使用 Tunnel 里面显示的 Server IPv6 Address 来访问你的阿里云 ECS了。
这里有个坑,local 这里一开始我写的是阿里云外网的 IP 地址,然后发现启用了 Tunnel 之后无论是从外面访问阿里云还是阿里云本身访问 IPv6 都无效,在阿里云上 ping6 ipv6.google.com 的时候提示 no route to host,然后又仔细看了一下 HE.net tunnel broker 里面的描述发现了这样一句话:
NOTE: When behind a firewall appliance that passes protocol 41, use the IPv4 address you get from your appliance’s DHCP service instead of the IPv4 endpoint you provided to our broker.
所以 local 那里应该填的是 ECS 内网的 IP 地址,而不是公网的 IP 地址。。。
5 月 19 2019
解决 virt-manager 设置不保存问题
本文共被喵星人侦察过9,451次。。。家里搞了个小机器跑 libvirt 玩,又不想每次都 ssh 到机器上用 virsh 来管理虚拟机,就想在主力 Windows 机器上用 virt-manager 来远程控制。配置起来倒是很简单, WSL + VcXsrv 很轻松就可以构建好图形环境,apt-get install virt-manager 然后 export DISPLAY=”localhost:0.0″ 就可以愉快的跑起来了。
然而,用着用着我发现有点不对,virt-manager 的设置似乎并不会被保存,设置的链接、监控(polling)等选项并不会生效,要么就是关掉之后再启动就会丢失,恢复成默认的参数。经过一圈 Google 之后发现了这个邮件列表,上面说 virt-manager 是依赖 dconf 来进行配置保存的,然而给 CentOS 打包的时候漏掉了依赖,所以会导致配置不会保存的问题,同时也说这个依赖问题会在新版的包里面进行修复。抬头看了一下这个邮件是 14 年的,而且是 CentOS 打包的时候漏掉了,也说新版本会修复那理论上应该不是这个问题吧?然而我 dpkg list 了一下发现他列出的 dbus-x11 这个包在 WSL 里面并没有被装上。。。也就是说这个依赖的问题似乎还是没有修。。。 要么就是官方觉得 Ubuntu 有图形界面的版本是会自带这个 dbus-x11 包的,所以就没列在依赖里面,无论如何知道问题在哪解决起来就容易了,直接
之后关掉 virt-manager 重新打开,发现配置可以正确生效并保存了,问题解决~
By Lazy Cat • 分享 0 • Tags: libvirt, virt-manager