VPS服务器+N1旁路由=全屋共享服务

(网络小白配置流程)

已经很久没有折腾过东西了,上一篇文章的编写也已经过去一年有余,最近从一个影音微信群里发现一个新玩具N1,简单来说就是斐X公司淘汰下来的一台挖矿机,经过大神的破解,可以改造成为路由器/旁路由,游戏模拟器,电视播放盒等设备,而且价格非常实惠(因为坏了没有保修)。不过以1/2小米盒子的价格购买一台性能更强,可玩性更高的设备还是十分充满性价比。

而对于我来说,实现全屋科学Surfing the internet才是我的最终目标,经过这2个周末的折腾,已经基本达到我所期望的功能与性能,并且在搭建过程中,扩展了个人博客的功能。期间为了达到更好的便利性,安全性和性能等因素,放弃了网上提供的一键脚本,采用了Bt+Nginx+Websocket+TLS+V2Ray的组合,从原本2个小时的折腾变成了2个星期的折腾。作为一名网络小白,为了帮助更多的小白一起入门,把整个流程记录下来方便大家实现同样的目标,主要流程章节记录如下;

第一部分:VPS服务器
第一节:购买海外VPS服务器
第二节:连接服务器
a) 测试服务器速度
第三节:服务器安装V2Ray
第四节:服务器购买域名
b)添加域名解析
第五节:服务器安装宝塔(Bt)面板
c) 添加TSL加密
第六节:服务器配置V2Ray
第七节:服务器安装加速

第二部分:N1旁路由(客户端)
第八节:N1购买和连接
第九节:N1配置成旁路由(非全局模式)
第十节:旁路由安装V2ray
第十一节:旁路由配置V2ray
第十二节:最终效果测试

第三部分:扩展功能
第十三节:VPS服务器搭建个人博客
d) 优化WordPress内存占用
第十四节:N1旁路由解锁网易云灰色音乐

参考资料


第一部分:VPS服务器

第一节:购买服务器

经过连接尝试,最终放弃搬挖工,而是购买HostDare服务器,因为他们家以同样的价格可以购买电信连接速度更快的CN2 GIA线路服务器,同样支持支付宝付款;

https://www.hostdare.com/

选择China optimized KVM

我订购其中最便宜的$49.99/yr,目前好像已经断货,大家只能再尝试找找看其它性价比较高的VPS商家,其它商家参考如下链接;

https://tlanyan.me/vps-merchant-collection/

具体购买步骤因为我这边没有进行截屏只能省略了,所有信息都可以填个人国内的信息,比如手机号,住址等(用拼音填写部分信息即可),Optional的信息全部不用填,设置的用户名密码必须记住,其中比较关键的是最后一项选项,必须选择Centos 7.6 x86_64这个操作系统;

实在搞不定的话大家也可以参考以下这篇文章;

https://www.hijk.pw/hostdare-buy-vps-tutorial/

当购买完之后,就会收到相关服务器信息邮件;

通过该IP地址,用户名和密码就可以进行SSH连接,连接到服务器上进行相关软件的安装。

第二节:连接服务器

首先需要下载一个SSH连接的软件,这里推荐使用Bitvise SSH Client(Bitvise是Windows平台下一款功能强大的免费SSH客户端),可以通过以下任意一个链接下载;

https://www.bitvise.com/ssh-client-download

https://netfiles.pw/download.php?filename=/BvSshClient-Inst.exe

下载后双击打开,开始安装

点击I agree选项框,然后点击Install。

安装完成后,打开桌面图片,显示软件界面如下;

Host:邮件中VPS的IP地址

Port:22

Username:邮件中用户名

Password:邮件中的密码(把Initial method改成password才会出来)

然后就可以点击Log in登录,第一次登陆会出现一个Host Key Verification弹出框,点击Accept and Save即可保存;

然后就打开了服务器远程操作界面;

a) 测试服务器速度

在你连接上服务器之后,可以先测试以下你服务器的连接速度,需要在服务上安装Speedtest测速脚本,在命令行执行以下脚本;

wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

安装完之后修改脚本的权限,执行以下命令;

chmod +x speedtest.py

然后查看连接测速服务器;

./speedtest.py –list

可通过以下命令查询一台上海的服务器;

./speedtest.py –list | grep Shanghai

我这里查到一台Shanghai的服务器id为3633,然后开始对上海的服务器进行速度测试;

./speedtest.py –server 3633

