巧用Windows的Linux子系统,安装xray实现vless+reality科学上网

一、引言

由于业务需求,我有一些Windows系统的VPS。这些机器都是带独立公网IP的,有些还是对国内环境友好的cn2专线。于是我就想干脆就把这些机器都利用起来吧,搭建好科学上网的节点,作为备用。由于我习惯了Ubuntu环境下的一键部署(懒人包),所以就想到利用Windows的子系统功能,用来运行Ubuntu。这样就可以免去Windows环境下繁琐的配置文件,实现用网页界面来创建和管理上网节点。如果你是不熟悉Linux的新手,那这篇文章肯定能帮助你在windows环境下搭建起自己的科学上网节点。

二、子系统的选择

Windows的版本是Server 2019,由于2019 AppX部署器的限制,最好是选择ubuntu 20.04作为Linux子系统,否则可能会出现子系统安装的兼容性问题。

首先是开启Linux子系统功能,在Powershell运行如下代码

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -All -NoRestart

确认启动生效之后,手动重启电脑

重启后确认状态

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : 适用于 Linux 的 Windows 子系统
Description : 为 Windows 上运行的本机用户模式 Linux shell 和工具提供服务和环境。
RestartRequired : Possible
State : Enabled

可以看到Linux子系统已经启动成功。这里需要特别注意一下,默认情况下server 2019开启的是WSL 1,也就是一代。一代子系统有一个好处就是它的网络是和主机共享的,但是缺少真正的Linux内核。对我们来说正好,我们不用再额外配置网络。

三、子系统安装

直接通过Powershell下载

Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile C:\ubuntu2004.appx -UseBasicParsing

这个过程会有点慢,大概半小时左右,视自己的网络条件而定。

下载完成后直接安装

Add-AppxPackage C:\ubuntu2004.appx

打开左下角的开始界面,就可以进去Ubuntu系统了,第一次进系统需要安装并设置密码

四、安键X-UI管理软件

安装之前先更新一下软件源

sudo apt update

复制并运行下方的x-ui一键安装代码

curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/956bf85bbac978d56c0e319c5fac2d6db7df9564/install.sh -o /tmp/xui-install.sh && sudo bash /tmp/xui-install.sh 0.3.4.4

安装的过程中会要求我们指定管理员账号密码和端口,记得保存下来。如果忘记了也没关系,直接在Linux终端运行 x-ui 命令重置就行了。

常用管理命令如下,基本上只需要用到x-ui。

sudo x-ui

进去菜单之后,界面如下

这里有一个需要注竟的点,WSL1是没有内核的,所以这里默认情况下,后台面板肯定是自动启动不了的,同理bbr加速也是不用想了。不过其实影响也不大,毕竟当前国内这个环境,影响上网速度的是线路。选择我推荐的机房,速度和价格都没有太大的问题,甚至可能是最优解。参考这篇文章,链接。

手动输入命令启动后台网页管理面板。注意Windows系统每次重启之后都要打开Ubuntu,重新输入下面的命令启动xui管理界面和xray服务,这是WSL1的限制。一般配置好了之后,也不需要重启。我最长的一台机器,已经稳定运行一年多了。

sudo sh -c 'cd /usr/local/x-ui && nohup ./x-ui > /var/log/x-ui.log 2>&1 &'

查看一下进程,确认一下x-ui网页台台管理页面是否成功运行

ps aux | grep '[x]ray'

root 1172 0.0 0.5 4939052 14284 tty1 Sl 17:23 0:00 bin/xray-linux-amd64 -c bin/config.json
显示已经成功启动,之后我们就可以通过网页访问台平管理界面,并配置科学上网的节点了。

五、开启防火墙

我们刚才说过在Windows WSL1环境下,咱们的Ubuntu子系统是和Windows主机共用网络栈的,想要通过外网访问平台界面,还需要放行用于管理的8888端口,要不然后台管理界面肯定是上不去的。直接在Powershell终端输入如下命令。注意,这里是Windows的Powershell终端,不是Ubuntu子系统终端,别弄混了。

New-NetFirewallRule -DisplayName "x-ui TCP 8888" -Direction Inbound -Protocol TCP -LocalPort 8888 -Action Allow -Profile Any

成功之后会弹出显示正确的防火墙列表信息,这个时候,就可以通过 http://域名:8888 来访问管理界面了。我们顺带着把一会要用到的代理节点的端口也放行了,就用9999作为节点端口好了。注意不要用443这种敏感端口,容易导致IP被墙。

New-NetFirewallRule -DisplayName "x-ray TCP 9999" -Direction Inbound -Protocol TCP -LocalPort 9999 -Action Allow -Profile Any

六、更新xray内核

进入后台管理界面之后,第一件事,更新内核。因为默认的内核比较老了,可能只支持ws传输方式。而我们要配置的的是vless协议加reality方式混淆。这种方式可以完美的伪装自己的上网目标地址,是当前最稳定,也是最不容易被针对的科学上网方法之一。我这里推荐选择v26.4.25版本,目前我这边使用起来是非常稳定的。

点击版本号,选择v26.4.25

等待后台更新,很快就切换到目标版本

七、创建上网节点

点击入站列表,通过添加入站的方式创建节点

随便输入一个备注名,并且修改一下入站端口,也就是我们刚才在防火墙里面,提前放行的9999端口。这里还必须添加一个用户,可以根据自己的需求,设置到期时间和流量限制。

然后打开reality选项

出现如下界面,点击添加

这样节点就创建好了。

贴心提示:如无必要,不要点击左边列表的面板设置功能,出于安全考虑,它会强行给你生成一个网址路径。如果不上心触发了,就把这个路径保存下来。下次登录的时候就是 http://域名:8888/路径 才能访问后台管理界面。

八、客户端设置

在入站列表里对应的节点上,点击“操作”-“二维码”。如果是桌面端的话,就复制链接,在客户端软件界面,ctrl + v粘贴,客户端软件会自动添加节点,或者用手机客户端扫码。

客户端可以去这个链接下载

再说一个我遇到的Windows版本客户端下的bug,大概是我这里提供的客户端软件有一点点老了。如果是通过复制链接添加的节点,它会解析不了shortIds,导致客户端的shortId为空。在客户端点开编辑服务器之后,你会发现ShortId是空值。如果是手动一项一项对着服务端节点配置添加的,就没有这个问题。

少了一个个配置,本地肯定是连不上节点的。解决的办法也很简单,通过编辑节点打开服务端节点的配置选项,手动从服务器的节点配置上,选择一个随便填到缺失的客户端上就行了,比如“11”,保存之后,就可以正常连接了。

九、测速

我这个VPS属于常规线路,在没有开BBR的情况下,Youtube还是轻轻松松满足1080P的需求,主要我这个显示器不支持4k,Youtube这边传输速度会被限制。我在4K电视上试过,如果是优质线路,Netflix和Disney 4K都是秒开。你学会了吗?

发表回复 0

← Index