自从弄了几个服务器,加上校园网按流量收费的蛋疼模式,我开始打起了IPv6的注意,在这里给大家介绍以下利用IPv6环境进行科学上网/免流量上网的基本方法。其中,搭建ss/ssr以及vpn的方法,其具体效果取决于所采用的VPS对IPv4/IPv6的支持情况,若服务器支持IPv4/IPv6双栈,则可以通过v4或v6任意网络环境连入,并获得服务器的双栈网络效果。
另外,若仅仅是想在IPv4环境下想要访问IPv6网站,可以参考6Plat的46模块手册,发送邮件申请一个6Plat的openVPN账号,下载openVPN并按照手册登录即可。
注:以下绝大部分内容需要IPv6网络以及机器支持,请自行检查环境,简单测试可以访问ipv6-test.com
1. 改hosts/使用IPv6 DNS
此类方法可以访问大部分支持IPv6的网站,可以流畅观看YouTube,访问Facebook、Google等等。原理为将网站域名解析为IPv6地址,从而可以直接访问,简单便捷而且较稳定。缺点也很明显,那就是所访问的网站必须支持IPv6,现在来看,离全民IPv6还差得远哈~
改hosts:
hosts文件地址
将hosts文件放在C:\Windows\System32\drivers\etc\中替换,原hosts文件可以先行备份。
改IPv6 DNS:
打开-网络与共享中心-更改适配器选项-找到你的IPv6网络-右键-属性-Internet协议版本6(TCP/IPv6)
点击-属性-使用下面的DNS服务器地址-首选DNS,填入 240C::6644
保存关闭即可。
提示:两种方法效果几乎一样,只需采用其一即可,且还有另外的hosts/IPv6DNS提供,如有需要,可以前往github搜索ipv6 hosts或ipv6 DNS来查询。需要注意的是,使用IPv6 DNS方法只在IPv6环境下有效,在IPv6/IPv4双栈环境下,由于网站一般默认使用IPv4地址,解析效果会失效。而改hosts的话,无论网络环境为何,都强制解析为ipv6地址,在仅有ipv4的网络环境下,可能会出现无法访问的情况。
2.搭建shadowsocks/shadowsocksR代理
本方法以及以下VPN搭建均需要自建服务器,这里我采用的是DigitalOcean的VPS,个人比较了下,最终发现DigitalOcean是性价比最好的,最重要的是不限流量(貌似?)点击这里来注册可以获得10美元(哈哈,推广一下),当然,你还可以申请到GitHub的Student Developer Pack (需要用edu邮箱验证,不过更推荐采用上传学生证照片验证,无论哪种,审核时间都比较随缘。。虽然不用特别久,然而还是要等个1周左右的),可以再获得50美元的购买资金(业界良心~)。
注册并激活DigitalOcean账号
注册之后需要绑定信用卡或者使用paypal支付5美元才能激活(借记卡是不行的),激活后点击右上角的头像-Settings-Billing,拉到下面可以输入Github Student Pack中获得的Promote Code,50美元Get美滋滋。
创建并配置Droplet
点击“Create”来创建Dpoplet VPS,下面是我个人推荐的配置:
配置选项 | 推荐 |
---|---|
Choose an image/选择一个系统镜像 | Ubuntu16.04-64位 |
Choose a size/选择硬件配置 | 个人服务器搭建,“$5/mo”配置足够了 |
Add block storage/添加块存储空间 | 没有必要,不予理会 |
Choose a datacenter region/选择服务器地区 | 建议San Francisco 2,也可以自行测速 |
Select additional options/附加选项 | 个人VPS建议只勾选IPv6,其他选项请自行斟酌 |
Add your SSH keys/添加SSH密钥 | 请自行添加并妥善保管,如果需要便捷远程SSH,可不选(密码登录) |
Finalize and create/创建个数及其名称 | 选1个,名称自填 |
至此Droplet创建完成,记录下分配的IPv4与IPv6地址,并点击“Access-Reset Root Password”来重置root密码(会邮件告知密码并开机要求重置)。
接下来点击“Networking”选项,找到“FireWalls”创建防火墙,Inbound Rules(入站规则)可以参照以下配置,出站规则使用默认配置即可。
接下来需要远程SSH到你的VPS,你可以使用DigitalOcean自带的Console Access,不过它相当不好用,windows系统建议使用Xshell,Android手机端可以使用ConnectBot,这里使用Xshell来连接VPS。
Xshell使用方法:
用户名填root,密码或者public key使用之前配置的key/password。
安装与配置Shadowsocks/ShadowsocksR
使用Xshell SSH到服务器后,参照以下方法安装并配置Shadowsocks/ShadowsocksR,由于Shadowsocks已停止更新很久,且ShadowsocksR更新了许多新功能,添加了混淆等模块的同时,保持了对原Shadowsocks的兼容,所以推荐安装ShadowsocksR。
Shadowsocks/ShadowsocksR一键安装脚本
名称 | 描述 |
---|---|
ShadowsocksR 一键安装 (推荐) | ShadowsocksR的Python版本 |
shadowsocks Python 一键安装 | Shadowsocks的Python版本 |
shadowsocks libev 一键安装 | Shadowsocks的C语言版本 |
shadowsocks go 一键安装 | Shadowsocks的Go语言版本 |
当然你也可以手动安装,不过配置过程比较麻烦,感兴趣的可以自行查找。
Shadowsocks/ShadowsocksR服务器优化
由于VPS邻居可能会对带宽进行滥用,服务器网速并不稳定,这时候可以对VPS进行优化,而优化分单边加速(即只配置服务器端)与双边加速(服务器端与用户端都要配置)。
单边加速:
注:因为openVZ不能更改内核,所以单边加速并不适用于openVZ的VPS。
名称 | 描述 |
---|---|
TCP BBR(推荐) | google为尽量跑满带宽开发的新内核, 对领居影响很小 |
net speeder | 能在高延迟不稳定链路上优化单线程下载速度 |
serverspeeder(锐速) | 创造了多倍发包,加速效果明显,不过比较无良,对VPS邻居的带宽影响很大 |
双边加速:
双边加速在服务端和客户端都需要安装加速软件,加速效果显著不过比较麻烦,另外双边加速是适用于openVZ的VPS的。
名称 | 描述 |
---|---|
kcptun(推荐) | 使用kcp协议传输数据从而达到加速效果 |
FinalSpeed | 通过压缩流量来增加传输成功率 |
另外一些Shadowsocks服务器的优化技巧:
参考shadowsocks服务器优化技巧
shadowsocks的Windows端配置
请到shadowsocks Github官网下载最新版本安装并运行,在右下角任务栏找到纸飞机图标,右键-服务器-编辑服务器-新建
按照服务器端安装时配置填入相应信息,完成后连接即可,服务器IP可以填你VPS的IPv4/IPv6地址,如若想校园网免流上网请填IPv6地址,下同。
shadowsocks的Android端配置
请到APKPure或同类应用商店搜索”shadowsocks”下载app,配置同Windows端。
shadowsocksR的Windows端配置
Github下载地址已失效,请自行寻找下载源或在本文下方留言,也可以Mail我。配置方法同shadowsocks配置,不过多了”协议”与”混淆”,这些都在服务器端安装的时候配置好了,按照服务器端配置填写即可,代理规则详见ShadowsocksR代理规则配置详解
shadowsocksR的Android端配置
请到APKPure或同类应用商店搜索”shadowsocks”下载app,配置同Windows端,可以使用ssr链接或者二维码扫描快速共享。
3. 搭建SoftEther VPN Server
shadowsocks其实已经可以满足需要,但如果想要完全的网络代理环境,以及虚拟专用网功能,则需要搭建一个VPN。
想要搭建VPN,首先你得选一个工具,对比OpenVPN那些,个人觉得一个日本大学做的SoftEther VPN相当好用,不但配置起来方便,而且服务器的管理也可以通过相应工具在远程管理,不用每次都SSH到服务器端了。
安装SoftEther VPN Server
首先,使用Xshell远程SSH到服务器端,具体可以参照之前搭建Shadowsocks过程。
然后访问SoftEther下载官网(因为这个东西在墙外,如果你的服务器在国内且没有梯子的话,你可以用lantern psiphon之类的东西把它下载下来,再上传到git,然后gitclone),按照你的VPS配置选取对应VPN Server后,复制下载链接,我这里使用的版本是4.25。
接着在Xshell的远程终端中,输入”wget [你复制的链接]”来下载安装包(以下代码均使用4.25版本为例)1
$ wget http://www.softether-download.com/files/softether/v4.25-9656-rtm-2018.01.15-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.25-9656-rtm-2018.01.15-linux-x64-64bit.tar.gz
接着解压所下载的tar包1
$ tar -zxvf softether-vpnserver-v4.25-9656-rtm-2018.01.15-linux-x64-64bit.tar.gz
接下来是一些必备库的安装,如果已存在下列库,可以跳过此步骤1
2
3$ apt-get install make
$ apt-get install gcc-multilib
$ apt-get install build-essential
必备库安装完后就可以执行make安装了,首先进入vpn server目录1
$ cd vpnserver
然后执行make1
$ make
过程中会有三次让你输入数字选择选项配置,输入3次1就行了。
至此安装过程已完成,如果安装成功会提示”The preparation of SoftEther VPN Server is completed !”,如果出现Error,可以到stackoverflow上输入你的错误查一查,理论上是都可以解决的。
现在只需打开VPN Server即可1
$ ./vpnserver start
之后想要关闭VPN Server的话,可以cd 到VPN Server目录,再输入停止命令1
2$ cd vpnserver
$ ./vpnserver stop
另外,需要开放VPS的443端口,可以在DigitalOcean里的防火墙里设置,可以参考之前shadowsocks时的防火墙配置。
接下来的配置阶段基本上都可以在PC端远程完成了。
远程配置SoftEther VPN Server
这里以windows系统为例,先到之前的SoftEther下载官网下载windows端的SofEther VPN Server Manager(服务器管理工具)
安装的时候,选择仅管理工具即可
安装完毕后打开
此管理工具实质亦为远程连接终端,先创建连接,先点击”新设置”
填入你喜欢的设置名,在”主机名”一栏里填入你VPS的IPv4/IPv6地址,点击”确定”
第一次配置会要求你设置一个管理员密码,创建完后点击”连接”
选择vpn的其他高级配置并点击”关闭”,之后的弹出框点击确认就行,接着进入IPsec/L2TP/EtherIP/L2TPv3设置界面
选择”启用L2TP服务器功能(L2TP over IPsec)”,并自定义一个IPsec预共享密钥,点击”确定”来到管理器界面
点击”管理虚拟HUB”
点击”管理用户”,在管理用户界面里点击”新建”
输入用户名和密码即可,其他的不用动,点击”确定”,回到”管理虚拟HUB”页面
点击右下边的”虚拟NAT和虚拟DHCP服务器”
点击”启用SecureNAT”,再点击”SecureNAT配置”
MAC地址不要改,其他的如果不会配置的话可以参照上图,填写完成后点击”确定”,至此服务端配置便已完成。
PC端连接VPN
这里介绍两种方式,一种为windows自带的VPN,不过我此方式在我的PC上经测试失败(可以自行测试一下),还一种是使用SoftEther VPN Clent连接。
1.使用windows自带的VPN
点击打开win10右下角任务栏的通知界面-VPN
打开选择”添加VPN连接”
按上图配置完毕,点击”连接”即可
2.使用SoftEther VPN Client
同样前往SoftEther下载官网
选择SoftEther VPN Client下载,安装后打开
点击”添加新的VPN连接”
按上图填入配置,点击”确定”完成创建,双击连接到VPN
至此成功连接到VPN,可以百度搜索”IP”查看自己的IP是否为VPS的IP地址了
Android/IOS端连接VPN
使用系统自带的VPN功能,按照上面windows端自带VPN设置样例配置并连接即可。