编者注:本站前些日子,只经过简单测试,认为sing-box搭建的hysteria节点没有https://github.com/emptysuns/Hi_Hysteria脚本搭建的节点快,看了该网友的投稿后,证明此结论应是错误的。关于文章有任何疑问请访问天地行论坛https://tiandixing.org/viewforum.php?f=58发帖交流。
1.准备工作
使用proxySu在vps上搭建一台vless+websocket+tls的xray节点。因为proxySu完全属于傻瓜化操作,这里不做赘述了。域名如果托管在cloudflare的话,不要开启小黄云,否则后面搭建的hysteria无法使用。
这样做,主要是两个目的,一个是让caddy来管理网站证书的申请续期比较方便(proxysu采用的web服务器软件是caddy)。另外就是vps的ip如果哪天被抽风的gfw封了,你只需将域名托管至cloudflare,然后开启小黄云,仍然能使用xray愉快翻墙。当然不搭也是可以的,请看后续内容。
proxySu申请的证书存放路径:/usr/local/etc/xray/ssl/xray_ssl.crt 和 /usr/local/etc/xray/ssl/xray_ssl.key
有时,caddy更新了证书,xray会出现感知不到的情况,需要重启一下xray才行。所以,为了减少麻烦。可以设置一个定时任务,让vps每天重启一次。
建立计划任务 crontab -e 如出现下面这个提示,是要你选择一款编辑工具,根据自己使用习惯选择一下即可。 Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/vim.basic 3. /usr/bin/vim.tiny 4. /bin/ed
Choose 1-4 [1]:
在出现的编辑界面中,在文档的最好添加一行如下内容,数字3表示凌晨3点重启,你也可以改成另外的时间。添加完毕,保存退出。
0 3 * * * /sbin/reboot
2.服务端搭建
基于目前最新正式版1.05。新的正式版出来后,大家可以将命令中的文件名换成最新的即可。
singbox下载解压及赋权限(以下四行是一条命令,请一起选择复制粘贴) curl -Lo /root/sb https://github.com/SagerNet/sing-box/releases/latest/download/sing-box-1.0.5-linux-amd64.tar.gz && tar -xf /root/sb && mv /root/sing-box-*-linux-amd64/sing-box . && rm /root/sb -r /root/sing-box-*-linux-amd64 && chown root:root sing-box && chmod +x sing-box
编写配置文件
nano /root/sing-box_config.json
在文件中粘贴如下内容,颜色标为红色的部分,请改为你自己的相应内容。然后保存退出。
1234是你hysteria的服务端口,Password认证密码,test.example.com是申请证书所使用的域名。 { "log": { "level": "info" }, "inbounds": [ { "type": "hysteria", "tag": "hysteria-in", "listen": "::", "listen_port": 1234, "up_mbps": 100, "down_mbps": 500, "auth_str": "Password", "tls": { "enabled": true, "server_name": "test.example.com", "alpn": [ "h3" ], "certificate_path": "/usr/local/etc/xray/ssl/xray_ssl.crt", "key_path": "/usr/local/etc/xray/ssl/xray_ssl.key" } } ] }
建立systemd服务文件
nano /etc/systemd/system/sing-box.service
在文档中粘贴如下内容,然后保存退出。
[Unit] Description=sing-box, The universal proxy platform. Documentation=https://github.com/SagerNet/sing-box After=network.target
[Service] User=root CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_NET_RAW AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW NoNewPrivileges=true WorkingDirectory=/root ExecStart=/root/sing-box run -c /root/sing-box_config.json Restart=on-failure RestartPreventExitStatus=1 RestartSec=5
[Install] WantedBy=multi-user.target
设置singbox开启启动,并启动程序: systemctl daemon-reload && systemctl enable sing-box systemctl start sing-box
查看是否正常启动 systemctl status sing-box
3,客户端配置
访问https://github.com/SagerNet/sing-box/releases,下载对应系统和版本的客户端。假设是win64。则下载链接为https://github.com/SagerNet/sing-box/releases/download/v1.0.5/sing-box-1.0.5-windows-amd64.zip,解压后,得到可执行文件sing-box.exe。
在sing-box.exe文件同一位置建立文本文档,粘贴如下内容保存后,在没有隐藏文件扩展名的情况下将文件重命名为config.json 该客户端配置文件设定的本地监听端口为1080,可根据自己需要进行修改。"outbounds"中的红色内容要保持和服务端一致。 { "log": { "level": "info", "timestamp": true }, "inbounds": [ { "type": "mixed", "tag": "mixed-in", "listen": "::", "listen_port": 1080, "set_system_proxy": false } ], "outbounds": [ { "type": "hysteria", "tag": "hysteria-out", "server": "test.example.com", "server_port": 1234, "up_mbps": 25, "down_mbps": 125, "auth_str": "Password", "disable_mtu_discovery": false, "tls": { "enabled": true, "disable_sni": false, "server_name": "test.example.com", "insecure": false, "alpn": [ "h3" ] }, "connect_timeout": "5s", "tcp_fast_open": false } ] }
在sing-box.exe文件同一位置建立文本文档,粘贴如下内容保存后,在没有隐藏文件扩展名的情况下将文件重命名为run.bat。
"%~dp0\sing-box.exe" run -c config.json
双击运行run.bat后,不要关闭黑色窗口。由于本配置并未启用系统代理,请主动将浏览器设置为使用代理状态才能访问被墙网站,代理地址和端口为127.0.0.1:1080,协议选择http或socks5都可。如果你需要,可将客户端配置中的"set_system_proxy": false改为"set_system_proxy": true,本配置也未启用按规则分流,所以你不需要使用浏览器翻墙时,请关闭浏览器代理设置或关闭系统代理。
4.后话: 关于 "up_mbps"和"down_mbps"的设置以及证书
使用的是不到10美元1年的拉垮小机,操作系统为ubuntu,1G共享带宽。起初是按照将服务端的up_mbps和down_mbps设置为与客户端一致,up_mbps设置为25,down_mbps配置的是125。在网络比较空闲时测试出的结果,看油管4k视频连接速率在2万上下。随后试着将服务端的数值翻倍调大,设置为50和250,发现速率提升到4万左右了,再调高,设置为100和500,连接速率基本达到vps的最好状态7万上下了。再调高200和1000,在测试小机上效果已不明显。因为是共享1G的带宽,最大只能设置为1000,再调大已无意义。各位网友可以根据自己vps的情况调整为适合的最佳数值,我这里只是简单的每次都翻倍调大,有耐心可以按1.X倍慢慢精调。
如果你并不想按照本教程前面说的“使用proxySu在vps上搭建一台vless+websocket+tls的xray节点”,则需要手动申请安装下证书。当然,sing-box有关于acme的相关配置,只是个人感觉用的不太顺手。有兴趣的网友请自行研究。
单独申请证书命令如下,申请前需要开放80和443端口。test.example.com 换成你自己的域名,test123456@gmail.com可以随便编一个。 apt install -y socat curl https://get.acme.sh | sh ~/.acme.sh/acme.sh --register-account -m test123456@gmail.com ~/.acme.sh/acme.sh --issue -d test.example.com --standalone 以下两行是一条命令,请全部选定再复制粘贴 ~/.acme.sh/acme.sh --installcert -d test.example.com --key-file /root/private.key --fullchain-file /root/cert.crt
hysteria服务端关于证书的配置改为如下:
"certificate_path": "/root/cert.crt", "key_path": "/root/private.key" |