mirror of
https://github.com/EasyTier/luci-app-easytier.git
synced 2025-05-19 10:29:25 +00:00
增加禁用udp攻击参数 显示本机节点信息 (#6)
* 赋予启动脚本执行权限 * 修复接口未识别的协议 * 新增--socks5参数 * 添加禁用udp打洞参数 * 修改默认日志等级 * 关闭的时候删除本机信息文本 * 增加显示本机节点信息 * 增加wget在线下载 * 修改为可以多个-e参数 * 添加多个公益节点快捷选项
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user