测试完成后显示的上传速度相当于你本地连接到你购买的VPS服务器的下载速度,我这边测试下来Hostdare服务器的速度在20-28m;但是在我最近测试中,发现已经找不到可测试的中国服务器,那就直接执行speedtest脚本测试美国服务器的连接速度。

第三节:服务器安装V2Ray

V2ray是继Shadowsocks(R)酸酸乳后又一个功能非常强大的开源科学Surfing工具,首先需要安装在购买的海外VPS服务器上,在服务器命令行中输入以下脚本进行安装;

bash <(curl -L -s https://install.direct/go.sh)

忘记截屏了,网上找了一个图,差不多是这样的结果;

安装完之后,可以看到PORT和UUID,这两项信息以后都可以通过编辑config.json(/etc/v2ray/config.json)来修改,在后面第六节中会详细说明。

安装完服务器端的V2Ray之后已经可以通过Windows客户端进行连接,但是这样的连接并不安全,你的服务器IP暴露出去容易被block,所以需要通过更安全TLS+Websocket的方式,将穿墙流量进行域名伪装,下面描述具体的步骤。

第四节:服务器购买域名

因为国内的封锁技术全球领先,为了尽可能的不被block,将穿墙流量用常见的https/tls方式包装,降低VPS被block的几率。首先我们需要购买一个域名,这里推荐购买Namesilo性价比较高,而且我用下来感觉域名分配和解析速度都很快,比我在Hostdare里买的一个域名分配快得多,登录以下网址进行购买;

https://www.namesilo.com/

首页输入一个你希望的域名进行查询,.com的域名一年$8.99,还是可以接受的,购买的流程我也没有截屏,稍微有点英语基础就行,具体步骤无非就是查询一个域名,注册一个账号,下单确认付款,其中需要注意的是以下提示;

这里选择不需要保护,否则要多花0.75美金一个月。最后同样支持支付宝结账。购买完成之后,你就可以登录你的账号查看到该域名;

b)添加域名解析

点击Manage My Domains,进入我的域名管理页面;

在你的域名后面,点击蓝色小球进行DNS管理;

点击一个A,进行添加一个IPV4的地址解析;

HOSTNAME:填入www(一个域名可以添加多个二级域名,即这里的Hostname)

IPV4 ADDRESS:填入你的VPS服务器的IP地址

TTL:填3600即可

点击Submit之后,大概10分钟左右就可以使域名生效。然后通过你的电脑可以ping这个域名,如果返回了IP地址,就说明已经解析成功。

第五节:服务器安装宝塔

宝塔Linux面板简单好用,是提升运维效率的服务器管理软件,集成了很多常用的功能。通过该面板管理你的服务器相当的方便,我们主要用来搭建基于Nginx的网站。通过以下命令进行安装;

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

选择y安装到指定目录,等待脚本自动执行。

Congratulations!Installed successfully!安装成功信息下面显示了Bt面板的路径,用户名和密码,记录下来做好登录准备;

Bt-Panel:http://xxxxx(这里如果显示的是vps ipv6的地址,可以用ipv4地址替换)

Username:xxx

Password:xxx

使用这些信息登录宝塔面板

首先需要一键安装LNMP(Nginx)

点击后正在安装

安装完成后,打开软件商店,验证相应软件安装成功;

然后就需要新建一个站点拥有流量伪装,点击网站-添加网站,输入刚才第四节中购买并已解析的域名,因为只是用来做流量转发,所以不需要FTP,数据库,PHP等组件;

添加完后,把该站点设置默认站点;

选择该域名为默认站点;

c) 添加TSL加密

网站已经配置好了,那接下来需要为该站点申请SSL。在网站管理中,点击该站点后面的设置按钮,打开如下页面后选择SSL菜单;

切换到Let’s Encrypt Tab页面去申请免费的证书;

现在可以通过Https协议访问该域名,测试该域名是否已经TLS加密,用浏览器打开你的域名;

https://www.xxxxx.com

此时应该可以看到以下页面

第六节:服务器配置V2Ray

在前面第三节中,已经说明我们需要通过安全TLS+Websocket的方式,将穿墙流量进行域名伪装;此时我们已经安装了V2Ray,已经建好了网站,现在需要做的就是通过设置网站和V2Ray两者的配置文件,把他们之间的关系联系起来,达到访问网站就是访问V2Ray,实现流量伪装的目的。

打开网站的设置,并点击Nginx配置文件菜单,在最后一个}前添加一段V2ray的设置;

location /V2ray {
proxy_redirect off;
proxy_pass http://127.0.0.1:30175;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_set_header Host $http_host;
}

