Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

开启透明代理之后外网无法访问 #50

Closed
iHuahua opened this issue Jul 11, 2024 · 7 comments
Closed

开启透明代理之后外网无法访问 #50

iHuahua opened this issue Jul 11, 2024 · 7 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@iHuahua
Copy link

iHuahua commented Jul 11, 2024

Bug描述

家里有NAS,宽带有公网ipv4+ipv6,开启clash ipv6支持,模式为TPROXY+NAT,开启透明代理之后,无法从外网访问内网。

另外,我给家里几台主机在路由器里配置了hosts,开启透明代理之后,hosts无法再解析,在config dns段配置了use-hosts似乎可以解决

dns:
    use-hosts: true

hosts:
    aaa.local: 192.168.xxx.xxx

不知道上面的问题是否为配置了hosts引起的

路由器信息:

您的路由器基本信息(反馈开发者帮您分析问题用):
+---------------------------------------------------------------+
| 操作系统 : Linux router 4.1.52 aarch64 ASUSWRT-Merlin-KoolShare|
| 固件版本 : RT-AX86U:koolshare梅林改版固件:388.4|
| 内存使用 : free: 381.27 MB,total: 912.07 MB,usage:  58.20%|
| 磁盘空间 : free: 54873.20 MB,total: 57943.94 MB,usage:   0.18%|
+---------------------------------------------------------------+
|>> vClash当前正在使用的软件版本:                                  |
|              vClash : v2.15.16                                |
/koolshare/scripts/clash_control.sh: line 1308: clash: not found
|       clash_premium :                                         |
|                  yq : v4.44.1                                 |
|                  jq : jq-1.7.1                                |
|>> vClash初始安装包自带的软件版本(分析是否个人更改过):                |
|              vClash : v2.15.16                                |
|       clash_premium : 2023.08.17                              |
|                  yq : 4.13.2                                  |
|                  jq : jq-1.5                                  |
+---------------------------------------------------------------+
vClash的转发规则,分析转发规则是否正常:
IPv4 地址配置 NAT 规则:
+---------------------------------------------------------------+
IPv4 地址配置 mangle 规则:
+---------------------------------------------------------------+
IPv6 地址配置 mangle 规则:
+---------------------------------------------------------------+

升级2.15.16之后,总报 /koolshare/scripts/clash_control.sh: line 1308: clash: not found 这个错误,现在的包这么大,AX86U这种路由器已经没法直接安装了,作者是否考虑把原来和clash和meta版拆封成两个包

@iHuahua iHuahua added bug Something isn't working help wanted Extra attention is needed labels Jul 11, 2024
@Awkee
Copy link
Contributor

Awkee commented Jul 11, 2024

/koolshare/scripts/clash_control.sh: line 1308: clash: not found 这个错误,我才注意到,是 clash内核的路径配置问题,不影响使用, v2.5.17 版本修复了路径问题。

你现在的iptables 规则都没有了,应该是出了什么问题。

我在 v2.5.17 版本只包含了一个 clash 内核,安装包缩小了一些。
你可以重新安装一下, 安装日志发一下,然后启动日志也发出来,分析一下问题。

@iHuahua
Copy link
Author

iHuahua commented Jul 11, 2024

/koolshare/scripts/clash_control.sh: line 1308: clash: not found 这个错误,我才注意到,是 clash内核的路径配置问题,不影响使用, v2.5.17 版本修复了路径问题。

你现在的iptables 规则都没有了,应该是出了什么问题。

我在 v2.5.17 版本只包含了一个 clash 内核,安装包缩小了一些。 你可以重新安装一下, 安装日志发一下,然后启动日志也发出来,分析一下问题。

iptables规则没有是因为我把透明代理关掉了,一打开就完全无法从外网访问内网的ipv6设备了,连路由器转发的ipv4端口到NAS也不通了

