增加禁用udp攻击参数 显示本机节点信息 (#6)

* 赋予启动脚本执行权限
* 修复接口未识别的协议
* 新增--socks5参数
* 添加禁用udp打洞参数
* 修改默认日志等级
* 关闭的时候删除本机信息文本
* 增加显示本机节点信息
* 增加wget在线下载
* 修改为可以多个-e参数
* 添加多个公益节点快捷选项
This commit is contained in:
lmq8267
2024-08-31 12:45:40 +08:00
committed by GitHub
parent db4948ac7c
commit 0517a314bd
3 changed files with 73 additions and 24 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
include $(TOPDIR)/rules.mk
PKG_VERSION:=1.2.2
PKG_VERSION:=1.2.3
PKG_RELEASE:=
LUCI_TITLE:=LuCI support for EasyTier
+47 -9
View File
@@ -49,10 +49,20 @@ peeradd = s:taboption("general",DynamicList, "peeradd", translate("对等节点"
translate("初始连接的对等节点 -p 参数)"))
peeradd.placeholder = "udp://22.1.1.1:11010"
external_node = s:taboption("general", Value, "external_node", translate("共享节点地址"),
external_node = s:taboption("general", DynamicList, "external_node", translate("共享节点地址"),
translate("使用公共共享节点来发现对等节点 (-e 参数)"))
external_node.placeholder = "tcp://easytier.public.kkrainbow.top:11010"
external_node.password = true
external_node.default = ""
external_node:value("tcp://easytier.public.kkrainbow.top:11010", translate("tcp://easytier.public.kkrainbow.top:11010"))
external_node:value("tcp://s1.ct8.pl:11010", translate("tcp://s1.ct8.pl:11010"))
external_node:value("tcp://c.oee.icu:60006", translate("tcp://c.oee.icu:60006"))
external_node:value("udp://c.oee.icu:60006", translate("udp://c.oee.icu:60006"))
external_node:value("wss://c.oee.icu:60007", translate("wss://c.oee.icu:60007"))
external_node:value("tcp://etvm.oee.icu:31572", translate("tcp://etvm.oee.icu:31572"))
external_node:value("wss://etvm.oee.icu:30845", translate("wss://etvm.oee.icu:30845"))
external_node:value("tcp://et.323888.xyz:11010", translate("tcp://et.323888.xyz:11010"))
external_node:value("udp://et.323888.xyz:11010", translate("udp://et.323888.xyz:11010"))
external_node:value("wss://et.323888.xyz:11010", translate("wss://et.323888.xyz:11010"))
proxy_network = s:taboption("general",DynamicList, "proxy_network", translate("代理网络"),
translate("将本地网络导出到 VPN 中的其他对等点 (-n 参数)"))
@@ -64,8 +74,8 @@ rpc_portal.datatype = "range(1,65535)"
listenermode = s:taboption("general",ListValue, "listenermode", translate("监听端口"),
translate("OFF:不监听任何端口,只连接到对等节点 (--no-listener 参数)"))
listenermode:value("ON")
listenermode:value("OFF")
listenermode:value("ON",translate("监听"))
listenermode:value("OFF",translate("不监听"))
tcp_port = s:taboption("general",Value, "tcp_port", translate("tcp/udp端口"),
translate("tcp/udp协议,端口号:11010,表示 tcp/udp 将在 11010 上监听"))
@@ -117,7 +127,7 @@ mtu.placeholder = "1300"
default_protocol = s:taboption("general",ListValue, "default_protocol", translate("默认协议"),
translate("连接对等节点时使用的默认协议(--default-protocol 参数)"))
default_protocol:value("-")
default_protocol:value("-",translate("默认"))
default_protocol:value("tcp")
default_protocol:value("udp")
default_protocol:value("ws")
@@ -171,16 +181,25 @@ socks_port.datatype = "range(1,65535)"
socks_port.placeholder = "1080"
disable_p2p = s:taboption("general",Flag, "disable_p2p", translate("禁用P2P"),
translate("禁用P2P通信,只通过-p指定的节点转发数据包"))
translate("禁用P2P通信,只通过-p指定的节点转发数据包 --disable-p2p 参数)"))
disable_p2p.rmempty = false
disable_udp = s:taboption("general",Flag, "disable_udp", translate("禁用UDP"),
translate("禁用UDP打洞功能( --disable-udp-hole-punching 参数)"))
disable_udp.rmempty = false
relay_all = s:taboption("general",Flag, "relay_all", translate("允许转发"),
translate("转发所有对等节点的RPC数据包,即使对等节点不在转发网络白名单中。<br>这可以帮助白名单外网络中的对等节点建立P2P连接。"))
relay_all.rmempty = false
log = s:taboption("general",Flag, "log", translate("启用日志"),
log = s:taboption("general",ListValue, "log", translate("程序日志"),
translate("运行日志在/tmp/easytier.log,可在上方日志查看"))
log.rmempty = false
log.default = "info"
log:value("off",translate("关闭"))
log:value("info",translate("信息"))
log:value("debug",translate("调试"))
log:value("warn",translate("警告"))
log:value("trace",translate("跟踪"))
check = s:taboption("general",Flag, "check", translate("通断检测"),
translate("开启通断检测后,可以指定对端的设备IP,当所有指定的IP都ping不通时将会重启easytier程序"))
@@ -200,9 +219,28 @@ checktime:depends("check", "1")
local process_status = luci.sys.exec("ps | grep easytier-core| grep -v grep")
btn0 = s:taboption("infos", Button, "btn0")
btn0.inputtitle = translate("node信息")
btn0.description = translate("点击按钮刷新,查看本机信息")
btn0.inputstyle = "apply"
btn0.write = function()
if process_status ~= "" then
luci.sys.call("$(dirname $(uci -q get easytier.@easytier[0].easytierbin))/easytier-cli node >/tmp/easytier-cli_node")
else
luci.sys.call("echo '错误:程序未运行!请启动程序后重新点击刷新' >/tmp/easytier-cli_node")
end
end
btn0info = s:taboption("infos", DummyValue, "btn0info")
btn0info.rawhtml = true
btn0info.cfgvalue = function(self, section)
local content = nixio.fs.readfile("/tmp/easytier-cli_node") or ""
return string.format("<pre>%s</pre>", luci.util.pcdata(content))
end
btn1 = s:taboption("infos", Button, "btn1")
btn1.inputtitle = translate("peer信息")
btn1.description = translate("点击按钮刷新,查看peer信息")
btn1.description = translate("点击按钮刷新,查看对端信息")
btn1.inputstyle = "apply"
btn1.write = function()
if process_status ~= "" then
+25 -14
View File
@@ -4,6 +4,7 @@
START=99
USE_PROCD=1
size="$(df -k | awk '/\/overlay$/ {sub(/K$/, "", $4); print $4}')"
[ -z "$size" ] && size="$(df -k /usr/bin | awk 'NR==2 {print $(NF-2) }')"
check () {
if [ ! -z "$checkip" ] ; then
@@ -62,14 +63,14 @@ start_et() {
upsize="$(du -k /tmp/easytier-core | cut -f1)"
result=$(expr $size - $upsize)
[ -z "$size"] && echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 获取可用空间失败,请使用ssh手动上传至 ${easytierbin} ${path}/easytier-cli" >>/tmp/easytier.log
if [ $(($(/tmp/easytier-core -h | wc -l))) -gt 3 ] && [ "$result" -gt 4000 ] ; then
if [ $(($(/tmp/easytier-core -h | wc -l))) -gt 3 ] && [ "$result" -gt 1000 ] ; then
mv -f /tmp/easytier-core "$easytierbin" 2>/dev/null
mv -f /tmp/easytier-cli "${path}/easytier-cli" 2>/dev/null
else
echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 无法替换,上传的程序不完整或自定义路径的可用空间不足,当前空间剩余${size}kb" >>/tmp/easytier.log
fi
fi
if [ ! -f "$easytierbin" ] && [ "$size" -lt 4000 ] ; then
if [ ! -f "$easytierbin" ] && [ "$size" -lt 5000 ] ; then
echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 自定义程序路径的可用空间不足,当前可用空间剩余${size}kb,自动切换为内存/tmp/easytier-core" >>/tmp/easytier.log
sed -i "/easytierbin/c option easytierbin '/tmp/easytier-core' " /etc/config/easytier
easytierbin=/tmp/easytier-core
@@ -80,7 +81,7 @@ start_et() {
[ -z "$newtag"] && newtag=v1.2.2
echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 未找到程序 $easytierbin 开始在线下载${newtag},下载较慢耐心等候" >>/tmp/easytier.log
mkdir -p "$path"
curl -L -k -s -o /tmp/easytier.zip --connect-timeout 10 --retry 3 "http://gh.ddlc.top/https://github.com/EasyTier/EasyTier/releases/download/${newtag}/easytier-linux-${cpucore}-${newtag}.zip" || curl -L -k -s -o /tmp/easytier.zip --connect-timeout 10 --retry 3 "https://hub.gitmirror.com/https://github.com/EasyTier/EasyTier/releases/download/${newtag}/easytier-linux-${cpucore}-${newtag}.zip" || curl -L -k -s -o /tmp/easytier.zip --connect-timeout 10 --retry 3 "https://github.com/EasyTier/EasyTier/releases/download/${newtag}/easytier-linux-${cpucore}-${newtag}.zip"
curl -L -k -s -o /tmp/easytier.zip --connect-timeout 10 --retry 3 "http://gh.ddlc.top/https://github.com/EasyTier/EasyTier/releases/download/${newtag}/easytier-linux-${cpucore}-${newtag}.zip" || curl -L -k -s -o /tmp/easytier.zip --connect-timeout 10 --retry 3 "https://hub.gitmirror.com/https://github.com/EasyTier/EasyTier/releases/download/${newtag}/easytier-linux-${cpucore}-${newtag}.zip" || wget --no-check-certificate --quiet --timeout=10 --tries=3 -O /tmp/easytier.zip "http://gh.ddlc.top/https://github.com/EasyTier/EasyTier/releases/download/${newtag}/easytier-linux-${cpucore}-${newtag}.zip" || curl -L -k -s -o /tmp/easytier.zip --connect-timeout 10 --retry 3 "https://github.com/EasyTier/EasyTier/releases/download/${newtag}/easytier-linux-${cpucore}-${newtag}.zip"
unzip -q -o /tmp/easytier.zip -d /tmp
chmod +x /tmp/easytier-linux-${cpucore}-${newtag}/*
mv -f /tmp/easytier-linux-${cpucore}-${newtag}/* ${path}/*
@@ -103,7 +104,7 @@ start_et() {
ps | grep 'easytier-core' | grep -v grep | awk '{print $1}' | xargs kill >/dev/null 2>&1
ps | grep 'easytier-core' | grep -v grep | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1
local network_name network_secret ip_dhcp ipaddr peeradd external_node rpc_portal listenermode tunname relay_network disable_p2p
local network_name network_secret ip_dhcp ipaddr peeradd external_node rpc_portal listenermode tunname relay_network disable_p2p disable_udp
local tcp_port ws_port wss_port wg_port desvice_name instance_name vpn_portal mtu default_protocol disable_encryption whitelist socks_port
local multi_thread disable_ipv6 latency_first exit_node exit_nodes smoltcp no_tun manual_routes log check checkip proxy_network relay_all
@@ -137,9 +138,10 @@ start_et() {
config_get exit_nodes "$cfg" 'exit_nodes'
config_get_bool no_tun "$cfg" 'no_tun' '0'
config_get manual_routes "$cfg" 'manual_routes'
config_get_bool log "$cfg" 'log' '0'
config_get log "$cfg" 'log' 'off'
config_get_bool check "$cfg" 'check' '0'
config_get_bool disable_p2p "$cfg" 'disable_p2p' '0'
config_get_bool disable_udp "$cfg" 'disable_udp' '0'
config_get_bool relay_all "$cfg" 'relay_all' '0'
config_get checkip "$cfg" 'checkip'
config_get socks_port "$cfg" 'socks_port'
@@ -177,6 +179,15 @@ start_et() {
done
fi
fi
if [ ! -z "$external_node" ] ; then
if [[ "$(grep "list external_node" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then
procd_append_param command -e "$external_node"
else
for external_nodes in $(cat /etc/config/easytier | grep 'list external_node' | awk -F 'list external_node' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do
procd_append_param command -e "$external_nodes"
done
fi
fi
if [ ! -z "$manual_routes" ] ; then
if [[ "$(grep "list manual_routes" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then
procd_append_param command --manual-routes "$manual_routes"
@@ -195,7 +206,6 @@ start_et() {
done
fi
fi
[ -z "$external_node" ] || procd_append_param command -e "$external_node"
[ -z "$rpc_portal" ] || procd_append_param command -r "$rpc_portal"
[ -z "$tcp_port" ] || procd_append_param command -l "tcp:$tcp_port"
[ -z "$tcp_port" ] || procd_append_param command -l "udp:$tcp_port"
@@ -216,12 +226,13 @@ start_et() {
[ "$disable_ipv6" = "0" ] || procd_append_param command --disable-ipv6
[ "$latency_first" = "0" ] || procd_append_param command --latency-first
[ "$exit_node" = "0" ] || procd_append_param command --enable-exit-node
[ "$log" = "1" ] && procd_append_param command --file-log-level "info"
[ "$log" = "1" ] && procd_append_param command --file-log-dir "/tmp"
[ "$log" = "0" ] && procd_append_param command --file-log-level "off"
[ "$disable_p2p" = "0" ] || procd_append_param command --disable-p2p
[ "$relay_all" = "0" ] || procd_append_param command --relay-all-peer-rpc
[ -z "$socks_port" ] || procd_append_param command --socks5 "$socks_port"
[ "$log" = "off" ] || procd_append_param command --file-log-level "$log"
[ "$log" = "off" ] || procd_append_param command --file-log-dir "/tmp"
[ "$log" = "off" ] && procd_append_param command --file-log-level "off"
[ "$disable_p2p" = "0" ] || procd_append_param command --disable-p2p
[ "$disable_udp" = "0" ] || procd_append_param command --disable-udp-hole-punching
[ "$relay_all" = "0" ] || procd_append_param command --relay-all-peer-rpc
[ -z "$socks_port" ] || procd_append_param command --socks5 "$socks_port"
[ ! -z "$instance_name" ] && ln -sf /tmp/easytier-${instance_name}.${date_time} /tmp/easytier.log
procd_set_param limits core="unlimited"
@@ -344,7 +355,7 @@ start_service() {
fi
cputype=$(uname -ms | tr ' ' '_' | tr '[A-Z]' '[a-z]')
[ -n "$(echo $cputype | grep -E "linux.*armv.*")" ] && cpucore="arm"
[ -n "$(echo $cputype | grep -E "linux.*armv7.*")" ] && [ -n "$(cat /proc/cpuinfo | grep vfp)" ] && [ ! -d /jffs/clash ] && cpucore="armv7"
[ -n "$(echo $cputype | grep -E "linux.*armv7.*")" ] && [ -n "$(cat /proc/cpuinfo | grep vfp)" ] && cpucore="armv7"
[ -n "$(echo $cputype | grep -E "linux.*aarch64.*|linux.*armv8.*")" ] && cpucore="aarch64"
[ -n "$(echo $cputype | grep -E "linux.*86.*")" ] && cpucore="i386"
[ -n "$(echo $cputype | grep -E "linux.*86_64.*")" ] && cpucore="x86_64"
@@ -378,7 +389,7 @@ stop_service() {
[ -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
rm -rf /tmp/easytier-cli_peer /tmp/easytier-cli_connector /tmp/easytier-cli_stun /tmp/easytier-cli_route >/dev/null 2>&1
rm -rf /tmp/easytier-cli_peer-center /tmp/easytier-cli_vpn-portal /tmp/easytier_cmd >/dev/null 2>&1
rm -rf /tmp/easytier-cli_peer-center /tmp/easytier-cli_vpn-portal /tmp/easytier_cmd /tmp/easytier-cli_node >/dev/null 2>&1
rm -rf /tmp/easytier-*.* /tmp/easytier.log >/dev/null 2>&1
rm -rf /tmp/easytiernew.tag /tmp/easytier.tag >/dev/null 2>&1
echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 停止运行" >>/tmp/easytier.log