wnlen / clash-for-linux

clash-for-linux
1.3k stars 488 forks source link

订阅正常,没网络怎怎么回事请教 #5

Open Jehol1983 opened 10 months ago

Jehol1983 commented 10 months ago
image
Sugar-107 commented 10 months ago

我也是这个问题

pantao0317 commented 10 months ago

如果你是 arm架构的linux系统,修改start.sh 文件即可,作者设置了只针对amd架构的格式转换 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" ]]; then 修改成 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 就能忽视架构检测,mac 下的linux亲测可以

HenryXiaoYang commented 9 months ago

x86架构,问题一样,订阅成功,但啥都连不上。试过切换到全局也不行

pantao0317 commented 9 months ago

x86架构,问题一样,订阅成功,但啥都连不上。试过切换到全局也不行

订阅成功后的配置载入,一般要经过base64解码,作者设置了架构检测,你直接在代码层面把架构检测取消就行,这样代码会继续进行转化,过程可能需要你debug

Chzxxuanzheng commented 9 months ago

实际尝试了下,用ping之类的方式判断是否生效没有意义,因为你是ping不到的,我当时就是ping谷歌半天没用,摸到这里研究了半天。之后通过wget,可以马上下载下来谷歌表面已经可以用了。 (萌新linux只知道用ping……做软路由ing,没图形化界面) 题外话:想拿Linux做路由器,现在卡在不知道怎么让lan口消息走代理,还需要专门的在设备上设置代理……

Donny1996 commented 9 months ago

x86,虽然不是完全没有网络,但是还是无法访问外网

1k16 commented 7 months ago

如果你是 arm架构的linux系统,修改start.sh 文件即可,作者设置了只针对amd架构的格式转换 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" ]]; then 修改成 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 就能忽视架构检测,mac 下的linux亲测可以

兄啊确实可以,就是这里 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 写错了,应该是 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1==1 ]]; then 照抄你代码出现语法错误,仔细一看才发现是这个原因:)

chenxi52 commented 6 months ago

如果你是 arm架构的linux系统,修改start.sh 文件即可,作者设置了只针对amd架构的格式转换 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" ]]; then 修改成 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 就能忽视架构检测,mac 下的linux亲测可以

兄啊确实可以,就是这里 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 写错了,应该是 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1==1 ]]; then 照抄你代码出现语法错误,仔细一看才发现是这个原因:)

改了也连不上,需要设置网络端口就可以

sunqiuming526 commented 6 months ago

如果你是 arm架构的linux系统,修改start.sh 文件即可,作者设置了只针对amd架构的格式转换 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" ]]; then 修改成 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 就能忽视架构检测,mac 下的linux亲测可以

兄啊确实可以,就是这里 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 写错了,应该是 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1==1 ]]; then 照抄你代码出现语法错误,仔细一看才发现是这个原因:)

改了也连不上,需要设置网络端口就可以

@chenxi52 请教一下你是怎么设置网络端口的

nanshaws commented 6 months ago

x86,虽然不是完全没有网络,但是还是无法访问外网 兄弟,解决了吗?

chenxi52 commented 6 months ago

如果你是 arm架构的linux系统,修改start.sh 文件即可,作者设置了只针对amd架构的格式转换 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" ]]; then 修改成 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 就能忽视架构检测,mac 下的linux亲测可以

兄啊确实可以,就是这里 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 写错了,应该是 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1==1 ]]; then 照抄你代码出现语法错误,仔细一看才发现是这个原因:)

改了也连不上,需要设置网络端口就可以

@chenxi52 请教一下你是怎么设置网络端口的

就是系统设置里面的网络端口映射

nanshaws commented 6 months ago

如果你是 arm架构的linux系统,修改start.sh 文件即可,作者设置了只针对amd架构的格式转换 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" ]]; then 修改成 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 就能忽视架构检测,mac 下的linux亲测可以

兄啊确实可以,就是这里 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 写错了,应该是 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1==1 ]]; then 照抄你代码出现语法错误,仔细一看才发现是这个原因:)

改了也连不上,需要设置网络端口就可以

@chenxi52 请教一下你是怎么设置网络端口的

就是系统设置里面的网络端口映射

1714630813051 我这样子貌似还是没有用 1714630860294 访问谷歌好像还是访问不了

nanshaws commented 6 months ago

如果你是 arm架构的linux系统,修改start.sh 文件即可,作者设置了只针对amd架构的格式转换 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" ]]; then 修改成 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 就能忽视架构检测,mac 下的linux亲测可以

兄啊确实可以,就是这里 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1=1 ]]; then 写错了,应该是 if [[ $CpuArch =~ "x86_64" || $CpuArch =~ "amd64" || 1==1 ]]; then 照抄你代码出现语法错误,仔细一看才发现是这个原因:)

改了也连不上,需要设置网络端口就可以

@chenxi52 请教一下你是怎么设置网络端口的

就是系统设置里面的网络端口映射

1714630813051 我这样子貌似还是没有用 1714630860294 访问谷歌好像还是访问不了

可以了,忘记了火狐要单独设置代理

DaozeZhang commented 4 months ago

实际尝试了下,用ping之类的方式判断是否生效没有意义,因为你是ping不到的,我当时就是ping谷歌半天没用,摸到这里研究了半天。之后通过wget,可以马上下载下来谷歌表面已经可以用了。 (萌新linux只知道用ping……做软路由ing,没图形化界面) 题外话:想拿Linux做路由器,现在卡在不知道怎么让lan口消息走代理,还需要专门的在设备上设置代理……

大佬您好,想问问为什么不能用ping google.com来测试是否配制成功?我的情况是配制过程完全正常,dashboard也能看见上传下载的流量变化,但是ping不通google。想问问是为什么?谢谢

nanshaws commented 3 months ago

实际尝试了下,用ping之类的方式判断是否生效没有意义,因为你是ping不到的,我当时就是ping谷歌半天没用,摸到这里研究了半天。之后通过wget,可以马上下载下来谷歌表面已经可以用了。 (萌新linux只知道用ping……做软路由ing,没图形化界面) 题外话:想拿Linux做路由器,现在卡在不知道怎么让lan口消息走代理,还需要专门的在设备上设置代理……

ping是不走http代理的。http代理它只能代理基于tcp协议的http和https协议的流量。ping命令用的是icmp协议,它不会使用代理,要ping通首先保证dns没有被污染,然后代理icmp流量

lzy-Jolly commented 1 month ago

让我来解救一下,多次运行start发现每次运行start.sh文件都会生成新的ui secret,可以找抽啊config.yaml文件下面后面这一串XXX # RESTful API 的口令 secret: XXXX 在文件中找到restart.sh再运行一次,这个secret就不会变了,且新的文件会按照这个文件设置的来更新。在此基础上可以将XXX手动改成自己熟悉的文件再次运行restart.sh。

zhangppan commented 1 month ago

image 检查下conf目录下的 config.yaml ,程序合并配置文件时候可能没有合并DNS配置