OpenWrt 应用:OpenClash 和 ZeroTier
记录时间:2026-03-17 22:26
最后编辑:2026-03-17 23:53
目录
设备:小米路由器 R3G 系统:ImmortalWrt 24.10
如何给 OpenWrt 装上 OpenClash 以实现科学上网
项目地址:vernesong/OpenClash 安装教程:安装
主要是 ssh 连接上 OpenWrt,然后执行命令,这些命令在 GitHub Release 中有写。
opkg update
opkg install bash iptables dnsmasq-full curl ca-bundle ipset ip-full iptables-mod-tproxy iptables-mod-extra ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat luci luci-base如何给 OpenWrt 装上 ZeroTier 实现内网穿透
提示
我首先尝试的是号称去中心化的 EasyTier,然而真正使用之后让我大失所望,没有想象中的那样好用,整个互联网上就没有几个可靠的中继节点,毕竟不是每个人都有服务器的。
- 项目地址:mwarning/zerotier-openwrt
- 项目文档:https://github.com/mwarning/zerotier-openwrt/wiki/Configure-ZeroTier-on-OpenWrt 版本:ZeroTier version 1.14.1
连上 ZeroTier 网络
安装就不说了,可以直接在图形界面搜索安装。
下面看如何配置以连上网络,既可以在图形界面配置,也可以用 ssh 连接上 OpenWrt 然后执行命令,这些命令在文档中有写:
uci set zerotier.global.enabled='1'
uci delete zerotier.earth
uci set zerotier.mynet=network
# 注意下面要替换成自己的 network id
uci set zerotier.mynet.id=<network_id>
uci commit zerotier
service zerotier restart这样就能在 ZeroTier 中看到对应的设备了:
配置防火墙
uci add firewall rule
uci set firewall.@rule[-1].name='Allow-ZeroTier-Inbound'
uci set firewall.@rule[-1].src='*'
uci set firewall.@rule[-1].target='ACCEPT'
uci set firewall.@rule[-1].proto='udp'
uci set firewall.@rule[-1].dest_port='9993'
uci commit firewall然后重启防火墙:/etc/init.d/firewall restart
此时网络已配置好,你应该能从路由器与网络上的任何主机通信,反之亦然。如果你也希望本地网络中的任何主机都能与零等级网络中的任何主机通信,可以参考《Configure ZeroTier routing in OpenWrt》。
此时,你能够通过 ZeroTier 提供的 IP 地址来访问其他已经连接到网络的设备了,比如路由器就是172.22.160.124。但如果你的局域网中有设备没法安装 ZeroTier 并连接上它的网络,那么目前你是没办法访问的,因为路由不到对应的 IP。
那我想要在任何地方,都能用 192.168.31.xxx 访问家里的局域网呢?
这就需要配置路由转发,按照它的说来配置:《Configure ZeroTier routing in OpenWrt》。
配置路由转发
# Create interface
uci set network.ZeroTier=interface
uci set network.ZeroTier.proto='none'
# 注意下面这个,一定要改成自己的接口 ID,可从图形界面查看
uci set network.ZeroTier.device='ztXXXXXXXX' # Replace ztXXXXXXXX with your own ZeroTier interface name
# Create zone
uci add firewall zone
uci set firewall.@zone[-1].name='vpn'
uci set firewall.@zone[-1].input='ACCEPT'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='ACCEPT'
uci set firewall.@zone[-1].masq='1'
uci add_list firewall.@zone[-1].network='ZeroTier'
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='vpn'
uci set firewall.@forwarding[-1].dest='lan'
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='vpn'
uci set firewall.@forwarding[-1].dest='wan'
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='lan'
uci set firewall.@forwarding[-1].dest='vpn'
# Commit changes
uci commit
# Restart the firewall to apply the changes:
/etc/init.d/firewall restart记得在 ZeroTier 控制面板配置路由时,via 后面的 IP 不要写错了。

现在,通过用 5G 流量就能访问局域网的服务了,比如就访问路由器的管理地址:

