原创使用docker服务器实现socks5转全局代理
介绍
我们常用的是socks代理,这在win的部分场景下很不方便。比如现在命令行的AI工具,以及不支持配置代理的软件,比如androidstudio,配置了代理也不确定某些插件是不是正常走代理 。
本文提供一个原创丝滑的方案,将socks5代理直接转全局代理,主要针对win场景,其他场景也支持。
具体来说使用xray的docker容器,将socks5转为Shadowsocks,然后使用outline客户端连接实现。
也就是实现将socks直接转为了VPN,好处是可以方便得在socks客户端配置分流策略
outline也支持各种客户端场景,连接断开速度都很快。
一开始我想的方案是,建立wireguard服务器,然后通过iptables策略将连接到wireguard的客户端流量转发到clash代理。
wireguard服务器建立成功,clash代理也成功,还带clash流量监控面板,客户端连接也成功,但是流量转发策略始终无效,比较遗憾。
灵机一动想到之前公司的代理软件outline,发现服务端可以适配Shadowsocks,应该是全网原创。对比其他全局代理方式还是有比较多优势的
不过wireguard有一个客户端版本wiresock,这个客户端支持支持在客户端层面做按IP和应用的分流策略。
后续可以考虑尝试在wireguard服务器外包一层outline全局代理,代替iptables+clash方案,也许可以实现更好的客户端体验。
docker配置
两个文件放在同一个目录下
具体端口,IP替换为自己的就行
docker compose
version: '3.8'
services:
xray:
image: teddysun/xray
container_name: xray-ss
restart: always
ports:
- "8388:8388" # Shadowsocks 端口
volumes:
- ./config.json:/etc/xray/config.json
config
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 8388,
"protocol": "shadowsocks",
"settings": {
"method": "aes-256-gcm",
"password": "yourpassword",
"network": "tcp,udp"
}
}
],
"outbounds": [
{
"protocol": "socks",
"settings": {
"servers": [
{
"address": "192.168.68.84",
"port": 10808
}
]
}
},
{
"protocol": "freedom",
"tag": "direct"
}
],
"routing": {
"rules": [
{
"type": "field",
"inboundTag": ["default"],
"outboundTag": "socks"
}
]
}
}
outline配置
搜索下载outline客户端
outline链接地址是ss://开头的
ss://BASE64(加密方式:密码)@服务器:端口/?outline=1
大概逻辑是这样,可以给chatgpt直接生成
参考
ss://YWVzLTI1Ni1nY206eW91cnBhc3N3b3Jk@192.168.68.184:8388/?outline=1