diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 532aa698a..4daef9169 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -759,19 +759,21 @@ function interfaces_status() mArray.openmptcprouter["wan_addr"] = "" mArray.openmptcprouter["wan_addr6"] = "" local tracker_ip = "" + local check_ipv4_website = uci:get("openmptcprouter","settings","check_ipv4_website") or "http://ip.openmptcprouter.com" + local check_ipv6_website = uci:get("openmptcprouter","settings","check_ipv6_website") or "http://ipv6.openmptcprouter.com" if mArray.openmptcprouter["dns"] == true then -- wanaddr --mArray.openmptcprouter["wan_addr"] = uci:get("openmptcprouter","omr","public_detected_ipv4") or "" if uci:get("openmptcprouter","settings","external_check") ~= "0" then - mArray.openmptcprouter["wan_addr"] = ut.trim(sys.exec("wget -4 -qO- -T 2 http://ip.openmptcprouter.com")) + mArray.openmptcprouter["wan_addr"] = ut.trim(sys.exec("wget -4 -qO- -T 2 " .. check_ipv4_website)) if mArray.openmptcprouter["wan_addr"] == "" then mArray.openmptcprouter["wan_addr"] = ut.trim(sys.exec("dig TXT +timeout=2 +short o-o.myaddr.l.google.com | awk -F'\"' '{print $2}'")) end if mArray.openmptcprouter["ipv6"] == "enabled" then mArray.openmptcprouter["wan_addr6"] = uci:get("openmptcprouter","omr","public_detected_ipv6") or "" if mArray.openmptcprouter["wan_addr6"] == "" then - mArray.openmptcprouter["wan_addr6"] = ut.trim(sys.exec("wget -6 -qO- -T 2 http://ipv6.openmptcprouter.com")) + mArray.openmptcprouter["wan_addr6"] = ut.trim(sys.exec("wget -6 -qO- -T 2 " .. check_ipv6_website)) end end mArray.openmptcprouter["external_check"] = true @@ -785,7 +787,7 @@ function interfaces_status() if tracker_ip ~= "" then local tracker_port = uci:get("shadowsocks-libev","tracker","local_port") if uci:get("openmptcprouter","settings","external_check") ~= "0" then - mArray.openmptcprouter["ss_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 2 http://ip.openmptcprouter.com")) + mArray.openmptcprouter["ss_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 2 " .. check_ipv4_website)) --mArray.openmptcprouter["ss_addr6"] = sys.exec("curl -s -6 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 3 http://ipv6.openmptcprouter.com") end end diff --git a/luci-app-openmptcprouter/root/bin/omr-ip-intf b/luci-app-openmptcprouter/root/bin/omr-ip-intf index 985921054..8913c3ca5 100755 --- a/luci-app-openmptcprouter/root/bin/omr-ip-intf +++ b/luci-app-openmptcprouter/root/bin/omr-ip-intf @@ -1,7 +1,9 @@ #!/bin/sh -checkip=$(dig +short A ip.openmptcprouter.com | tr -d "\n") +check_ipv4_website="$(uci -q get openmptcprouter.settings.check_ipv4_website)" +[ -z "$check_ipv4_website" ] && check_ipv4_website="http://ip.openmptcprouter.com" +checkip=$(echo $check_ipv4_website | sed -e 's/https:\/\///' -e 's/http:\/\///' | xargs dig +short A | tr -d "\n") ipset add ss_rules_dst_bypass_all $checkip > /dev/null 2>&1 -ip="$(curl -s -4 -m 3 --interface $1 http://ip.openmptcprouter.com)" +ip="$(curl -s -4 -m 3 --interface $1 $check_ipv4_website)" ipset del ss_rules_dst_bypass_all $checkip > /dev/null 2>&1 if expr "$ip" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then echo $ip diff --git a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter index 41a3a2d37..7b5b9efea 100755 --- a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter @@ -65,4 +65,16 @@ if [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" = "" ]; then commit openmptcprouter EOF fi +if [ "$(uci -q get openmptcprouter.settings.check_ipv4_website)" = "" ]; then + uci -q batch <<-EOF >/dev/null + set openmptcprouter.settings.check_ipv4_website='http://ip.openmptcprouter.com' + commit openmptcprouter + EOF +fi +if [ "$(uci -q get openmptcprouter.settings.check_ipv6_website)" = "" ]; then + uci -q batch <<-EOF >/dev/null + set openmptcprouter.settings.check_ipv4_website='http://ipv6.openmptcprouter.com' + commit openmptcprouter + EOF +fi exit 0 diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index c1beea304..ee72f7117 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -414,7 +414,9 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( fi [ -n "$ipaddr" ] && { # Check if we can get a IPv6 address, if yes enable RA else disable - local ip6addr="$(curl -s -6 -m 3 http://ipv6.openmptcprouter.com/)" + local check_ipv6_website="$(uci -q get openmptcprouter.settings.check_ipv6_website)" + [ -z "$check_ipv6_website" ] && check_ipv6_website="http://ipv6.openmptcprouter.com/" + local ip6addr="$(curl -s -6 -m 3 $check_ipv6_website)" [ -z "$ip6addr" ] && { local ip6addr="$(curl -s -6 -m 3 http://ifconfig.co/)" } @@ -501,8 +503,8 @@ fi [ -n "$OMR_TRACKER_LATENCY" ] && { [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency)" != "" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_previous="$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency)" uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" - [ -z "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max)" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max="$OMR_TRACKER_LATENCY" - [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max)" -lt "$OMR_TRACKER_LATENCY" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max="$OMR_TRACKER_LATENCY" + #[ -z "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max)" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max="$OMR_TRACKER_LATENCY" + #[ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max)" -lt "$OMR_TRACKER_LATENCY" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max="$OMR_TRACKER_LATENCY" if [ "$multipath_config" = "on" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.multipath)" != "master" ] && ([ "$(uci -q get openmptcprouter.settings.master)" = "dynamic" ] || (([ "$(uci -q get openmptcprouter.settings.master)" = "change" ] || [ "$(uci -q get openmptcprouter.settings.master)" = "" ]) && [ "$(uci -q get openmptcprouter.settings.master_lcintf | grep $OMR_TRACKER_INTERFACE)" = "" ])); then masterintf="$(uci -q show network | grep multipath=\'master\' | cut -d'.' -f2)" masterlatency="$(uci -q get openmptcprouter.$masterintf.latency | tr -d '\n')" diff --git a/omr-tracker/files/bin/omr-tracker-ss b/omr-tracker/files/bin/omr-tracker-ss index 5ed7c3ce1..0ac8a7806 100755 --- a/omr-tracker/files/bin/omr-tracker-ss +++ b/omr-tracker/files/bin/omr-tracker-ss @@ -23,10 +23,14 @@ _ping_server() { _get_ip() { uci -q set openmptcprouter.omr=router if [ "$(uci -q get openmptcprouter.settings.external_check)" != "0" ]; then - uci -q set openmptcprouter.omr.detected_public_ipv4="$(wget -4 -qO- -T 3 http://ip.openmptcprouter.com)" - uci -q set openmptcprouter.omr.detected_ss_ipv4="$(curl -s -4 --socks5 "${proxy}" --max-time 3 http://ip.openmptcprouter.com)" + check_ipv4_website="$(uci -q get openmptcprouter.settings.check_ipv4_website)" + [ -z "$check_ipv4_website" ] && check_ipv4_website="http://ip.openmptcprouter.com" + check_ipv6_website="$(uci -q get openmptcprouter.settings.check_ipv6_website)" + [ -z "$check_ipv6_website" ] && check_ipv4_website="http://ipv6.openmptcprouter.com" + uci -q set openmptcprouter.omr.detected_public_ipv4="$(wget -4 -qO- -T 3 $check_ipv4_website)" + uci -q set openmptcprouter.omr.detected_ss_ipv4="$(curl -s -4 --socks5 "${proxy}" --max-time 3 $check_ipv4_website)" if [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" != "1" ]; then - uci -q set openmptcprouter.omr.detected_public_ipv6="$(wget -6 -qO- -T 3 http://ip.openmptcprouter.com)" + uci -q set openmptcprouter.omr.detected_public_ipv6="$(wget -6 -qO- -T 3 $check_ipv6_website)" # uci -q set openmptcprouter.omr.detected_ss_ipv6=$(curl -s -6 --socks5 ":::1111" --max-time 3 http://ip.openmptcprouter.com) fi fi