1. DNS64
参考自【DNS64/代理】IPv6 ONLY VPS访问IPv4资源
由于vps没有ipv4地址,获取资源,安装软件的时候可能会导致解析不到的问题,临时修改dns地址,访问ipv4资源,这作为临时手段。也是ipv6only的vps能用的第一步操作。
1 | vim /etc/resolv.conf |
1 | namesever2001:67c:2b0::4 |
2. 域名解析到cloudflare
使用cdn服务使ipv4地址可以通过cf的代理访问到该ipv6所在的web服务器上。
ps:AAAA 加ipv6地址,并打开proxy,即小黄云
3. frp内网穿透
在这一步之前,hexo d是无法操作的,因为hexo-deployer-git配置的repo只能是ipv4地址,且端口必须是22,所以通过内网穿透到带有ipv4、ipv6双栈的vps上获得ipv4的22端口的ssh服务
前,在内网穿透之前,ssh服务连接的两种途径,一种是本地支持ipv6地址,可直连,没有的话可以添加一个ipv6地址,二是通过带有ipv6地址的vps,进行千层饼操作(ssh到带有ipv6的vps上再ssh)。
3.1 安装并配置服务端
安装frps
在有双栈ip地址的vps上安装frps,如果只有ipv4没有ipv6的vps上可以在Tunnel broker 申请并添加ipv6隧道。具体可参考为没有IPV6的VPS添加IPV6隧道
1 | cd /tmp |
配置
修改frpc.ini文件
1 | [common] |
启动frps服务
1 | cd /etc/frps |
也可使用一键脚本进行安装配置
1 | wget https://raw.githubusercontent.com/MvsCode/frps-onekey/master/install-frps.sh -O ./install-frps.sh |
3.2 安装并配置客户端
安装同上一步,在修改了dns64地址后是能够wget下载下来的
配置文件,增添ssh服务和http proxy,http proxy应该是没什么作用的,后续可能会删除。
配置
1 | cd /frpc |
1 | [common] |
启动frpc服务
1 | cd /etc/frpc |
3.3frpc加入系统服务并开机自启动
1 | vim /etc/systemd/system/frpc.service |
1 | [Unit] |
1 | #刷新服务列表: |
ps: 在这一步是折腾时间最长的,刚开始不知道./frpc -c ./frcp.ini不能后台运行,一直用./frpc -c ./frcp.ini &代替,结果ssh死活登不上去,后来知道了,又继续折腾加入服务这事,每个教程都看了,也都试了,不知道哪个教程最后成功了,最后的frpc.service就长这样了。有时间还得研究一下每行代表的嘛意思。这第一步,用到的linux命令可太多了,端口查看lsos -i,进程查看ps-aux,主要是frpc服务的错误可太多了。也是免费小鸡的性能太低,让我好等啊。
4. nginx安装与配置
主要是配置nginx.conf文件,其中有两个坑:
1.配置文件修改后,打开ip地址显示的还是welcome to nginx,看吐了,后来终于找到原因了,需要注释掉http中include所在的行,不让其他配置文件生效。
1 | #include /etc/nginx/conf.d/*.conf; |
主要是这两个文件
2.终于不是welcome to tianjin了,直接不能访问了,到处google,终于找到原因,还是因为没有ipv4地址,需要让nginx监听ipv6
1 | listen [::]:80; |
5. Travis CI 自动部署
5.1 配置travis
使用github登录travis,travis分两个网站,可免费部署github上的开源repo],,收费,可也免费部署,单但有次数限制。
选择源码仓库
5.2 加密ssh密钥
本地安装travis
安装ruby,这里选择的是编译安装,其他安装方式参考(http://www.ruby-lang.org/en/documentation/installation/)
1 | cd /tmp |
安装ruby gems,参考(https://rubygems.org/pages/download)
1 | cd /tmp |
安装travis
1 | sudo gem install travis |
如果由于网络原因无发现下载的话,可以更换国内的源,具体可以 参考这里
1 | gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ |
登录
1 | 登录travis.org |
生成并加密密钥
1 | 在当前目录生成密钥 |
5.3 配置.travis.yml
解密密钥部分
1 | before_deploy: |
需要添加我们部署机器的host信息,以让Travis可以正常访问服务器
1 | addons: |
配置_config.yml
1 | deploy: |
最后配置文件
1 | language: node_js |
ps:遇到的几个错误,主要是travis encrypt-file deploy_rsa –add这一步错误,显示加入–r命令,travis encrypt-file —r vuhks/vuhks_source.git deploy_rsa –add,还是报错,然后到travis官网看这一步的介绍,发现是git repo的问题,问题是本地没有git项目,于是git clone了vuhks_source.git ,然后配置git账户,再登录,加密,结果就没错了。
如果卡在加密那无法生成,关闭终端试一下。
结语
部署hexo到vps ipv6only的过程中,虽然每一步都有好多的教程,但还是遇到了无数的错误,还有一些独一无二的错误,有些错误是前置步骤的没有一致执行的错误,有些错误是没有ipv4的原因导致的,最后一一解决后发现,只要根据教程一步一步来,最终是会成功的。致谢网上所有的教程。
参考文献(不全,有教程不知道参考的哪些了)