复制以上信息到你的配置中即可,看上去好像就是设置了一个代理,记录下这里用到的端口号30175;

然后设置V2Ray的配置文件,需要打开V2Ray的配置文件,路径在根目录/etc/v2ray;

点击文件后面的编辑按钮进行配置;

修改以下黄色部分

{
“inbounds”: [{
“port”: 30175, //对应Nginx中配置端口
“listen”:”127.0.0.1“,//对应Nginx中配置地址
“protocol”: “vmess”,
“settings”: {
“clients”: [
{
“id”: “xxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-d1018c6d293a“,
“level”: 1,
“alterId”: 64
}
]
},

“streamSettings”: {
“network”: “ws”,
“wsSettings”: {“path”: “/V2ray”}
}
}],
“outbounds”: [{
“protocol”: “freedom”,
“settings”: {}
},{
“protocol”: “blackhole”,
“settings”: {},
“tag”: “blocked”
}],
“routing”: {
“rules”: [
{
“type”: “field”,
“ip”: [“geoip:private”],
“outboundTag”: “blocked”
}
]
}
}

蓝色部分uuid和alterId需记录下来,后面客户端配置时需要用到;

配置完后重启v2ray

service v2ray restart #重启v2ray服务
service v2ray status #查看v2ray是否运行

再重启Nginx

宝塔面板首页右上角可重启

第七节.服务器安装加速Lotserver

如果你VPS的网速不够快,可以通过魔改BBR/BBR Plus/锐速(Lotserver)一键脚本进行提速,但是用多了会影响邻居VPS网络,增加线路拥挤,因此某些VPS商家禁止安装,需要安装可执行如下命令;

wget -N –no-check-certificate “https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh” && chmod +x tcp.sh && ./tcp.sh

按3安装Lotserver(锐速)内核后重启(按Y)

然后按8使用Lotserver(锐速)加速

出现”启动成功”表示已启动加速内核。

然后利用第二节中的测速脚本进行测试,安装加速内核后上传速度提高到41Mbps。

通过https://www.fast.com/网站测试速度

至此已完成VPS服务端的所有配置,接下来进行第二部分N1旁路由(客户端)的配置。

第二部分:N1旁路由(客户端)

第八节:N1购买和连接

斐讯 N1本来是一台 NAS,一个区块链设备,由于固件加密,起初并不支持任何Linux系统,但是后来被很多大神破解,刷入不同的固件,从而让它能实现路由器/旁路由,游戏模拟器,电视盒子等各种功能,再加上目前低廉的价格,耐看的外观,极致的性能(可以支持4K视频的解码),让它的可玩性和性价比都极高。

目前我已经购入5台(其中2台做备用),毕竟这东西卖一台少一台,5台总价也就相当于一台普通路由器的价格,以后用来送人也是不错的选择。

出厂N1自带的系统基本没什么用,所以需要刷成不同的操作系统,以支持对应的功能。但是刷机过程较复杂麻烦,时间花费较多,大家可以和我一样直接从拼DD上购买已完成刷机的版本,需要做旁路由的话,就买已刷入Openwrt系统的盒子。

买来之后,它的默认IP地址是192.168.1.1,如果你的路由器或者电信猫也是这个地址的话,会造成地址冲突。所以首先我们需要把N1直连接到自己电脑上(网线直连),把自己电脑的网络连接IP地址设置为192.168.1.2,网关设置为192.168.1.1,以能够连接上N1管理后台,对它的IP地址进行修改;

打开Internet协议版本4(TCP/IPv4),进行固定IP地址设定。

设置好之后,我们就可以通过192.168.1.1打开Openwrt的管理界面。

使用默认用户名root,密码password进行登录。

第九节:N1配置成旁路由(非全局)

进入了管理后台,我们就可以把N1配置成我们路由器中的旁路由,那旁路由有什么作用,它可以分担主路由的性能压力,它也可以提供给主路由提供额外的服务,比如我们需要用到的科学Surfing功能,使N1作为客户端连接到VPS服务端上的v2ray。

首先我们来看一下一般人家里的网络架构图,一台电信猫(192.168.1.1)进屋,连接一台路由器(192.168.2.1)给家里所有的设备提供网络连接;

然后我们需要把N1接到路由器上,

这个时候有两种配置模式;

模式1全局:主路由关DHCP+N1开DHCP

(全局模式中,家里所有的设备都走N1,由N1进行IP地址分配,所有的设备都可以科学Surfing)

