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

关闭OpenClash后可以ping通但无法上网 #1188

Closed
Sanly opened this issue Jan 26, 2021 · 33 comments
Closed

关闭OpenClash后可以ping通但无法上网 #1188

Sanly opened this issue Jan 26, 2021 · 33 comments

Comments

@Sanly
Copy link

Sanly commented Jan 26, 2021

OpenWrt作为网关服务器,主路由作为DHCP服务器,而网关和DNS服务器均指定为网关服务器地址。Lan设置中自定义DNS服务器为:DNS1:127.0.0.1,DNS2:114.114.114.114。

在打开OpenClash的情况下,网络没有问题,所有服务均正常。关闭OpenClash后,发现内网的设备均无法上网,但使用ping命令可以ping通百度等国内地址。

@Tim-Q
Copy link

Tim-Q commented Jan 26, 2021

dns解析没有释放,万能的重启.

@Sanly
Copy link
Author

Sanly commented Jan 26, 2021

测试过,在关闭OpenClash的情况下,重启旁路由和主路由都无法上网。

@vernesong
Copy link
Owner

发下关插件后的调试日志

@Sanly
Copy link
Author

Sanly commented Jan 26, 2021

OpenClash 调试日志

生成时间: 2021-01-26 20:49:04
插件版本: v0.41.14-beta
隐私提示: 上传此日志前请注意检查、屏蔽公网IP、节点、密码等相关敏感信息


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

主机型号: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz : 2 Core 4 Thread
固件版本: OpenWrt Buddha V1[2021]
LuCI版本: git-20.343.54716-6fc079f-1
内核版本: 5.4.85
处理器架构: x86_64

#此项在使用Tun模式时应为ACCEPT
防火墙转发: ACCEPT

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

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

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

dnsmasq-full: 已安装
coreutils: 已安装
coreutils-nohup: 已安装
bash: 已安装
curl: 已安装
jsonfilter: 已安装
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): 已安装

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

运行状态: 未运行
已选择的架构: linux-amd64

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

Game内核版本: v0.17.0-232-ge389e33
Game内核文件: 存在
Game内核运行权限: 正常

Dev内核版本: v1.3.5-4-g6fedd7e
Dev内核文件: 存在
Dev内核运行权限: 正常

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

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

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

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

#===================== 防火墙设置 =====================#

#NAT chain

# Generated by iptables-save v1.8.4 on Tue Jan 26 20:49:05 2021
*nat
:PREROUTING ACCEPT [278:17171]
:INPUT ACCEPT [159:10002]
:OUTPUT ACCEPT [175:12072]
:POSTROUTING ACCEPT [428:26052]
:MINIUPNPD - [0:0]
:MINIUPNPD-POSTROUTING - [0:0]
:postrouting_lan_rule - [0:0]
:postrouting_rule - [0:0]
:postrouting_wan_rule - [0:0]
:prerouting_lan_rule - [0:0]
:prerouting_rule - [0:0]
:prerouting_wan_rule - [0:0]
:zone_lan_postrouting - [0:0]
:zone_lan_prerouting - [0:0]
:zone_wan_postrouting - [0:0]
:zone_wan_prerouting - [0:0]
-A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING -m comment --comment "!fw3: Custom prerouting rule chain" -j prerouting_rule
-A PREROUTING -i br-lan -m comment --comment "!fw3" -j zone_lan_prerouting
-A PREROUTING -i eth5 -m comment --comment "!fw3" -j zone_wan_prerouting
-A POSTROUTING -m comment --comment "!fw3: Custom postrouting rule chain" -j postrouting_rule
-A POSTROUTING -o br-lan -m comment --comment "!fw3" -j zone_lan_postrouting
-A POSTROUTING -o eth5 -m comment --comment "!fw3" -j zone_wan_postrouting
-A zone_lan_postrouting -j MINIUPNPD-POSTROUTING
-A zone_lan_postrouting -m comment --comment "!fw3: Custom lan postrouting rule chain" -j postrouting_lan_rule
-A zone_lan_prerouting -j MINIUPNPD
-A zone_lan_prerouting -m comment --comment "!fw3: Custom lan prerouting rule chain" -j prerouting_lan_rule
-A zone_wan_postrouting -m comment --comment "!fw3: Custom wan postrouting rule chain" -j postrouting_wan_rule
-A zone_wan_postrouting -m comment --comment "!fw3" -j FULLCONENAT
-A zone_wan_prerouting -m comment --comment "!fw3: Custom wan prerouting rule chain" -j prerouting_wan_rule
-A zone_wan_prerouting -m comment --comment "!fw3" -j FULLCONENAT
COMMIT
# Completed on Tue Jan 26 20:49:05 2021

#Mangle chain

# Generated by iptables-save v1.8.4 on Tue Jan 26 20:49:05 2021
*mangle
:PREROUTING ACCEPT [2189:718980]
:INPUT ACCEPT [901:522416]
:FORWARD ACCEPT [1277:194077]
:OUTPUT ACCEPT [1179:432488]
:POSTROUTING ACCEPT [1909:507883]
-A FORWARD -o eth5 -p tcp -m tcp --tcp-flags SYN,RST SYN -m comment --comment "!fw3: Zone wan MTU fixing" -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Tue Jan 26 20:49:05 2021

#===================== IPSET状态 =====================#


#===================== 路由表状态 =====================#

#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.10.10.1      0.0.0.0         UG    0      0        0 br-lan
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 br-lan
#ip route list
default via 10.10.10.1 dev br-lan proto static 
10.10.10.0/24 dev br-lan proto kernel scope link src 10.10.10.2 
#ip rule show
0:	from all lookup local
32766:	from all lookup main
32767:	from all lookup default

#===================== Tun设备状态 =====================#


#===================== 端口占用状态 =====================#


#===================== 测试本机DNS查询 =====================#

Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 220.181.38.150
Name:	www.a.shifen.com
Address: 220.181.38.149


#===================== resolv.conf.d =====================#

# Interface lan
nameserver 127.0.0.1
nameserver 114.114.114.114

#===================== 测试本机网络连接 =====================#

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 277
Content-Type: text/html
Date: Tue, 26 Jan 2021 12:49:05 GMT
Etag: "575e1f60-115"
Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT
Pragma: no-cache
Server: bfe/1.0.8.18


#===================== 测试本机网络下载 =====================#


#===================== 最近运行日志 =====================#


@vernesong
Copy link
Owner

DNS1:127.0.0.1 起什么作用

@Sanly
Copy link
Author

Sanly commented Jan 26, 2021

优先使用本机的DNS解析,我删除试过,结果是一样的,也是可以ping通,但无法上网。

@vernesong
Copy link
Owner

下面设备查下dns看看结果

@Sanly
Copy link
Author

Sanly commented Jan 27, 2021

是查局域网设备中的DNS服务器吗?

DNS

@vernesong
Copy link
Owner

nslookup

@Sanly
Copy link
Author

Sanly commented Jan 27, 2021

已删除Lan接口的自定义DNS1:127.0.0.1.

在路由器(10.10.10.2)上的查询:

1
2

在局域网设备上的查询:

3

@vernesong
Copy link
Owner

没搞懂你怎么设置的网络,这也跟插件没关系,还有主路由为啥要设置网关和dns为旁路由地址

@Sanly
Copy link
Author

Sanly commented Jan 27, 2021

主要就是为了不改变主网络结构,使用旁路由实现科学上网等功能。

@hcym
Copy link

hcym commented Jan 27, 2021

单口路由规范做法是vlan,我的七八个单口盒子,软路由都是这样做,使用体验和普通路由器一样,

@vernesong
Copy link
Owner

主路由不要设置网关dns为旁路由

@Sanly
Copy link
Author

Sanly commented Feb 24, 2021

我又测试了一下,把主路由的DNS服务器改为自动,也就是主路由自己,结果也是一样的,关闭OpenClash之后就没法上网了。同时,最近在测试使用Redir-Host模式,发现选择绕过中国大陆IP后,国内的网站打不开;在访问控制中选择不走代理的局域网设备,该设备就无法上网,我觉得这些现象应该都是同一个问题。