您的路由器基本信息(反馈开发者帮您分析问题用):
+---------------------------------------------------------------+
| 操作系统 : Linux router 4.1.52 aarch64 ASUSWRT-Merlin-KoolShare|
| 固件版本 : RT-AX86U:koolshare梅林改版固件:388.4|
| 内存使用 : free: 350.36 MB,total: 912.07 MB,usage:  61.59%|
| 磁盘空间 : free: 54873.14 MB,total: 57943.94 MB,usage:   0.18%|
+---------------------------------------------------------------+
|>> vClash当前正在使用的软件版本:                                  |
|              vClash : v2.15.16                                |
/koolshare/scripts/clash_control.sh: line 1308: clash: not found
|       clash_premium :                                         |
|                  yq : v4.44.1                                 |
|                  jq : jq-1.7.1                                |
|>> vClash初始安装包自带的软件版本(分析是否个人更改过):                |
|              vClash : v2.15.16                                |
|       clash_premium : 2023.08.17                              |
|                  yq : 4.13.2                                  |
|                  jq : jq-1.5                                  |
+---------------------------------------------------------------+
vClash的转发规则,分析转发规则是否正常:
IPv4 地址配置 NAT 规则:
-A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 1053
-A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 1053
+---------------------------------------------------------------+
IPv4 地址配置 mangle 规则:
-N clash_DIVERT
-N clash_XRAY
-N clash_XRAY_MASK
-A PREROUTING -p udp -m socket -j clash_DIVERT
-A PREROUTING -p tcp -m socket -j clash_DIVERT
-A PREROUTING -p udp -j clash_XRAY
-A PREROUTING -p tcp -j clash_XRAY
-A OUTPUT -p udp -j clash_XRAY_MASK
-A OUTPUT -p tcp -j clash_XRAY_MASK
-A clash_DIVERT -j MARK --set-xmark 0x1/0xffffffff
-A clash_DIVERT -j ACCEPT
-A clash_XRAY -p udp -m udp --dport 53 -j RETURN
-A clash_XRAY -p udp -m udp --sport 53 -j RETURN
-A clash_XRAY -m set --match-set localnet4 dst -j RETURN
-A clash_XRAY -m mark --mark 0xff -j RETURN
-A clash_XRAY -p udp -j TPROXY --on-port 3330 --on-ip 127.0.0.1 --tproxy-mark 0x1/0xffffffff
-A clash_XRAY -p tcp -j TPROXY --on-port 3330 --on-ip 127.0.0.1 --tproxy-mark 0x1/0xffffffff
-A clash_XRAY_MASK -p udp -m udp --dport 53 -j RETURN
-A clash_XRAY_MASK -p udp -m udp --sport 53 -j RETURN
-A clash_XRAY_MASK -m set --match-set localnet4 dst -j RETURN
-A clash_XRAY_MASK -m mark --mark 0xff -j RETURN
-A clash_XRAY_MASK -p udp -j MARK --set-xmark 0x1/0xffffffff
-A clash_XRAY_MASK -p tcp -j MARK --set-xmark 0x1/0xffffffff
+---------------------------------------------------------------+
IPv6 地址配置 mangle 规则:
-N clash_DIVERT
-N clash_XRAY6
-N clash_XRAY6_MASK
-A PREROUTING -p udp -m socket -j clash_DIVERT
-A PREROUTING -p tcp -m socket -j clash_DIVERT
-A PREROUTING -p udp -j clash_XRAY6
-A PREROUTING -p tcp -j clash_XRAY6
-A OUTPUT -p udp -j clash_XRAY6_MASK
-A OUTPUT -p tcp -j clash_XRAY6_MASK
-A clash_DIVERT -j MARK --set-xmark 0x1/0xffffffff
-A clash_DIVERT -j ACCEPT
-A clash_XRAY6 -m set --match-set localnet6 dst -j RETURN
-A clash_XRAY6 -m mark --mark 0xff -j RETURN
-A clash_XRAY6 -p udp -j TPROXY --on-port 3330 --on-ip ::1 --tproxy-mark 0x1/0xffffffff
-A clash_XRAY6 -p tcp -j TPROXY --on-port 3330 --on-ip ::1 --tproxy-mark 0x1/0xffffffff
-A clash_XRAY6_MASK -m set --match-set localnet6 dst -j RETURN
-A clash_XRAY6_MASK -m mark --mark 0xff -j RETURN
-A clash_XRAY6_MASK -p udp -j MARK --set-xmark 0x1/0xffffffff
-A clash_XRAY6_MASK -p tcp -j MARK --set-xmark 0x1/0xffffffff
+---------------------------------------------------------------+

@iHuahua
Copy link
Author

iHuahua commented Jul 11, 2024

另外,我发现我的路由器怎么弄那个Meta版本都没用,都快怀疑人生了。另外再请教一下,我本地有hosts配置的主机名,更合理一点的办法应该怎么玩啊?我给nas和路由等设备都在路由里加了hosts名,访问起来方便一点,即便是将来换op也不用再改其他的

@Awkee
Copy link
Contributor

Awkee commented Jul 12, 2024

问题一个个说:

  1. hosts名称解析问题:可以在clash配置中启用host并添加相关名称映射应该就可以了。
  2. IPv6访问内网设备问题: 先建议你使用NAT模式开启IPv6透传,问题就可以解决,通过IPv6从外网访问内网应该就可以了。
  3. 关于Meta版本内核问题: 没深入研究代码,但Meta和原版Clash在DNS解析上应该是不同的,Meta版本可以直接使用TPROXY模式,而ClashPremium内核就建议使用TPROXY+NAT模式,这两个模式也是针对两个内核的差异而产生的。

简而言之,给你的建议是,暂时使用NAT模式凑合用,我自己再调试一下关于IPv6地址内网透传规则。

@Awkee
Copy link
Contributor

Awkee commented Jul 12, 2024

新版本 v2.5.18 中新增了 IPv6 端口放行规则,用于解决外网通过IPv6公网地址访问内网主机服务问题。

@iHuahua
Copy link
Author

iHuahua commented Jul 13, 2024

老哥这效率高得可怕啊,说弄就弄好了。那个XD管理似乎有一点不对劲,设置页面不正常,随便选一个东西就报:

Cannot read properties of undefined (reading 'enable')

另外,每次更新所有设置都覆盖了也有一丢丢蓝瘦 T_T!

@iHuahua
Copy link
Author

iHuahua commented Jul 13, 2024

问题一个个说:

  1. hosts名称解析问题:可以在clash配置中启用host并添加相关名称映射应该就可以了。
  2. IPv6访问内网设备问题: 先建议你使用NAT模式开启IPv6透传,问题就可以解决,通过IPv6从外网访问内网应该就可以了。
  3. 关于Meta版本内核问题: 没深入研究代码,但Meta和原版Clash在DNS解析上应该是不同的,Meta版本可以直接使用TPROXY模式,而ClashPremium内核就建议使用TPROXY+NAT模式,这两个模式也是针对两个内核的差异而产生的。

简而言之,给你的建议是,暂时使用NAT模式凑合用,我自己再调试一下关于IPv6地址内网透传规则。

dns:
    use-hosts: true

hosts:
    aaa.local: 192.168.xxx.xxx

所以这个套路是问题 解答1 里的正确姿势是吗?

@Awkee Awkee closed this as completed Jul 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants