diff --git a/easytier/Makefile b/easytier/Makefile index 819b88c..a028b82 100644 --- a/easytier/Makefile +++ b/easytier/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=easytier -PKG_VERSION:=2.2.4 +PKG_VERSION:=2.3.0 ifeq ($(ARCH),mipsel) APP_ARCH:=mipsel @@ -59,7 +59,7 @@ define Package/$(PKG_NAME)/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/easytier-core $(1)/usr/bin/easytier-core $(INSTALL_BIN) $(PKG_BUILD_DIR)/easytier-cli $(1)/usr/bin/easytier-cli - [ "$(APP_ARCH)" != "mips" ] && [ "$(APP_ARCH)" != "mipsel" ] && $(INSTALL_BIN) $(PKG_BUILD_DIR)/easytier-web $(1)/usr/bin/easytier-web || true + [ "$(APP_ARCH)" != "mips" ] && [ "$(APP_ARCH)" != "mipsel" ] && $(INSTALL_BIN) $(PKG_BUILD_DIR)/easytier-web-embed $(1)/usr/bin/easytier-web || true endef $(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/luci-app-easytier/Makefile b/luci-app-easytier/Makefile index 3bebeec..5399569 100644 --- a/luci-app-easytier/Makefile +++ b/luci-app-easytier/Makefile @@ -6,11 +6,11 @@ include $(TOPDIR)/rules.mk -PKG_VERSION:=2.2.4 -PKG_RELEASE:=4 +PKG_VERSION:=2.3.0 +PKG_RELEASE:=1 LUCI_TITLE:=LuCI support for EasyTier -LUCI_DEPENDS:=+kmod-tun +LUCI_DEPENDS:=+kmod-tun +luci-compat LUCI_PKGARCH:=all PKG_NAME:=luci-app-easytier @@ -24,19 +24,19 @@ define Package/$(PKG_NAME)/prerm if [ -f /etc/config/easytier ] ; then echo "备份easytier配置文件/etc/config/easytier到/tmp/easytier_backup" echo "不重启设备之前再次安装luci-app-easytier 配置不丢失,不用重新配置" - mv -f /etc/config/easytier /tmp/easytier_backup + cp -rf /etc/config/easytier /tmp/easytier_backup fi if [ -f /etc/easytier/config.toml ] ; then echo "备份easytier配置文件/etc/easytier/config.toml到/tmp/et_config_backup.toml" echo "不重启设备之前再次安装luci-app-easytier 配置不丢失,不用重新配置" - mv -f /etc/easytier/config.toml /tmp/et_config_backup.toml + cp -rf /etc/easytier/config.toml /tmp/et_config_backup.toml fi DB_PATH=$(uci -q get easytier.@easytierweb[0].db_path) if [ -n "$DB_PATH" ] && [ -f "$DB_PATH" ]; then echo "数据库 $DB_PATH 已备份到 /tmp/et_backup.db" - mv -f "$DB_PATH" /tmp/et_backup.db + cp -rf "$DB_PATH" /tmp/et_backup.db else echo "未找到数据库文件,跳过备份!" fi @@ -44,7 +44,7 @@ fi if [ -f /etc/easytier/et_machine_id ] ; then echo "备份easytier UUID /etc/easytier/et_machine_id到/tmp/et_machine_id_backup" echo "不重启设备之前再次安装luci-app-easytier UUID不丢失,不用重新配置" - mv -f /etc/easytier/et_machine_id /tmp/et_machine_id_backup + cp -rf /etc/easytier/et_machine_id /tmp/et_machine_id_backup fi endef diff --git a/luci-app-easytier/luasrc/model/cbi/easytier.lua b/luci-app-easytier/luasrc/model/cbi/easytier.lua index 51f6bf1..8c367f8 100644 --- a/luci-app-easytier/luasrc/model/cbi/easytier.lua +++ b/luci-app-easytier/luasrc/model/cbi/easytier.lua @@ -30,7 +30,7 @@ end etcmd = s:taboption("general",ListValue, "etcmd", translate("启动方式"), translate("官方Web控制台:easytier.cn/web
官方配置文件生成器:easytier.cn/web/index.html#/config_generator
注意配置RPC端口为15888")) etcmd.default = "etcmd" -etcmd:value("etcmd",translate("命令行")) +etcmd:value("etcmd",translate("默认")) etcmd:value("config",translate("配置文件")) etcmd:value("web",translate("Web配置")) @@ -88,32 +88,14 @@ ipaddr:depends("etcmd", "etcmd") peeradd = s:taboption("general",DynamicList, "peeradd", translate("对等节点"), translate("初始连接的对等节点,和下方参数作用一样 (-p 参数)
公共服务器可用状态查询:点此查询")) peeradd.placeholder = "tcp://public.easytier.top:11010" -peeradd:value("tcp://public.easytier.top:11010", translate("官方服务器-广东河源-tcp://public.easytier.top:11010")) -peeradd:value("tcp://turn.hb.629957.xyz:11010", translate("湖北十堰电信V4-tcp://turn.hb.629957.xyz:11010")) -peeradd:value("tcp://et.ie12vps.xyz:11010", translate("南京V4/V6-tcp://et.ie12vps.xyz:11010")) -peeradd:value("tcp://ah.nkbpal.cn:11010", translate("安徽电信V4-tcp://ah.nkbpal.cn:11010")) -peeradd:value("udp://ah.nkbpal.cn:11010", translate("安徽电信V4-udp://ah.nkbpal.cn:11010")) -peeradd:value("wss://ah.nkbpal.cn:11012", translate("安徽电信V4-wss://ah.nkbpal.cn:11012")) -peeradd:value("tcp://222.186.59.80:11113", translate("江苏镇江V4-tcp://222.186.59.80:11113")) -peeradd:value("wss://222.186.59.80:11115", translate("江苏镇江V4-wss://222.186.59.80:11115")) -peeradd:value("tcp://hw.gz.9z1.me:58443", translate("广州V4-tcp://hw.gz.9z1.me:58443")) -peeradd:value("tcp://c.oee.icu:60006", translate("香港V4/V6-tcp://c.oee.icu:60006")) -peeradd:value("udp://c.oee.icu:60006", translate("香港V4/V6-udp://c.oee.icu:60006")) -peeradd:value("wss://c.oee.icu:60007", translate("香港V4/V6-wss://c.oee.icu:60007")) -peeradd:value("tcp://etvm.oee.icu:31572", translate("日本V4-tcp://etvm.oee.icu:31572")) -peeradd:value("wss://etvm.oee.icu:30845", translate("日本V4-wss://etvm.oee.icu:30845")) -peeradd:value("tcp://et.pub.moe.gift:11010", translate("美国科罗拉多V4-tcp://et.pub.moe.gift:11010")) -peeradd:value("wss://et.pub.moe.gift:11012", translate("美国科罗拉多V4-tcp://et.pub.moe.gift:11012")) -peeradd:value("tcp://et.323888.xyz:11010", translate("湖北十堰V4-tcp://et.323888.xyz:11010")) -peeradd:value("udp://et.323888.xyz:11010", translate("湖北十堰V4-udp://et.323888.xyz:11010")) -peeradd:value("wss://et.323888.xyz:11012", translate("湖北十堰V4-wss://et.323888.xyz:11012")) +peeradd:value("tcp://public.easytier.top:11010", translate("官方服务器-tcp://public.easytier.top:11010")) peeradd:depends("etcmd", "etcmd") external_node = s:taboption("general", Value, "external_node", translate("共享节点地址"), translate("使用公共共享节点来发现对等节点,和上方参数作用一样 (-e 参数)")) external_node.default = "" external_node.placeholder = "tcp://public.easytier.top:11010" -external_node:value("tcp://public.easytier.top:11010", translate("官方服务器-广东河源-tcp://public.easytier.top:11010")) +external_node:value("tcp://public.easytier.top:11010", translate("官方服务器-tcp://public.easytier.top:11010")) external_node:depends("etcmd", "etcmd") proxy_network = s:taboption("general",DynamicList, "proxy_network", translate("子网代理"), @@ -302,6 +284,10 @@ kcp_input = s:taboption("privacy",Flag, "kcp_input", translate("禁用KCP输入" translate("不允许其他节点使用 KCP 代理 TCP 流到此节点。
开启 KCP 代理的节点访问此节点时,依然使用原始。( --disable-kcp-input 参数)")) kcp_input:depends("etcmd", "etcmd") +accept_dns = s:taboption("privacy",Flag, "accept_dns", translate("启用魔法DNS"), + translate("使用魔法DNS,您可以使用域名访问其他节点,例如:.et.net。魔法DNS将修改您的系统DNS设置,请谨慎启用。(--accept-dns 参数)")) +accept_dns:depends("etcmd", "etcmd") + log = s:taboption("general",ListValue, "log", translate("程序日志"), translate("运行日志在/tmp/easytier.log,可在上方日志查看
若启动失败,请前往 状态- 系统日志 查看具体启动失败日志
详细程度:警告<信息<调试<跟踪")) log.default = "off" diff --git a/luci-app-easytier/root/etc/init.d/easytier b/luci-app-easytier/root/etc/init.d/easytier index 55e86b9..26f3771 100644 --- a/luci-app-easytier/root/etc/init.d/easytier +++ b/luci-app-easytier/root/etc/init.d/easytier @@ -89,7 +89,7 @@ check_bin() { sed -i "/easytierbin/c option easytierbin '/tmp/easytier-core' " /etc/config/easytier easytierbin=/tmp/easytier-core fi - if [ "$($easytierbin -h 2>&1 | wc -l)" -lt 3 ] || [ ! -f "$easytierbin" ] ; then + if [ "$($easytierbin -h 2>&1 | wc -l)" -lt 3 ] || [ ! -f "$easytierbin" ] || [ ! -f "$webbin" ] ; then curltest=`which curl` user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36' #github加速地址,一行一个 你可以自建改为你自己的 @@ -153,10 +153,23 @@ check_config() { v6wg_port=$(cat $config_file |grep 'wg://\[::\]:' | sed -n 's/.*:\([0-9]*\).*/\1/p') procd_open_instance + get_tz + [ -z "$SET_TZ" ] || procd_set_param env TZ="$SET_TZ" procd_set_param command "$easytierbin" procd_append_param command -c "$config_file" echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 运行 ${easytierbin} -c ${config_file}" >>/tmp/easytier.log - + + if [ ! -z "$tcp_port" ] ; then + echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 添加防火墙规则 easytier_tcp 放行TCP端口 ${tcp_port} " >>/tmp/easytier.log + uci -q delete firewall.easytier_tcp + uci set firewall.easytier_tcp=rule + uci set firewall.easytier_tcp.name="easytier_tcp" + uci set firewall.easytier_tcp.target="ACCEPT" + uci set firewall.easytier_tcp.src="wan" + uci set firewall.easytier_tcp.proto="tcp" + uci set firewall.easytier_tcp.dest_port="$tcp_port" + uci set firewall.easytier_tcp.enabled="1" + fi if [ ! -z "$udp_port" ] ; then echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 添加防火墙规则 easytier_udp 放行UDP端口 ${udp_port} " >>/tmp/easytier.log uci -q delete firewall.easytier_udp @@ -244,7 +257,7 @@ get_etconfig() { ipaddr="$(uci -q get easytier.@easytier[0].ipaddr)" external_node="$(uci -q get easytier.@easytier[0].external_node)" proxy_network="$(uci -q get easytier.@easytier[0].proxy_network)" - rpc_portal="$(uci -q get easytier.@easytier[0].rpc_portal)" + rpc_portal="$(uci -q get easytier.@easytier[0].rpc_portal || echo 15888)" listenermode="$(uci -q get easytier.@easytier[0].listenermode)" tunname="$(uci -q get easytier.@easytier[0].tunname)" relay_network="$(uci -q get easytier.@easytier[0].relay_network || echo 0)" @@ -282,6 +295,7 @@ get_etconfig() { kcp_proxy="$(uci -q get easytier.@easytier[0].kcp_proxy || echo 0)" kcp_input="$(uci -q get easytier.@easytier[0].kcp_input || echo 0)" proxy_forward="$(uci -q get easytier.@easytier[0].proxy_forward || echo 0)" + accept_dns="$(uci -q get easytier.@easytier[0].accept_dns || echo 0)" } set_firewall() { @@ -397,7 +411,7 @@ start_et() { [ -z "$easytierbin" ] && easytierbin="/usr/bin/easytier-core" && uci -q set easytier.@easytier[0].easytierbin=/usr/bin/easytier-core etcmd="$(uci -q get easytier.@easytier[0].etcmd)" echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : easytier-core_${cpucore}开始启动" >>/tmp/easytier.log - [ ! -s /usr/lib/opkg/info/kmod-tun.list ] && echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 缺少kmod-tun插件" >>/tmp/easytier.log + #[ ! -s /usr/lib/opkg/info/kmod-tun.list ] && echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 缺少kmod-tun插件" >>/tmp/easytier.log check_bin chmod +x "$easytierbin" chmod +x ${path}/easytier-cli @@ -521,6 +535,7 @@ start_et() { [ "$kcp_proxy" = "0" ] || procd_append_param command --enable-kcp-proxy [ "$kcp_input" = "0" ] || procd_append_param command --disable-kcp-input [ "$proxy_forward" = "0" ] || procd_append_param command --proxy-forward-by-system + [ "$accept_dns" = "0" ] || procd_append_param command --accept-dns fi if [ "$etcmd" = "web" ] ; then echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 运行 ${easytierbin} -w ${web_config}" >>/tmp/easytier.log @@ -562,12 +577,12 @@ start_et() { wss_port="11012" wg_port="11011" fi - set_firewall fi + set_firewall echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 重载防火墙和网络配置...会出现短暂断网现象... " >>/tmp/easytier.log [ -n "$(uci changes network)" ] && uci commit network && /etc/init.d/network reload >/dev/null 2>&1 [ -n "$(uci changes firewall)" ] && uci commit firewall && /etc/init.d/firewall reload >/dev/null 2>&1 - [ -z "$proxy_network" ] || sysctl -w net.ipv4.ip_forward=1 >/dev/null 2>&1 + sysctl -w net.ipv4.ip_forward=1 >/dev/null 2>&1 [ ! -z "$checkip" ] && check echo `date +%s` > /tmp/easytier_time echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 启动完成,若启动失败,请前往 状态 - 系统日志 找到easytier相关的字眼查看启动失败的原因 " >>/tmp/easytier.log @@ -605,6 +620,7 @@ fi start_web() { webbin="$(uci -q get easytier.@easytier[0].webbin)" + check_bin if [ -f /tmp/easytier-web-embed ] ; then echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 找到上传的easytier-web程序,替换${webbin} " >>/tmp/easytierweb.log mv -f /tmp/easytier-web-embed "$webbin" @@ -735,6 +751,7 @@ stop_service() { uci -q delete firewall.easytierfwwan >/dev/null 2>&1 uci -q delete firewall.lanfweasytier >/dev/null 2>&1 uci -q delete firewall.wanfweasytier >/dev/null 2>&1 + uci -q delete firewall.easytier_tcp >/dev/null 2>&1 uci -q delete firewall.easytier_udp >/dev/null 2>&1 uci -q delete firewall.easytier_tcp_udp >/dev/null 2>&1 uci -q delete firewall.easytier_wss >/dev/null 2>&1 @@ -774,5 +791,6 @@ reload_service() { service_triggers() { procd_add_reload_trigger "easytier" + #如果任意网络接口上线则触发重新启动easytier procd_add_interface_trigger "interface.*.up" wan /etc/init.d/easytier reload }