模式2非全局:主路由开DHCP+N1关DHCP

(非全局模式中,家里所有的设备都走主路由器,但是只有当连接设备的网关配置成N1的地址后,这台设备才走N1,才能科学Surfing)

最后我采用的非全局模式,因为这样可以防止家人的设备误用了VPS的流量,避免他们访问到不该访问的网站等问题,所有设备可以通过N1进行控制,不影响他们访问国内的所有网站, 接下来看一下如何进行非全局的配置;

进入N1后台,打开网络-接口,对LAN进行修改

这里我配置N1的静态IP地址为192.168.3.1(此时的路由器地址可能是192.168.2.1),设置网关(路由器)的地址为192.168.3.2(之后需修改路由器IP为该地址),DNS服务器位置通网关地址,另外随便添加一个8.8.8.8,配置如下;

然后点击高级设置tab页,把DHCP功能关闭。

点击保存与应用,然后你就可以把N1从你个人电脑连接上拔下来,个人电脑网络重新配置成动态获取IP;

然后打开你的路由器(192.168.2.1)管理后台地址,把路由器的IP地址改成192.168.3.2,这样就能与N1为同一网段,其它路由器修改方式也是类似;

点击应用本页面设置,就可以重启路由器,之后就通过192.168.3.2地址访问路由器;

接着把N1通过网线连接到路由器上,稍等片刻,即可通过192.168.3.1访问到N1;

旁路由非全局模式连接完成!

这里补充一点,默认N1 Openwrt的WIFI是开着的,为了安全性,我们可以选择关闭N1的WIFI,打开网络-无线,修改无线网络客户端为关闭;

第十节:旁路由安装V2ray

之前我们已经安装配置了VPS服务器端的v2ray,现在我们需要在N1旁路由上安装v2ray,使它提供v2ray客户端连接的能力连接到服务器端v2ray;

采用与服务器安装同样方法,通过SSH连接到N1机器进行相应的软件安装,这里的连接IP为N1的IP;

用户名密码同样是root和password,点击Log in

接着我们需要安装openwrt-v2ray,和相应的面板软件luci-app-v2ray,github地址如下;

openwrt-v2ray: https://github.com/kuoruan/openwrt-v2ray

luci-app-v2ray: https://github.com/kuoruan/luci-app-v2ray

通过以上地址可以了解到它们安装的具体步骤;

因为原始Openwrt可能已经安装了openwrt-v2ray的老版本,所有在执行安装步骤之前,我们需要先把原有的老版本进行删除,执行以下命令查找以安装的v2ray;

opkg list | grep v2ray

然后通过以下命令把他们一个个卸载掉;

opkg remove xxxxx(这里的xxxxx替换成上面搜索到的软件)

有些软件可能会有些依赖,需要让你先删除相应的依赖,才能删除该软件;全部删除之后,我们便可以开始安装openwrt-v2ray和luci-app-v2ray,按照前面两个图中的命令进行顺序执行,这里的步骤出错的可能性较大,大家需要有一点的耐心与解决问题的能力,尽量一次成功;

安装完之后,我们再次查看已安装的v2ray软件,显示如下;

说明已安装成功!

第十一节:旁路由配置V2ray

安装完v2ray之后,我们便可以进入N1的后台(192.168.3.1)进行相应v2ray配置,点击服务-V2Ray;

在全局配置中点击重载服务,如果之前安装正确,可以查询出已安装的版本信息V2Ray 4.23.1;

配置入站连接信息;

修改dokodemo_door;

点击保存;

配置出站连接信息;

修改upstream_vmess;

发送IP地址:N1地址

VMess地址:填写你服务器端的网站域名

VMess端口:https端口443

VMess用户ID:填写服务器端记录的v2ray UUID

VMess用户AlterID:填写服务器端记录的v2ray alterID

底层传输配置-网络:WebSocket

底层传输配置-传输层加密:TLS

WebSocket-路径:填写服务器端配置路径/V2ray

然后切换到透明代理tab

选择入站中配置的dokodemo_door-1081,代理模式选择直连CN,选择了这个模式,我认为国内网站它就不会走v2ray,预先过滤掉国内流量,在下一节中我们也会通过测试看到设置这个代理后,我们访问国内的IP为中国的IP;最后点击保存与应用使配置生效,这样N1客户端的v2ray也配置完成。

第十二节:最终效果测试

