From b982991f633fbac91727a694578d9d8a3dfd732d Mon Sep 17 00:00:00 2001 From: lmq8267 <119713693+lmq8267@users.noreply.github.com> Date: Fri, 7 Feb 2025 11:01:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20--mapped-listeners=20=20--?= =?UTF-8?q?bind-device=20=20--enable-kcp-proxy=20--disable-kcp-input=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-easytier/root/etc/init.d/easytier | 202 +++++++++++---------- 1 file changed, 110 insertions(+), 92 deletions(-) diff --git a/luci-app-easytier/root/etc/init.d/easytier b/luci-app-easytier/root/etc/init.d/easytier index 30cbdc1..4cf59f2 100644 --- a/luci-app-easytier/root/etc/init.d/easytier +++ b/luci-app-easytier/root/etc/init.d/easytier @@ -80,6 +80,7 @@ check_bin() { if [ "$($easytierbin -h 2>&1 | wc -l)" -lt 3 ] || [ ! -f "$easytierbin" ] ; 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加速地址,一行一个 你可以自建改为你自己的 proxys="https://github.moeyy.xyz/ https://gh.llkk.cc/ https://mirror.ghproxy.com/ @@ -262,6 +263,10 @@ get_etconfig() { checkip="$(uci -q get easytier.@easytier[0].checkip)" socks_port="$(uci -q get easytier.@easytier[0].socks_port)" comp="$(uci -q get easytier.@easytier[0].comp || echo none)" + mapped_listeners="$(uci -q get easytier.@easytier[0].mapped_listeners)" + bind_device="$(uci -q get easytier.@easytier[0].bind_device || echo 0)" + kcp_proxy="$(uci -q get easytier.@easytier[0].kcp_proxy || echo 0)" + kcp_input="$(uci -q get easytier.@easytier[0].kcp_input || echo 0)" } set_firewall() { @@ -395,98 +400,111 @@ start_et() { procd_open_instance procd_set_param command "$easytierbin" if [ "$etcmd" = "etcmd" ] ; then - [ -z "$network_name" ] || procd_append_param command --network-name "$network_name" - [ -z "$network_secret" ] || procd_append_param command --network-secret "$network_secret" - [ -z "$ipaddr" ] || procd_append_param command -i "$ipaddr" - [ "$ip_dhcp" = "0" ] || procd_append_param command -d - if [ ! -z "$peeradd" ] ; then - if [[ "$(grep "list peeradd" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then - procd_append_param command -p "$peeradd" - else - for peeraddr in $(cat /etc/config/easytier | grep 'list peeradd' | awk -F 'list peeradd' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do - procd_append_param command -p "$peeraddr" - done - fi - fi - if [ ! -z "$proxy_network" ] ; then - if [[ "$(grep "list proxy_network" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then - procd_append_param command -n "$proxy_network" - else - for proxy_networks in $(cat /etc/config/easytier | grep 'list proxy_network' | awk -F 'list proxy_network' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do - procd_append_param command -n "$proxy_networks" - done - fi - fi - if [ ! -z "$exit_nodes" ] ; then - if [[ "$(grep "list exit_nodes" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then - procd_append_param command --exit-nodes "$exit_nodes" - else - for exit_nodeadds in $(cat /etc/config/easytier | grep 'list exit_nodes' | awk -F 'list exit_nodes' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do - procd_append_param command --exit-nodes "$exit_nodeadds" - 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" - else - for manual_routeadds in $(cat /etc/config/easytier | grep 'list manual_routes' | awk -F 'list manual_routes' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do - procd_append_param command --manual-routes "$manual_routeadds" - done - fi - fi - if [ ! -z "$whitelist" ] ; then - if [[ "$(grep "list whitelist" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then - procd_append_param command --relay-network-whitelist "$whitelist" - else - for whitelists in $(cat /etc/config/easytier | grep 'list whitelist' | awk -F 'list whitelist' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do - procd_append_param command --relay-network-whitelist "$whitelists" - done - fi - fi - [ -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" - [ -z "$ws_port" ] || procd_append_param command -l "ws:$ws_port" - [ -z "$wss_port" ] || procd_append_param command -l "wss:$wss_port" - [ -z "$wg_port" ] || procd_append_param command -l "wg:$wg_port" - if [ "$listener6" = "1" ] ; then - if [ -z "$tcp_port" ] && [ -z "$ws_port" ] && [ -z "$wss_port" ] && [ -z "$wg_port" ] ; then - tcp_port="11010" - ws_port="11011" - wss_port="11012" - wg_port="11011" - fi - [ -z "$tcp_port" ] || procd_append_param command -l "tcp://[::]:$tcp_port" - [ -z "$tcp_port" ] || procd_append_param command -l "udp://[::]:$tcp_port" - [ -z "$ws_port" ] || procd_append_param command -l "ws://[::]:$ws_port" - [ -z "$wss_port" ] || procd_append_param command -l "wss://[::]:$wss_port" - [ -z "$wg_port" ] || procd_append_param command -l "wg://[::]:$wg_port" - fi - [ -z "$external_node" ] || procd_append_param command -e "$external_node" - [ "$listenermode" = "ON" ] || procd_append_param command --no-listener - [ -z "$desvice_name" ] || procd_append_param command --hostname "$desvice_name" - [ -z "$instance_name" ] || procd_append_param command -m "$instance_name" - [ -z "$vpn_portal" ] || procd_append_param command --vpn-portal "$vpn_portal" - [ -z "$mtu" ] || procd_append_param command --mtu "$mtu" - [ "$default_protocol" = "-" ] || procd_append_param command --default-protocol "$default_protocol" - [ -z "$tunname" ] || procd_append_param command --dev-name "$tunname" - [ "$disable_encryption" = "0" ] || procd_append_param command -u - [ "$multi_thread" = "0" ] || procd_append_param command --multi-thread - [ "$no_tun" = "0" ] || procd_append_param command --no-tun - [ "$smoltcp" = "0" ] || procd_append_param command --use-smoltcp - [ "$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" = "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" - [ "$comp" = "none" ] || procd_append_param command --compression "$comp" - fi + [ -z "$network_name" ] || procd_append_param command --network-name "$network_name" + [ -z "$network_secret" ] || procd_append_param command --network-secret "$network_secret" + [ -z "$ipaddr" ] || procd_append_param command -i "$ipaddr" + [ "$ip_dhcp" = "0" ] || procd_append_param command -d + if [ ! -z "$peeradd" ] ; then + if [[ "$(grep "list peeradd" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then + procd_append_param command -p "$peeradd" + else + for peeraddr in $(cat /etc/config/easytier | grep 'list peeradd' | awk -F 'list peeradd' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do + procd_append_param command -p "$peeraddr" + done + fi + fi + if [ ! -z "$proxy_network" ] ; then + if [[ "$(grep "list proxy_network" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then + procd_append_param command -n "$proxy_network" + else + for proxy_networks in $(cat /etc/config/easytier | grep 'list proxy_network' | awk -F 'list proxy_network' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do + procd_append_param command -n "$proxy_networks" + done + fi + fi + if [ ! -z "$exit_nodes" ] ; then + if [[ "$(grep "list exit_nodes" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then + procd_append_param command --exit-nodes "$exit_nodes" + else + for exit_nodeadds in $(cat /etc/config/easytier | grep 'list exit_nodes' | awk -F 'list exit_nodes' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do + procd_append_param command --exit-nodes "$exit_nodeadds" + 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" + else + for manual_routeadds in $(cat /etc/config/easytier | grep 'list manual_routes' | awk -F 'list manual_routes' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do + procd_append_param command --manual-routes "$manual_routeadds" + done + fi + fi + if [ ! -z "$whitelist" ] ; then + if [[ "$(grep "list whitelist" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then + procd_append_param command --relay-network-whitelist "$whitelist" + else + for whitelists in $(cat /etc/config/easytier | grep 'list whitelist' | awk -F 'list whitelist' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do + procd_append_param command --relay-network-whitelist "$whitelists" + done + fi + fi + if [ ! -z "$mapped_listeners" ] ; then + if [[ "$(grep "list mapped_listeners" /etc/config/easytier | awk '{print $3}' | wc -l ) " -eq 1 ]]; then + procd_append_param command --mapped-listeners "$mapped_listeners" + else + for mapped_listener in $(cat /etc/config/easytier | grep 'list mapped_listeners' | awk -F 'list whitelist' '{print $2}' | sed "s/'/\n/g" | tr -d " ' "); do + procd_append_param command --mapped-listeners "$mapped_listener" + done + fi + fi + [ -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" + [ -z "$ws_port" ] || procd_append_param command -l "ws:$ws_port" + [ -z "$wss_port" ] || procd_append_param command -l "wss:$wss_port" + [ -z "$wg_port" ] || procd_append_param command -l "wg:$wg_port" + if [ "$listener6" = "1" ] ; then + if [ -z "$tcp_port" ] && [ -z "$ws_port" ] && [ -z "$wss_port" ] && [ -z "$wg_port" ] ; then + tcp_port="11010" + ws_port="11011" + wss_port="11012" + wg_port="11011" + fi + [ -z "$tcp_port" ] || procd_append_param command -l "tcp://[::]:$tcp_port" + [ -z "$tcp_port" ] || procd_append_param command -l "udp://[::]:$tcp_port" + [ -z "$ws_port" ] || procd_append_param command -l "ws://[::]:$ws_port" + [ -z "$wss_port" ] || procd_append_param command -l "wss://[::]:$wss_port" + [ -z "$wg_port" ] || procd_append_param command -l "wg://[::]:$wg_port" + fi + [ -z "$external_node" ] || procd_append_param command -e "$external_node" + [ "$listenermode" = "ON" ] || procd_append_param command --no-listener + [ -z "$desvice_name" ] || procd_append_param command --hostname "$desvice_name" + [ -z "$instance_name" ] || procd_append_param command -m "$instance_name" + [ -z "$vpn_portal" ] || procd_append_param command --vpn-portal "$vpn_portal" + [ -z "$mtu" ] || procd_append_param command --mtu "$mtu" + [ "$default_protocol" = "-" ] || procd_append_param command --default-protocol "$default_protocol" + [ -z "$tunname" ] || procd_append_param command --dev-name "$tunname" + [ "$disable_encryption" = "0" ] || procd_append_param command -u + [ "$multi_thread" = "0" ] || procd_append_param command --multi-thread + [ "$no_tun" = "0" ] || procd_append_param command --no-tun + [ "$smoltcp" = "0" ] || procd_append_param command --use-smoltcp + [ "$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" = "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" + [ "$comp" = "none" ] || procd_append_param command --compression "$comp" + [ "$bind_device" = "0" ] || procd_append_param command --bind-device true + [ "$bind_device" = "1" ] || procd_append_param command --bind-device false + [ "$kcp_proxy" = "0" ] || procd_append_param command --enable-kcp-proxy + [ "$kcp_input" = "0" ] || procd_append_param command --disable-kcp-input + fi if [ "$etcmd" = "web" ] ; then echo "$(date '+%Y-%m-%d %H:%M:%S') easytier : 运行 ${easytierbin} -w ${web_config}" >>/tmp/easytier.log [ -z "$web_config" ] || procd_append_param command -w "$web_config"