CHIZI-0618 / box4magisk

Use sing-box, clash, v2ray, xray tunnel proxy on Android devices.
GNU General Public License v3.0
920 stars 104 forks source link

hysteria核心tproxy连接超时 #45

Closed maxwellhouse102 closed 1 month ago

maxwellhouse102 commented 1 month ago

hysteria的配置文件应该没有问题,是从官版hysteria的配置文件中复制过来的,用官版可以正常运行 box4magisk模块启动之后,也可以成功连接上hysteria核心的socks端口 box4magisk配置为tproxy,白名单模式,通过代理的浏览器访问谷歌油管均失败,log显示dial timeout 切换成Redirect也是相同的结果

CHIZI-0618 commented 1 month ago

全部代理而不是使用白名单再使用浏览器呢?

maxwellhouse102 commented 1 month ago

不使用黑白名单模式时 使用tproxy时hysteria的log显示找不到hy2服务器地址,no such host,应该是解析不了设置的服务器域名 使用Redirect则log显示dial timeout

CHIZI-0618 commented 1 month ago

不使用黑白名单模式时 使用tproxy时hysteria的log显示找不到hy2服务器地址,no such host,应该是解析不了设置的服务器域名 使用Redirect则log显示dial timeout

我明白了,忘记 dns 解析的事了,目前的 tp 会劫持本地 53 端口至代理软件,对于 hy,就会导致 解析服务器域名要连接服务器,但连接服务器要解析服务器域名,鸡蛋问题

CHIZI-0618 commented 1 month ago

容易解决,取消 dns 劫持即可

maxwellhouse102 commented 1 month ago

我看hysteria的文档配置tproxy和redirect需要iptables做相应的设置,不知道dial timeout跟这有没有关系 另外box4的run_error_log有时会显示iptebles的icmp参数无效或者grep:no REGEX信息

CHIZI-0618 commented 1 month ago

我看hysteria的文档配置tproxy和redirect需要iptables做相应的设置,不知道dial timeout跟这有没有关系

box4 就做的这个事,只是因为https://github.com/CHIZI-0618/box4magisk/issues/45#issuecomment-2136415985 而流量环路, 你可以在 box.tproxy enable 后临时禁用 dns 劫持解决问题 参考命令为

tproxy_port=1536
iptables -t mangle -D BOX_EXTERNAL -p tcp --dport 53 -j TPROXY --on-port ${tproxy_port} --tproxy-mark 16777216/16777216
iptables -t mangle -D BOX_EXTERNAL -p udp --dport 53 -j TPROXY --on-port ${tproxy_port} --tproxy-mark 16777216/16777216

iptables -t mangle -A BOX_LOCAL -p tcp --dport 53 -j MARK --set-xmark 16777216/16777216
iptables -t mangle -A BOX_LOCAL -p udp --dport 53 -j MARK --set-xmark 16777216/16777216

当然,我还建议修改 box.config 内的 intranet 配置,仿照已有内容添加你的 hy 服务器 ip,比如你服务器 ip 为 1.14.5.14,则修改后的配置可为 intranet=(1.14.5.14/32 0.0.0.0/8 10.0.0.0/8 100.0.0.0/8 127.0.0.0/8 169.254.0.0/16 192.0.0.0/24 192.0.2.0/24 192.88.99.0/24 192.168.0.0/16 198.51.100.0/24 203.0.113.0/24 224.0.0.0/4 240.0.0.0/4 255.255.255.255/32) 修改后重载透明代理,box.tproxy renew,然后再执行我第一条所说的取消 dns 劫持命令

maxwellhouse102 commented 1 month ago

不会报no such host了,但是timeout,不知道是哪里的原因。。 error_hysteria.log:

2024-05-29T15:11:46Z    INFO   client mode
2024-05-29T15:11:46Z    INFO   TCP transparent proxy listening {"addr": ":1536"}
2024-05-29T15:11:46Z    INFO   UDP transparent proxy listening {"addr": ":1536"}
2024-05-29T15:11:46Z    INFO   TCP redirect listening  {"addr": ":7891"}
2024-05-29T15:11:46Z    INFO   HTTP proxy server listening {"addr": "127.0.0.1:10091"}
2024-05-29T15:11:46Z    INFO   SOCKS5 server listening {"addr": "127.0.0.1:10090"}
2024-05-29T15:12:12Z    INFO   connected to server {"udpEnabled": true, "tx": 0, "count": 1}
2024-05-29T15:12:13Z    INFO   update available    {"version": "v2.4.4", "url": "https://github.com/apernet/hysteria/releases", "urgent": true}
2024-05-29T15:12:22Z    WARN   TCP transparent proxy error {"addr": "10.48.45.111:47600", "reqAddr": "93.46.8.90:80", "error": "dial error: dial tcp4 93.46.8.90:80: i/o timeout"}
2024-05-29T15:13:02Z    WARN   TCP transparent proxy error {"addr": "10.48.45.111:42120", "reqAddr": "123.58.180.77:6002", "error": "dial error: dial tcp4 123.58.180.77:6002: i/o timeout"}
2024-05-29T15:13:02Z    WARN   TCP transparent proxy error {"addr": "10.48.45.111:42122", "reqAddr": "123.58.180.77:6002", "error": "dial error: dial tcp4 123.58.180.77:6002: i/o timeout"}

run_error.log

grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
grep: no REGEX
CHIZI-0618 commented 1 month ago

run_error.log 中的 grep 错误并不会影响 box 正常运行。

现在 Prerelease 已取消 hysteria 透明代理的 DNS 劫持,请确保你本地 DNS 服务器可正常解析 hysteria 服务器的域名。

maxwellhouse102 commented 1 month ago

好的 那如果是singbox核心的tproxy模式,run_error.log 中显示这个错误会影响使用吗

Bad argument `icmp'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `icmp'
Try `iptables -h' or 'iptables --help' for more information.
CHIZI-0618 commented 1 month ago

好的 那如果是singbox核心的tproxy模式,run_error.log 中显示这个错误会影响使用吗

Bad argument `icmp'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `icmp'
Try `iptables -h' or 'iptables --help' for more information.

不影响。

maxwellhouse102 commented 1 month ago

终于用上了,不过最后还是用的mihomo核心去连的hysteria 最新发现的问题: tproxy代理,使用白名单模式时,微信扫收钱吧二维码会加载不出来(微信没有放在白名单列表内,估计还有其他应用也会这样),切换成黑名单模式代理所有应用的话,就可以正常加载 如果使用Redirect代理,则白名单黑名单模式都正常

CHIZI-0618 commented 1 month ago

终于用上了,不过最后还是用的mihomo核心去连的hysteria 最新发现的问题: tproxy代理,使用白名单模式时,微信扫收钱吧二维码会加载不出来(微信没有放在白名单列表内,估计还有其他应用也会这样),切换成黑名单模式代理所有应用的话,就可以正常加载 如果使用Redirect代理,则白名单黑名单模式都正常

黑白名单与 fakeip 冲突,Redirect 非 clash 不会处理 dns 劫持