自建KEXUE上网

背景

公司在海外设立了分部,出差给office配置了NAS,又申请了固定IP专线,这下好了,kexue上网的条件基本上满足了,这下可以自建kexue上网。

条件

实现kexue上网有很多方式,不限于购买现成的FQ软件、购买订阅使用crash等软件导入,或者自建机场导入。。要想实现自建kexue上网,必须满足几个条件:
1、一个带固定IP的主机(该主机可以是实体机、虚拟机、docker等等),且不占用80和443端口
2、一个域名,并解析到该固定IP
3、一个邮箱地址,用于caddy申请SSL证书,如果不填将不会申请证书,且caddy只监听80端口
其原理是模拟http的流量来达到防拦截。

搭建过程

购买VPS和预装系统(略)

购买VPS比较简单,关键是找比较稳定的和性价比高的

使用NAS搭建

这里推荐使用已经配置好的docker:https://github.com/anerg2046/Caddy_V2ray

此镜像使用vmess协议,配置相对简单,也可以用Trojan,相对复杂,但安全性更改,可以自行搜索其差异

只需配置好端口及路径即可,但测试中,网络需要选择host模式,不然网络访问异常(开了防火墙也不行,应该是跟NAS系统有关)

配置好后运行,在后台日志会有类似输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
=====================================
V2ray 配置信息
地址(address): 123.123.com
端口(port): 443
用户id(UUID): a736b1ef-a96e-4f35-8f6b-5b76a050e282
加密方式(security): 自适应
传输协议(network): ws
伪装类型(type): none
路径(不要落下/): /8768f5ff9/
底层传输安全: tls
=====================================
=========复制以下内容进行导入==========
vmess://ewogICAgInYiOiAiMiIsCiAgICAicHMiOiAidjIubW9vaW0uY29tIiwKICAgICJhZGQiOiAidjIubW9vaW0uY29tIiwKICAgICJwb3J0IjogIjQ0MyIsCiAgICAiaWQiOiAiYTczNmIxZWYtYTk2ZS00ZjM1LThmNmItNWI3NmEwNTBlMjgyIiwKICAgICJhaWQiOiAiMCIsCiAgICAibmV0IjogIndzIiwKICAgICJ0eXBlIjogIm5vbmUiLAogICAgImhvc3QiOiAidjIubW9vaW0uY29tIiwKICAgICJwYXRoIjogIi84NzY4ZjVmZjkvIiwKICAgICJ0bHMiOiAidGxzIgp9
=========复制以上内容进行导入==========
{"level":"info","ts":1656863534.6378205,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
{"level":"warn","ts":1656863534.6384249,"logger":"caddyfile","msg":"Unnecessary header_up X-Forwarded-For: the reverse proxy's default behavior is to pass headers to the upstream"}
.......

复制vmess开通那段到https://sub-web.wcc.best/生成crash订阅链接,然后从crash中新建添加订阅链接即可

局域网访问

如果使用一个订阅链接供给局域网使用,可以在crash软件中开启局域网访问,然后需要用到代理的就在系统代理中手动设置。

更加进阶的方法是,使用一台一直运行的主机(虚拟机)安装linux版脚本,家用的话可以从路由器中安装shellcrash,也就是linux版本的crash:
https://github.com/liyaoxuan/ShellClash?tab=readme-ov-file

安装最新版本,导入自定义的配置,然后建一个脚本(服务器自行更改),双击自动代理:

1
2
3
4
5
6
7
8
9
10
11
12
@echo off
set PROXY_SERVER=192.168.1.200:7890

echo System proxy is setting with %PROXY_SERVER%...
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d %PROXY_SERVER% /f

:: notice system proxy setting has been changed

echo The system proxy has been setup successfully !!
echo Now you can close the window .
pause

关闭代理的脚本:

1
2
3
4
5
6
7
8
@echo off
echo system proxy is closing ...
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f

:: notice system proxy setting is change

echo system proxy has been closed ..s
pause

保存为bat格式,双击运行即可

分享到