1
IvanLi127 2023-11-15 01:09:52 +08:00 via Android
歪个楼。感觉这需求上个软路由 ,跑 “open 某猫咪” 就有了。
|
2
billlee 2023-11-15 07:39:37 +08:00
stunnel 和 socks5 也不是什么复杂的东西,你改下配置把 log 关了就好了啊
|
3
CloudyKumori OP @IvanLi127 朋友不会弄这个,我倒是可以用软路由,主要是怎么共享出去给他们用
|
4
CloudyKumori OP @billlee 我也想过关 log ,奇怪的是我用 docker run --log-driver none 之后,stunnel 的容器直接废了,不起作用
|
5
mohumohu 2023-11-15 10:44:26 +08:00
你都用 Zerotier 了,直接 Zerotier 路由到网关不就好了
|
6
szdosar 2023-11-15 11:07:50 +08:00
意思是:
1.手机想连接 socks5 代理服务器,但是这个 socks5 代理服务器在 Zerotier 网络上? 2.问题是,你是在内网电脑上提供 socks5 代理服务吗? 3.那你找台公网电脑中转,用 gost 转发出来就好了呀,假设你都用 1080 端口提供服务 ---用法:gost -L=设置本地用户名:设置本地密码 @:1080 -F=socks5://连接远程用户名:连接远程密码 @提供服务的网址或 ip:1080 ---项目地址: https://github.com/ginuerzh/gost |
7
szdosar 2023-11-15 11:11:07 +08:00
比如 gost -L=localname:localnamepassword@:1080 -F=socks5://rmname:[email protected]:1080
|
8
chaodada 2023-11-15 12:03:41 +08:00
软路由有个 ipsec vpn 我直接用它
|
9
CloudyKumori OP 手机端的 zerotier 路由所有流量占用了 vpn 的接口,所以没办法再连到 socks5 端口,这个就是目前我遇到的问题
|
10
CloudyKumori OP @mohumohu 手机端的 zerotier 路由所有流量占用了 vpn 的接口,所以没办法再连到 socks5 端口,这个就是目前我遇到的问题
|
11
CloudyKumori OP @szdosar 1.是的 2.是的,socks5 在 zerotier 网络里的一个叶节点上,也就是内网电脑 我试试 gost ,请问 gost 需要特殊的客户端支持吗,iOS 上的小火箭可不可以直接使用 socks5 over tls 来连接 gost 呢
|
12
szdosar 2023-11-15 12:40:20 +08:00
通用客户端,没啥特殊的,gost -L socks5+tls://:1080
--https://v2.gost.run/socks/ gost 转发用的,你转出的协议,可以不用 socks5 转出。 比如用 ss 或 ws 转出也行,这些协议在安全掌控方面,有成熟的客户端可用 |
13
billlee 2023-11-15 13:04:32 +08:00 via Android
@CloudyKumori 改 stunnel 和 socks 服务器的配置文件
|
14
CloudyKumori OP @szdosar 感谢,这个方案应该可以!不过刚刚用 docker 容器设置 gost -L 这个命令的时候说格式不正确,得再研究一下。。
|
15
wkmike 2023-11-15 20:48:21 +08:00
“只有某些特定的域名能通过服务”,zerotier 应该和 wireguard 差不多吧,可以试试下面这张方式:
1 、家中 clash 开启 fake-ip 模式,用于将你的特定域名解析为 fake-ip ,并且主路由做好静态路由; 2 、WG 客户端节点添加 WG 网段、内网网段和 fake-ip 段路由,设置 dns 为家中 clash 内网地址; 3 、手机段连接 WG 后访问网站只有解析特定域名返回 fake-ip 走隧道回去过 clash 代理,其他都是正常 IP 走手机网络; |
16
CloudyKumori OP @wkmike WG 目前还没办法很好的从服务器端控制客户端的访问权限吧,只要用户自己改客户端就能做到流量全部走 WG ,比较危险,之前也想过用 WG ,不过后面实测比较难搞,就放弃了
|
17
CloudyKumori OP @szdosar 您好,我这几天尝试了一下,目前很多很多客户端好像对 GOST 这种隧道支持的不是很好,大部分客户端会劫持 DNS ,使用 DOH 的时候把 SNI 给加密了,导致 Clash 的 SOCKS 端口没办法正常识别域名然后分流,就全部拒绝连接进而直接断网。关掉了 DOH 使用明文解析以后,又因为所有的请求都被解析成了 IP 地址,到了 Clash 这边 IP 地址和域名白名单对不上又直接断网了,想请教一下有没有什么好的方案或者客户端解决这个问题呢?我想让 SS 隧道啥也不干,就一股脑的转发流量给 Clash 的 socks 端口,让 Clash 负责解析域名分流,移动端的客户端总是会自作主张的在本地就给解析出 DNS 的结果,搞得分流完全没法用
|
18
szdosar 2023-11-17 15:34:30 +08:00
楼主你写得好复杂,我都没看懂。好吧,我再提供一个方案。
1.前提:假设你的现在有服务端 vps (以 ubuntu 为例)公网提供这个转发服务 2.安装 x-ui 面板 --项目地址: https://github.com/vaxilu/x-ui --记得更新一下 geosite 数据库( very 重要,不然你会发现你配置 geosite 时,你的 xray 拒绝提供服务) --更新指令 wget https://github.com/v2fly/domain-list-community/releases/latest/download/dlc.dat -O /usr/local/x-ui/bin/geosite.dat 3.去 web 端“xray 相关设置”,配置转发你本地的 socks 代理 ''' #在 outbounds 段插入以下配置,注意结尾是否需要逗号 { "tag": "netflix", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "ota": false, "port": 1080, "level": 1, "users": [ { "user": "username", "pass": "userpassword", "level": 1 } ] } ] }, "streamSettings": { "network": "tcp" }, "mux": { "enabled": false, "concurrency": -1 } } #在 routing 段插入以下配置,注意结尾是否需要逗号 { "type": "field", "outboundTag": "netflix", "domain": [ "geosite:netflix" ] } 4.然后去 web 端 inbounds 页面设置的感兴趣的模式即可 |
19
CloudyKumori OP @szdosar 非常感谢老哥的耐心回复,解释的这么详细真的太感动了,我去试试看这个方案行不行。不过作为一个喜欢折腾的发烧友,我还是很好奇为什么移动客户端会强行把所有的 SNI 变成 IP 地址的形式而不是保留域名。我用流程解释一下这个流程吧,希望您能给点建议:
Shadowsocks 等 Android 代理客户端 ---- (使用软件内设置的远程 DNS 查询 google.com 的 IP) --->>1.1.1.1 DNS --->>(拿到了 google.com 的 IP !而且 IP 是 1.2.3.4 ,拿着这个 IP 去 Clash 的 Socks5 端口请求代理) --->> Clash 的 Socks5 端口:(收到了你的代理请求,但是 1.2.3.4 是啥东西,我没见过啊,白名单里面只有 google.com 可以通过,我只认域名不认 IP ,不知道你这 1.2.3.4 不知道是去往哪个域名的,直接 REJECT !) ---->> 浏览器提示:ERR_CONNECTION_CLOSED 。 事情大概就是这样,这些代理软件把本该是带着域名的请求解析成了 IP 发给了 Clash 的 Socks5 代理端口,结果 Clash 认不出来就全部拒绝了连接,所以不知道有没有办法让这些软件带着域名发起连接请求?我测试了一下 v2rayNG 的客户端,里面有个功能是叫做“启用流量探测”的功能,可以从流量中探测域名,开启这个功能后所有的请求都是带着域名发向 Clash 的,这时候分流规则就正常运行了,只是像 nekobox, shadowsocks,shadowrocket 客户端没有这个选项就非常麻烦 |
20
szdosar 2023-11-17 17:18:39 +08:00
我反正没太看懂你的网络拓扑,你描述的这么一大段,是在手机上吗?
为何手机 Shadowsocks 等 Android 代理客户端还要在转给 Clash 的 Socks5 端口? Clash 也在手机上? 或者说你手机只有一个客户端? --------------------------- {Shadowsocks 等 Android 代理客户端 ---- (使用软件内设置的远程 DNS 查询 google.com 的 IP) --->>1.1.1.1 DNS --->>(拿到了 google.com 的 IP !而且 IP 是 1.2.3.4 ,拿着这个 IP 去 Clash 的 Socks5 端口请求代理) --->> Clash 的 Socks5 端口:(收到了你的代理请求,但是 1.2.3.4 是啥东西,我没见过啊,白名单里面只有 google.com 可以通过,我只认域名不认 IP ,不知道你这 1.2.3.4 不知道是去往哪个域名的,直接 REJECT !) ---->> 浏览器提示:ERR_CONNECTION_CLOSED 。{ |
21
szdosar 2023-11-17 17:35:17 +08:00
而且,你都说了{我测试了一下 v2rayNG 的客户端,里面有个功能是叫做“启用流量探测”的功能,可以从流量中探测域名,开启这个功能后所有的请求都是带着域名发向 Clash 的,这时候分流规则就正常运行了},那你用安卓端的 v2rayNG 不就行了? ta 也有这个功能,也叫 [启用流量探测] ,好像还有个叫 [启用本地 dns] 功能,这些组合,你试试?
|
22
szdosar 2023-11-17 17:47:00 +08:00
另外,服务端(比如,你的 vps )用 x-ui ,你配置开启 inbounds 是,默认勾选 sniffing ,ta 也会帮你探测。所以,你的问题可能纠结在 clash ,这玩意不是删库了吗?
|
23
CloudyKumori OP @szdosar 是的,是在手机上,这一连串的网络活动只涉及到我内网的一台电脑,和一个在公网的手机,Clash 就是在内网主机里面运行。因为我想的是让朋友从外网安全的进入内网共享我主机上的 Clash socks5 端口实现黑白名单访问控制,并且流量会再由 Clash 进一步转发(相当于链式代理了吧),所以会搞得这么麻烦,现在想想我这个需求也是挺抽象挺折腾的。。。不过目前问题初步解决了,安卓端就是流量探测、域名策略和远程 DNS 这三个问题相互影响导致了 ERR_CONNECTION_CLOSED 这个问题。目前 IOS 端有没有这个流量探测的选项还不太清楚知道,我找了小火箭里面貌似没有,请问“ta”是 iOS 端的软件吗,全称是什么呢,我去看看
|
24
CloudyKumori OP @szdosar Clash 确实删库了,不过目前还没找到比较完善的替代品,因为分流规则用的是 Clash 格式的所以就暂时用着先了。x-ui 能用的话我一会儿再折腾一下试试,感谢感谢!
|
25
szdosar 2023-11-17 18:18:20 +08:00 via iPhone
1.先说客户端的问题,
Surge iOS 客户端 代理请求本地 DNS 映射,这个选项默认不开启就好了 默认情况下,使用代理策路时域名解析一定在远端服 务器上进行 开启该选项后,如果访问的域名配置有本地 DNS 映射,Surge 将使用本地 IP 地址进行请求,不在远端进 行解析。 2.第 2 个可选方案,你电脑上,不要让 clash 去接管,用别的软件不行吗? |
26
CloudyKumori OP @szdosar 感谢回答,我试试 surge 。目前感觉电脑上用的比较舒服而且功能完善的就是 clash 了,如果要别的软件替代的话,请问有什么好的备选吗
|
27
szdosar 2023-11-17 18:56:44 +08:00 via iPhone
你这台主机的操作系统是不是 linux 发行版?那你就用刚才我说的 x-ui 就可以了。实在不行就在虚拟机里面安装呗。
|
28
CloudyKumori OP @szdosar 是的,尝试过以后可以用,非常感谢!!😭🙏
|