现在已经配置完VPS服务端和N1客户端的V2ray,只需要再配置下个人电脑的网关,使个人电脑通过N1访问到VPS的站点,便能通向外网。打开网络配置,把网关配置成N1地址192.168.3.1;

配置保存后,前面如果一切正常的话,我们就可以尝试连接外网了,打开油管,搜索播放一个8K的片子,测试下速度,可以看到我这里的连接速度最高可以达到4W Kbps,8K基本流畅,只是这个相当耗流量,而我购买的VPS每个月是600G的流量,偶尔看看还是可以接受的;

然后我们打开以下网址;

http://www.ip111.cn/

可以看到我们从国内测试,从国外测试走的是不同的IP,说明在前一节中的代理模式生效,否则全都显示国外的IP,也就是你购买的VPS的地址;

网速测试,也是显示的国内地址进行测试,基本达到我家200M的网速;

https://www.speedtest.cn/

第三部分:扩展功能

前两部分已经介绍完整个搭建Bt+Nginx+TLS+Websocket+V2ray,实现了全屋科学Surfing的过程,接下来看一下有了外网服务器和内网旁路由,它们能够带来的一些其它功能(如果不需要这些功能,完全可以忽略)。

第十三节:VPS服务器搭建个人博客

既然我们VPS服务器,那我们就可以搭建个人的博客网站,通过宝塔Bt面板快可以速搭建基于WordPress的个人博客(WordPress是一个使用PHP语言开发的开源博客项目);

首先安装一键部署源码插件,打开软件商店;

安装宝塔一键部署源码的插件;

安装完后点击设置;

点击Wordpress后面的一键部署按钮;

然后填写已通过动态域名解析的域名(这里的域名也同样需要按照第四节a)中的步骤添加一个二级的域名解析,我这里添加的二级域名是blog.xxxxx.com),请记住这里的数据库名称和密码,点击提交;

现在我们就可以打开域名,通过引导页进行配置;

填写刚才已记录的数据库名,用户名和密码

最好也修改一下表前缀,然后点击提交;

填写站点标题,用户名,密码,真实电子邮件,请务必记住设置的用户名和密码,用于搭建完成后的后台登录;

安装完成之后,便可以打开你的个人博客域名进行访问,并且通过管理后台进行配置和管理。

http://blog.xxxxx.com/wp-login.php

d)优化WordPress内存占用

由于我们购买的VPS内存较小(765M),所以需要优化一下PHP的内存使用,以减少服务器的内存开销,通过以下步骤进行配置;

首先登录宝塔面板,打开软件商店,找到已安装的PHP5.6;

点击后面的设置按钮,点击配置修改菜单

把Max_execution_time:300改到60,然后点击性能调整菜单;

按照以上设置进行配置,减少性能并发进程的数量;

优化了PHP,当然也可以再优化MySQL的配置,我这边还没有进行尝试,留给大家自行探索。

第十四节:N1旁路由解锁网易云灰色音乐

最后我们再看一个利用N1旁路由,提供的一项黑科技服务,如果大家平时使用网易云听音乐的话,会发现里面越来越多的音乐变成灰色,不可打开,这个时候我们便可以利用旁路由中的解锁网易云灰色歌曲服务使这些音乐重新变成可听的状态,它的原理应该就是建立代理连接到其它音乐服务器上查找对应的音乐,比如QQ音乐,现在一起来打开该项服务,打开服务-解锁网易云灰色歌曲;

选择一个你希望搜索的音源,比如QQ音乐,或者虾米音乐等,然后点击启用;

接着切换到日志tab,查看以下该服务的端口,以下显示端口为5021或者5202;

最后打开网易云,进入设置代理服务器页面;

选择自定义代理,配置代理服务器为你的N1服务器地址,端口为刚才查询到的5201,保存后重启网易云,现在你能发现原来那些灰色的歌曲已经变成正常播放状态,当然如果通过代理的音源(比如虾米)也没有这首歌,那就会在服务的日志中记录并打印出来。

参考资料:

BT+V2Ray+Websocket+TLS+Nginx+CDN+ Reverse proxy

https://dongsheng.me/baotav2raywebsockettlsnginxcdn/

搭配宝塔BT面板,实现V2Ray的 Websocket+TLS+Nginx 分流

https://instar.me/archives/ed4e432a.html

V2Ray客户端

https://tlanyan.me/v2ray-clients-download/

V2Ray for OpenWrt的配置方法

http://loonlog.com/2020/3/13/v2ray-for-openwrt-config/

关于 N1 旁路由的设置

https://instar.me/archives/e806f8ac.html