@Sanly
Copy link
Author

Sanly commented Feb 24, 2021

我觉得问题可能在OpenWrt的设置上,我用新装OpenWrt系统的软路由作为旁路由,也没办法上网。

@Sanly
Copy link
Author

Sanly commented Feb 24, 2021

找到解决方案了,增加防火墙规则:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

@Sanly Sanly closed this as completed Feb 24, 2021
@Ailee1988
Copy link

楼上防火墙规则可以 关闭open clash后能正常上国内网站了

@RuyeNet
Copy link

RuyeNet commented Oct 7, 2021

楼上防火墙规则可以,所以这个问题是什么原因导致的

@Sagiri-lzumi
Copy link

目前我加上上面那个防火墙规则,现在关闭还是无法访问公网

找到解决方案了,增加防火墙规则:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

@RuyeNet
Copy link

RuyeNet commented Jun 10, 2022

目前我加上上面那个防火墙规则,现在关闭还是无法访问公网

找到解决方案了,增加防火墙规则:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

省省吧,我现在用lede,比官方源省心太多

@Sagiri-lzumi
Copy link

目前我加上上面那个防火墙规则,现在关闭还是无法访问公网

找到解决方案了,增加防火墙规则:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

省省吧,我现在用lede,比官方源省心太多

哦,那我后期试一试,现在先将就着用,用几个月还要恢复家里最原始的配置。
您帮我看一下我现在的版本吧,感觉安装好opwrt之后就有很多插件了,应该不是原版。

主机名 | OpenWrt
型号 | Octopus Planet
架构 | AArch64 Processor : Cortex-A53 * 8
固件版本 | OpenWrt R22.5.5 / LuCI Master (git-22.159.18791-120784a)
内核版本 | 5.15.46-flippy-73+o
本地时间 | Fri Jun 10 23:26:36 2022
运行时间 | 0h 14m 40s
CPU状态 | (667Mhz & 100Mhz) / 48.0℃
平均负载 | 0.70, 0.52, 0.42
CPU 使用率(%)


@nevertoday
Copy link

这个防火墙规则, 也还是没有解决我的问题, 急需 方案... 找寻中

@DopeMman
Copy link

在接口里面指定一个dns服务器就可以了

@UchihaYuki
Copy link

在接口里面指定一个dns服务器就可以了

可以说下具体怎么设置么,我也遇到了这个问题

@smithereensarr
Copy link

我一直被这个问题困扰着。。哭

1 similar comment
@smithereensarr
Copy link

我一直被这个问题困扰着。。哭

@yankebupt
Copy link

我更新到openwrt 22,安装了nftables版本的dependencies(标着#nft的那一串,不是#ipt的那一串)
解决了这个问题。
同时解决了openclash原神游戏无法进入的问题,只是不知道是怎么解决的。

@vernesong
Copy link
Owner

新版本已经加入检测dnsmasq的还原问题了

@justethan
Copy link

代码可以用,你们看看不能用的是不是,代码指定的是wan口,你们是不是eth0,别按部就班!

@jacobin
Copy link

jacobin commented Jul 4, 2023

新版本已经加入检测dnsmasq的还原问题了

没有看到”加入检测dnsmasq“。就在刚刚,关闭openclash后,我各种修改"网络接口"的挣扎,无济于事。绝望将要溺毙之际,一个”启动openclash“捡回一命 ... 然后我来到这里,看大家各种若无其事云淡风轻

@jacobin
Copy link

jacobin commented Jul 4, 2023

为了维护基本的体面,C++有RAII(Resource Acquisition is Initialization )的原则。Java和c++++(C#)等高级语言就不须要这种原则,它们的设计target就是把遑论有无洁癖的程序员纵容、宠幸成一个个的邋遢鬼。脚本语言更甚于此。

@wordscode
Copy link

我没配置网络接口那些,插网线就能联网,开了openclash一开始能ping通,但是设备一重启就再也ping不通了。。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests