vernesong / OpenClash

A Clash Client For OpenWrt
MIT License
17.61k stars 3.19k forks source link

[Bug] Trojan和Vless+xtls节点写入配置文件后无法被识别,但Vmess可以,内详 #2778

Closed dinnermanac closed 2 years ago

dinnermanac commented 2 years ago

Verify Steps

OpenClash Version

我尝试了0.45目前最新的版本,也尝试了一个旧版本0.44的,结果都一样

Bug on Environment

Other

Bug on Platform

Linux-armv8

To Reproduce

如下

Describe the Bug

我尝试在VPS上搭建vless+xtls和trojan2种节点,在CFW(Macos版)上完全正常运作,但相同的yaml配置文件放到Openclash上之后都无法识别。表现形式为:如果到Openclash首页-点击打开控制面板-代理页面滑到最下面查看节点,可以看到显示着Vless或者Trojan,但整个是灰色的,不显示ping值。如果使用设备访问google.com,在控制面板的连接页面里完全看不到访问记录;如访问baidu.com,是可以看到访问记录且显示走直连的。

相反如果我切换配置文件到一个Vmess节点的自建vps,或者用一个SSR机场订阅,就完全可以正常运作(均表现为代理页面滑到最下面查看节点可以看到显示SSR或者Vmess,且都会显示Ping值)。

OpenClash Log

OpenClash 调试日志

生成时间: 2022-11-05 14:32:33 插件版本: v0.44.42-beta 隐私提示: 上传此日志前请注意检查、屏蔽公网IP、节点、密码等相关敏感信息


#===================== 系统信息 =====================#

主机型号: Phicomm N1
固件版本: OpenWrt SNAPSHOT r3210-3403deeaf
LuCI版本: git-21.114.56541-974fb04-1
内核版本: 5.4.123-flippy-59+o
处理器架构: aarch64_cortex-a53

#此项有值时,如不使用IPv6,建议到网络-接口-lan的设置中禁用IPV6的DHCP
IPV6-DHCP: 

#此项结果应仅有配置文件的DNS监听地址
Dnsmasq转发设置: 

#===================== 依赖检查 =====================#

dnsmasq-full: 已安装
coreutils: 已安装
coreutils-nohup: 已安装
bash: 已安装
curl: 已安装
ca-certificates: 已安装
ipset: 已安装
ip-full: 已安装
iptables-mod-tproxy: 已安装
kmod-ipt-tproxy: 已安装
iptables-mod-extra: 已安装
kmod-ipt-extra: 已安装
libcap: 已安装
libcap-bin: 已安装
ruby: 已安装
ruby-yaml: 已安装
ruby-psych: 已安装
ruby-pstore: 已安装
ruby-dbm: 已安装
kmod-tun(TUN模式): 已安装
luci-compat(Luci-19.07): 已安装
kmod-inet-diag(PROCESS-NAME): 未安装

#===================== 内核检查 =====================#

运行状态: 运行中
进程pid: 30594
运行权限: 30594: = cap_dac_override,cap_net_bind_service,cap_net_admin,cap_net_raw,cap_sys_ptrace,cap_sys_resource+eip
运行用户: nobody
已选择的架构: linux-armv8

#下方无法显示内核版本号时请确认您的内核版本是否正确或者有无权限
Tun内核版本: 2022.08.26-3-ge16bdd2
Tun内核文件: 存在
Tun内核运行权限: 正常

Dev内核版本: v1.11.8-3-g4f291fa
Dev内核文件: 存在
Dev内核运行权限: 正常

#===================== 插件设置 =====================#

当前配置文件: /etc/openclash/config/Trojan.yaml
启动配置文件: /etc/openclash/Trojan.yaml
运行模式: fake-ip
默认代理模式: rule
UDP流量转发(tproxy): 启用
DNS劫持: 停用
自定义DNS: 停用
IPV6代理: 停用
IPV6-DNS解析: 停用
禁用Dnsmasq缓存: 停用
自定义规则: 停用
仅允许内网: 停用
仅代理命中规则流量: 停用
仅允许常用端口流量: 停用
绕过中国大陆IP: 停用
DNS远程解析: 停用
路由本机代理: 停用

#启动异常时建议关闭此项后重试
混合节点: 停用
保留配置: 停用

#启动异常时建议关闭此项后重试
第三方规则: 启用

#===================== 配置文件 =====================#

port: 7890
socks-port: 7891
allow-lan: true
mode: rule
log-level: silent
external-controller: 0.0.0.0:9090

### OpenClash Config

```shell
Vless和Trojan节点在配置文件里的格式如下。我想应该不会有错吧,毕竟完全相同的内容在CFW都能正常运作的。

proxies:
 - {name: Trojan, server: XXX.XXX.XXX, port: XXXXX, type: trojan, password: XXXXXXXX}

- name: "Vless"
   type: vless
   server: XXX.XXX.XXX
   port: 443
   uuid: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   network: tcp
   servername: XXX.XXX.XXX
   flow: xtls-rprx-direct

Expected Behavior

希望能正常运行,求各位指点!!!

Screenshots

No response

vernesong commented 2 years ago

地址改成ip呢

Java2Boy commented 2 years ago

vless遇到同样问题,ws-opts-path 与 ws-opts-headers 默认还是需要修改?

vernesong commented 2 years ago

你可以看看启动配置,看是不是插件改错了参数

dinnermanac commented 2 years ago

地址改成ip呢

我试了一下,仍然无效。比如:

我还尝试了Vmess+tls,发现一旦加上tls,就会出现问题中的情况。看来似乎是这个步骤出的问题。请问我这些写法难道有不对的地方吗,还是说我的设置里需要做某一些修改,才能应用tls?谢谢!

Trojan的:

Vless的:

Vmess+tls的:

vernesong commented 2 years ago

加一个跳过证书验证

zhyhub123 commented 2 years ago

我的vmess配置是对的,更新了openclash版本就可以了。

dinnermanac commented 2 years ago

加一个跳过证书验证

太感谢了!我试了一下Trojan,问题解决,估计Vless也是相同方法(我还没试Vless,现在clash还是0.44无meta旧版本)

FYI如有其他小白遇到同样问题,解决方法为: proxies:

dinnermanac commented 2 years ago

更新:我openclash升级到最新的v0.45.70-beta,启用meta内核,配置文件proxies中对Vless节点加上了跳过证书认证(如下),问题也得到解决。

name: "Vless" type: vless server: XXX.XXX.XXX port: XXXX uuid: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx network: tcp servername: XXX.XXX.XXX flow: xtls-rprx-direct skip-cert-verify: true

Java2Boy commented 2 years ago

改用Passwall临时过渡一下

nkcfc commented 1 year ago

跳过证书认证不会带来安全问题吗?

ccpfucker commented 1 month ago

Verify Steps

  • [x] Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • [x] Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
  • [x] Core 这是 OpenClash 存在的问题,并非我所使用的 Clash 或 Meta 等内核的特定问题
  • [x] Meaningful 我提交的不是无意义的 催促更新或修复 请求

OpenClash Version

我尝试了0.45目前最新的版本,也尝试了一个旧版本0.44的,结果都一样

Bug on Environment

Other

Bug on Platform

Linux-armv8

To Reproduce

如下

Describe the Bug

我尝试在VPS上搭建vless+xtls和trojan2种节点,在CFW(Macos版)上完全正常运作,但相同的yaml配置文件放到Openclash上之后都无法识别。表现形式为:如果到Openclash首页-点击打开控制面板-代理页面滑到最下面查看节点,可以看到显示着Vless或者Trojan,但整个是灰色的,不显示ping值。如果使用设备访问google.com,在控制面板的连接页面里完全看不到访问记录;如访问baidu.com,是可以看到访问记录且显示走直连的。

相反如果我切换配置文件到一个Vmess节点的自建vps,或者用一个SSR机场订阅,就完全可以正常运作(均表现为代理页面滑到最下面查看节点可以看到显示SSR或者Vmess,且都会显示Ping值)。

OpenClash Log

OpenClash 调试日志

生成时间: 2022-11-05 14:32:33 插件版本: v0.44.42-beta 隐私提示: 上传此日志前请注意检查、屏蔽公网IP、节点、密码等相关敏感信息


#===================== 系统信息 =====================#

主机型号: Phicomm N1
固件版本: OpenWrt SNAPSHOT r3210-3403deeaf
LuCI版本: git-21.114.56541-974fb04-1
内核版本: 5.4.123-flippy-59+o
处理器架构: aarch64_cortex-a53

#此项有值时,如不使用IPv6,建议到网络-接口-lan的设置中禁用IPV6的DHCP
IPV6-DHCP: 

#此项结果应仅有配置文件的DNS监听地址
Dnsmasq转发设置: 

#===================== 依赖检查 =====================#

dnsmasq-full: 已安装
coreutils: 已安装
coreutils-nohup: 已安装
bash: 已安装
curl: 已安装
ca-certificates: 已安装
ipset: 已安装
ip-full: 已安装
iptables-mod-tproxy: 已安装
kmod-ipt-tproxy: 已安装
iptables-mod-extra: 已安装
kmod-ipt-extra: 已安装
libcap: 已安装
libcap-bin: 已安装
ruby: 已安装
ruby-yaml: 已安装
ruby-psych: 已安装
ruby-pstore: 已安装
ruby-dbm: 已安装
kmod-tun(TUN模式): 已安装
luci-compat(Luci-19.07): 已安装
kmod-inet-diag(PROCESS-NAME): 未安装

#===================== 内核检查 =====================#

运行状态: 运行中
进程pid: 30594
运行权限: 30594: = cap_dac_override,cap_net_bind_service,cap_net_admin,cap_net_raw,cap_sys_ptrace,cap_sys_resource+eip
运行用户: nobody
已选择的架构: linux-armv8

#下方无法显示内核版本号时请确认您的内核版本是否正确或者有无权限
Tun内核版本: 2022.08.26-3-ge16bdd2
Tun内核文件: 存在
Tun内核运行权限: 正常

Dev内核版本: v1.11.8-3-g4f291fa
Dev内核文件: 存在
Dev内核运行权限: 正常

#===================== 插件设置 =====================#

当前配置文件: /etc/openclash/config/Trojan.yaml
启动配置文件: /etc/openclash/Trojan.yaml
运行模式: fake-ip
默认代理模式: rule
UDP流量转发(tproxy): 启用
DNS劫持: 停用
自定义DNS: 停用
IPV6代理: 停用
IPV6-DNS解析: 停用
禁用Dnsmasq缓存: 停用
自定义规则: 停用
仅允许内网: 停用
仅代理命中规则流量: 停用
仅允许常用端口流量: 停用
绕过中国大陆IP: 停用
DNS远程解析: 停用
路由本机代理: 停用

#启动异常时建议关闭此项后重试
混合节点: 停用
保留配置: 停用

#启动异常时建议关闭此项后重试
第三方规则: 启用

#===================== 配置文件 =====================#

port: 7890
socks-port: 7891
allow-lan: true
mode: rule
log-level: silent
external-controller: 0.0.0.0:9090

### OpenClash Config

```shell
Vless和Trojan节点在配置文件里的格式如下。我想应该不会有错吧,毕竟完全相同的内容在CFW都能正常运作的。

proxies:
 - {name: Trojan, server: XXX.XXX.XXX, port: XXXXX, type: trojan, password: XXXXXXXX}

- name: "Vless"
   type: vless
   server: XXX.XXX.XXX
   port: 443
   uuid: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   network: tcp
   servername: XXX.XXX.XXX
   flow: xtls-rprx-direct

Expected Behavior

希望能正常运行,求各位指点!!!

Screenshots

No response

谢谢你的反馈,我也有这个问题