我原服务器是使用Shadowsocks-rust作为服务端进行前置代理的,搭设略显复杂,周末折腾了下sing-box作为服务端,搭设十分简单,且支持更多协议,配合路由器上homeproxy,感觉速度更快了(可能心理作用)。
Sing-box支持Shadowsocks、Socks5、REALITY、Hysteria2、TUIC、 Trojan、VLESS-WS-TLS等多种协议使用。只要配置得当,通过不同的端口号,可以同时使用这些协议。这里以Shadowsocks、Socks5、REALITY这3个为例,介绍下搭建过程。
一、安装Sing-box服务端
Singbox官方有一键脚本,debian搭设一行命令解决。
bash <(curl -fsSL https://sing-box.app/deb-install.sh)
如果报错curl,可以用下列命令解决
apt update apt install curl -y
有的debian系统还报错脚本,是没有安装sudo的原因
apt install sudo
执行完,只需要写入配置文件就可以使用了,配置文件文件位置在/etc/sing-box/config.json
。
先启用singbox,
# 开机自启 systemctl enable sing-box # 启动singbox systemctl start sing-box
二、更改配置文件
官网wiki提供了配置文件解读,可以查看https://sing-box.sagernet.org/configuration/,这里介绍下Shadowsocks、Socks5、REALITY这3个,简单方便,无需自己配置TLS。
Socks5这个无特殊的配置要求,REALITY由于需要”借用证书“,有些要求。通过下列命令生成uuid,及公私钥。Shaodowsocks如果用2022系列加密方式也需要通过命令获取密码。
# 生成Shaodowsocks 2022 methods key 16位2022-blake3-aes-128-gcm sing-box generate rand --base64 16 # 生成uuid sing-box generate uuid # 生成公私钥,请记录保存 sing-box generate reality-keypair
REALITY对于非合法的代理流量会转发至TLS指向的源站,如果源站套用了CDN会导致流量被有心人士偷跑。所以借用证书的网站需没有套知名的CDN,如Cloudflare、Gcore等。也不要选用大公司的网站如amazon.com等,大公司会公开他们的IP地址段,非他们IP段内服务都是假冒或反代,这给GFW封锁提供了便利。所以我们需要找寻那些没有套CDN的不知名网站域名或自己的域名。
singbox完整配置文件如下:
{ "log": { "disabled": false, "level": "warn", "timestamp": true }, "inbounds": [ { "type": "socks", "tag": "socks-in", "listen": "::", "listen_port": 1080, "users": [ { "username": "vpssocks5", "password": "SE63DkP46pMBd8N4" } ], }, { "type": "shadowsocks", "tag": "ss-in", "listen": "::", "udp_timeout": "5m", "udp_fragment": true, "listen_port": 9527, "method": "2022-blake3-aes-128-gcm", "password": "PdvPaKfhCPH/aFO7M7NBZw==" }, { "type": "vless", "tag": "vless-in", "listen": "::", "listen_port": 443, "users": [ { "uuid": "97672916-60a5-4581-a915-22a707c614fc", "flow": "xtls-rprx-vision" } ], "tls": { "enabled": true, "server_name": "www.wow.com", // 借用证书的域名,tls1.3,h2 "reality": { "enabled": true, "handshake": { "server": "www.wow.com", "server_port": 443, }, "private_key": "SEwxvL8O_O1qee-T7LnajVvy3uZNiOhnV0YxjXFLikU", // 刚才生成的私钥 "short_id": [ "8848" //// 客户端ID之一,0 到 f,长度为 2 的倍数,长度上限为 16 ], "max_time_difference": "1m" } } } ], "outbounds": [ { "type": "direct", "routing_mark": 100 //设置 netfilter 路由标记,供防火墙使用 } ] }
将上述文件放到记事本里修改为自己的。"uuid": "97672916-60a5-4581-a915-22a707c614fc"
, 后面不能加注释否则报错。
然后写入配置文件:
rm /etc/sing-box/config.json nano /etc/sing-box/config.json
黏贴自己的配置文件后 ctrt+x
退出, y
并保存。
重启singbox
systemctl restart sing-box
查看状态:
systemctl status sing-box
如果失败,没有”active (running) “,可以查看日志看看哪里配置错误
journalctl -u sing-box --output cat -e
至此服务器搭建sing-box完成了。1080是socks5代理端口,9527是shadowsocks代理端口,443是reality代理端口,一个服务器同时提供3种服务,可玩性还是不错的。
查看sing-box端口占用情况:
root@example:~# netstat -tulnp |grep sing-box tcp6 0 0 :::1080 :::* LISTEN 522/sing-box tcp6 0 0 :::443 :::* LISTEN 522/sing-box tcp6 0 0 :::9527 :::* LISTEN 522/sing-box udp6 0 0 :::9527 :::* 522/sing-box
三、客户端设置
上面没报错的话,根据配置文件的协议、端口、密码等填入客户端,现在就可以完美科学上网了。reality配置里需要填入上述生成的公钥。homeproxy的reality设置图:
技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/net/2175.html