mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-15 03:51:51 +00:00
commit
896c29c4be
15 changed files with 392 additions and 59 deletions
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
|
@ -9,7 +9,7 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
OMR_TARGET: [bpi-r1, bpi-r2, bpi-r64, rpi2, rpi4, wrt32x, espressobin, r2s, rpi3, wrt3200acm, x86, x86_64, ubnt-erx, r4s, r7800, rutx, r5s, qnap-301w]
|
||||
OMR_KERNEL: [5.4, 5.15, 6.1]
|
||||
OMR_KERNEL: [5.4, 6.1]
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
|
||||
|
|
|
@ -41,6 +41,13 @@ o.default = "0"
|
|||
o.datatype = "range(0, 100)"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Flag, "mail_alert", translate("Mail alert"), translate("Send a mail when connection state change"))
|
||||
o.optional = false
|
||||
o.rmempty = false
|
||||
o.default = false
|
||||
o.disabled = 0
|
||||
o.enabled = 1
|
||||
|
||||
o = s:option(DynamicList, "hosts", translate("Hosts"), translate("IPs or domains must be available over http"))
|
||||
o.placeholder = "bing.com"
|
||||
o.default = { "bing.com", "google.com" }
|
||||
|
@ -84,6 +91,13 @@ o.default = "0"
|
|||
o.datatype = "range(0, 100)"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Flag, "mail_alert", translate("Mail alert"), translate("Send a mail when connection state change"))
|
||||
o.optional = false
|
||||
o.rmempty = false
|
||||
o.default = false
|
||||
o.disabled = 0
|
||||
o.enabled = 1
|
||||
|
||||
s = m:section(TypedSection, "defaults", translate("Defaults Settings"), translate("OMR-Tracker create needed routes and detect when a connection is down or up"))
|
||||
s.anonymous = true
|
||||
|
||||
|
|
|
@ -675,9 +675,18 @@ function wizard_add()
|
|||
ucic:set("shadowsocks-libev",sectionname,"disabled","0")
|
||||
end
|
||||
end)
|
||||
elseif default_proxy == "v2ray" and serversnb > 0 and serversnb > disablednb then
|
||||
elseif (default_proxy == "v2ray" or default_proxy == "v2ray-vmess" or default_proxy == "v2ray-trojan" or default_proxy == "v2ray-socks") and serversnb > 0 and serversnb > disablednb then
|
||||
--ucic:set("shadowsocks-libev","sss0","disabled","1")
|
||||
ucic:set("v2ray","main","enabled","1")
|
||||
if default_proxy == "v2ray" then
|
||||
ucic:set("v2ray","omrout","protocol","vless")
|
||||
elseif default_proxy == "v2ray-vmess" then
|
||||
ucic:set("v2ray","omrout","protocol","vmess")
|
||||
elseif default_proxy == "v2ray-trojan" then
|
||||
ucic:set("v2ray","omrout","protocol","trojan")
|
||||
elseif default_proxy == "v2ray-socks" then
|
||||
ucic:set("v2ray","omrout","protocol","socks")
|
||||
end
|
||||
ucic:foreach("shadowsocks-libev", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-libev",sectionname,"disabled","1")
|
||||
|
@ -733,6 +742,8 @@ function wizard_add()
|
|||
ucic:set("ubond","general","host",server_ip)
|
||||
ucic:set("v2ray","omrout","s_vmess_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_vless_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_trojan_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_socks_address",server_ip)
|
||||
luci.sys.call("uci -q del openvpn.omr.remote")
|
||||
luci.sys.call("uci -q add_list openvpn.omr.remote=" .. server_ip)
|
||||
ucic:set("qos","serverin","srchost",server_ip)
|
||||
|
@ -771,6 +782,8 @@ function wizard_add()
|
|||
ucic:set("ubond","general","host",server_ip)
|
||||
ucic:set("v2ray","omrout","s_vmess_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_vless_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_trojan_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_socks_address",server_ip)
|
||||
luci.sys.call("uci -q del openvpn.omr.remote")
|
||||
luci.sys.call("uci -q add_list openvpn.omr.remote=" .. server_ip)
|
||||
ucic:set("qos","serverin","srchost",server_ip)
|
||||
|
@ -822,6 +835,8 @@ function wizard_add()
|
|||
ucic:set("mlvpn","general","cleartext_data","1")
|
||||
ucic:set("v2ray","omrout","s_vmess_user_security","none")
|
||||
ucic:set("v2ray","omrout","s_vless_user_security","none")
|
||||
ucic:set("v2ray","omrout","s_trojan_user_security","none")
|
||||
ucic:set("v2ray","omrout","s_socks_user_security","none")
|
||||
elseif encryption == "aes-256-gcm" then
|
||||
ucic:set("openmptcprouter","settings","encryption","aes-256-gcm")
|
||||
ucic:set("shadowsocks-libev","sss0","method","aes-256-gcm")
|
||||
|
@ -832,6 +847,8 @@ function wizard_add()
|
|||
ucic:set("mlvpn","general","cleartext_data","0")
|
||||
ucic:set("v2ray","omrout","s_vmess_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_vless_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_trojan_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_socks_user_security","aes-128-gcm")
|
||||
elseif encryption == "aes-256-cfb" then
|
||||
ucic:set("openmptcprouter","settings","encryption","aes-256-cfb")
|
||||
ucic:set("shadowsocks-libev","sss0","method","aes-256-cfb")
|
||||
|
@ -842,6 +859,8 @@ function wizard_add()
|
|||
ucic:set("mlvpn","general","cleartext_data","0")
|
||||
ucic:set("v2ray","omrout","s_vmess_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_vless_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_trojan_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_socks_user_security","aes-128-gcm")
|
||||
elseif encryption == "chacha20-ietf-poly1305" then
|
||||
ucic:set("openmptcprouter","settings","encryption","chacha20")
|
||||
ucic:set("shadowsocks-libev","sss0","method","chacha20-ietf-poly1305")
|
||||
|
@ -852,6 +871,8 @@ function wizard_add()
|
|||
ucic:set("mlvpn","general","cleartext_data","0")
|
||||
ucic:set("v2ray","omrout","s_vmess_user_security","chacha20-poly1305")
|
||||
ucic:set("v2ray","omrout","s_vless_user_security","chacha20-poly1305")
|
||||
ucic:set("v2ray","omrout","s_trojan_user_security","chacha20-poly1305")
|
||||
ucic:set("v2ray","omrout","s_socks_user_security","chacha20-poly1305")
|
||||
else
|
||||
ucic:set("openmptcprouter","settings","encryption","other")
|
||||
end
|
||||
|
@ -892,6 +913,8 @@ function wizard_add()
|
|||
local v2ray_user = luci.http.formvalue("v2ray_user")
|
||||
ucic:set("v2ray","omrout","s_vmess_user_id",v2ray_user)
|
||||
ucic:set("v2ray","omrout","s_vless_user_id",v2ray_user)
|
||||
ucic:set("v2ray","omrout","s_trojan_user_id",v2ray_user)
|
||||
ucic:set("v2ray","omrout","s_socks_user_id",v2ray_user)
|
||||
ucic:save("v2ray")
|
||||
ucic:commit("v2ray")
|
||||
|
||||
|
|
|
@ -298,7 +298,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:When proxy V2Ray is used, use it for UDP%></label>
|
||||
<label class="cbi-value-title"><%:When proxy V2Ray VLESS or VMESS is used, use it for UDP%></label>
|
||||
<div class="cbi-value-field">
|
||||
<input type="checkbox" name="v2rayudp" class="cbi-input-checkbox" value="1" <% if luci.model.uci.cursor():get("v2ray","main_transparent_proxy","redirect_udp") == "1" then %>checked<% end %>>
|
||||
</div>
|
||||
|
|
|
@ -233,17 +233,20 @@
|
|||
<div class="cbi-value-field">
|
||||
<select class="cbi-input-select" name="default_proxy" size="1">
|
||||
<% if nixio.fs.access("/etc/init.d/shadowsocks-libev") then %><option value="shadowsocks" <% if uci:get("openmptcprouter","settings","shadowsocks") == "0" or uci:get("openmptcprouter","settings","proxy") == nil then %>selected="selected"<% end %>>Shadowsocks</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %><option value="v2ray" <% if uci:get("openmptcprouter","settings","proxy") == "v2ray" then %>selected="selected"<% end %>>V2Ray</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %><option value="v2ray" <% if uci:get("openmptcprouter","settings","proxy") == "v2ray" then %>selected="selected"<% end %>>V2Ray VLESS</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %><option value="v2ray-vmess" <% if uci:get("openmptcprouter","settings","proxy") == "v2ray-vmess" then %>selected="selected"<% end %>>V2Ray VMESS</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %><option value="v2ray-trojan" <% if uci:get("openmptcprouter","settings","proxy") == "v2ray-trojan" then %>selected="selected"<% end %>>V2Ray TROJAN</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %><option value="v2ray-socks" <% if uci:get("openmptcprouter","settings","proxy") == "v2ray-socks" then %>selected="selected"<% end %>>V2Ray SOCKS</option><% end %>
|
||||
<option value="none" <% if uci:get("openmptcprouter","settings","proxy") == "none" then %>selected="selected"<% end %>>None</option>
|
||||
</select>
|
||||
<br />
|
||||
<div class="cbi-value-description">
|
||||
<%:Set the default Proxy used for TCP when ShadowSocks is enabled, for TCP and UDP when V2Ray is enabled.%>
|
||||
<%:Set the default Proxy used for TCP when ShadowSocks is enabled, for TCP and UDP when V2Ray VLESS or VMESS is enabled.%>
|
||||
<%:Only ShadowSocks is supported with server multiple IPs for now.%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if nixio.fs.access("/etc/init.d/shadowsocks-libev") then %>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:ShadowSocks key%></label>
|
||||
<div class="cbi-value-field">
|
||||
|
@ -254,6 +257,8 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:V2Ray user id%></label>
|
||||
<div class="cbi-value-field">
|
||||
|
@ -264,6 +269,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:Encryption%></label>
|
||||
<div class="cbi-value-field">
|
||||
|
|
|
@ -45,7 +45,7 @@ declare -A proc_pids
|
|||
## Disable globbing (expansion of *).
|
||||
set -f
|
||||
## Forbid using unset variables.
|
||||
set -u
|
||||
#set -u
|
||||
## The exit status of a pipeline is the status of the last
|
||||
## command to exit with a non-zero status, or zero if no
|
||||
## command exited with a non-zero status.
|
||||
|
@ -2254,7 +2254,7 @@ do
|
|||
|
||||
log_msg "DEBUG" "Warning: no reflector response within: ${stall_detection_timeout_s} seconds. Checking loads."
|
||||
|
||||
log_msg "DEBUG" "load check is: (( ${achieved_rate_kbps[dl]} kbps > ${connection_stall_thr_kbps} kbps for download && ${achieved_rate_kbps[ul]} kbps > ${connection_stall_thr_kbps} kbps for upload ))"
|
||||
#log_msg "DEBUG" "load check is: (( ${achieved_rate_kbps[dl]} kbps > ${connection_stall_thr_kbps} kbps for download && ${achieved_rate_kbps[ul]} kbps > ${connection_stall_thr_kbps} kbps for upload ))"
|
||||
|
||||
# non-zero load so despite no reflector response within stall interval, the connection not considered to have stalled
|
||||
# and therefore resume normal operation
|
||||
|
|
|
@ -1250,9 +1250,9 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$multipath_config" = "on" ] || [ "$mul
|
|||
serverip="$(resolveip -4 -t 5 $serverip | head -n 1 | tr -d '\n')"
|
||||
if [ "$download" != "0" ] && [ "$download" != "" ] && [ "$upload" != "0" ] && [ "$upload" != "" ]; then
|
||||
if [ "$(uci -q get glorytun-udp.vpn.rateauto)" = "1" ]; then
|
||||
glorytun-udp path addr $OMR_TRACKER_DEVICE_IP to addr $serverip port ${gtudp_port} dev ${gtudp_dev} set up rate auto tx $((upload*1000/8)) rx $((download*1000/8)) pref 1 > /dev/null 2>&1
|
||||
glorytun-udp path addr $OMR_TRACKER_DEVICE_IP to addr $serverip port ${gtudp_port} dev ${gtudp_dev} set up rate auto tx $((upload*1000)) rx $((download*1000)) pref 1 > /dev/null 2>&1
|
||||
else
|
||||
glorytun-udp path addr $OMR_TRACKER_DEVICE_IP to addr $serverip port ${gtudp_port} dev ${gtudp_dev} set up rate fixed tx $((upload*1000/8)) rx $((download*1000/8)) pref 1 > /dev/null 2>&1
|
||||
glorytun-udp path addr $OMR_TRACKER_DEVICE_IP to addr $serverip port ${gtudp_port} dev ${gtudp_dev} set up rate fixed tx $((upload*1000)) rx $((download*1000)) pref 1 > /dev/null 2>&1
|
||||
fi
|
||||
else
|
||||
if [ "$(uci -q get glorytun-udp.vpn.rateauto)" = "1" ]; then
|
||||
|
@ -1266,9 +1266,9 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$multipath_config" = "on" ] || [ "$mul
|
|||
serverip="$(resolveip -6 -t 5 $serverip | head -n 1 | tr -d '\n')"
|
||||
if [ "$download" != "0" ] && [ "$download" != "" ] && [ "$upload" != "0" ] && [ "$upload" != "" ]; then
|
||||
if [ "$(uci -q get glorytun-udp.vpn.rateauto)" = "1" ]; then
|
||||
glorytun-udp path addr $OMR_TRACKER_DEVICE_IP6 to addr $serverip port ${gtudp_port} dev ${gtudp_dev} set up rate auto tx $((upload*1000/8)) rx $((download*1000/8)) pref 1 > /dev/null 2>&1
|
||||
glorytun-udp path addr $OMR_TRACKER_DEVICE_IP6 to addr $serverip port ${gtudp_port} dev ${gtudp_dev} set up rate auto tx $((upload*1000)) rx $((download*1000)) pref 1 > /dev/null 2>&1
|
||||
else
|
||||
glorytun-udp path addr $OMR_TRACKER_DEVICE_IP6 to addr $serverip port ${gtudp_port} dev ${gtudp_dev} set up rate fixed tx $((upload*1000/8)) rx $((download*1000/8)) pref 1 > /dev/null 2>&1
|
||||
glorytun-udp path addr $OMR_TRACKER_DEVICE_IP6 to addr $serverip port ${gtudp_port} dev ${gtudp_dev} set up rate fixed tx $((upload*1000)) rx $((download*1000)) pref 1 > /dev/null 2>&1
|
||||
fi
|
||||
else
|
||||
if [ "$(uci -q get glorytun-udp.vpn.rateauto)" = "1" ]; then
|
||||
|
|
|
@ -65,6 +65,8 @@ _check_master() {
|
|||
[ "$master" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && {
|
||||
set_ip() {
|
||||
local ip=$1
|
||||
ipresolve="$(resolveip -4 $ip | head -n 1)"
|
||||
[ -z "$ipresolve" ] && ip="$ipresolve"
|
||||
#_ping_server $ip
|
||||
_check_server $ip $port
|
||||
if [ "$server_ping" = true ]; then
|
||||
|
@ -91,7 +93,7 @@ _check_master() {
|
|||
del openvpn.omr.remote
|
||||
add_list openvpn.omr.remote=$ip
|
||||
commit openvpn
|
||||
set openmptcprouter.vps.current='1'
|
||||
set openmptcprouter.${name}.current='1'
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
/etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null
|
||||
|
@ -106,15 +108,49 @@ _check_master() {
|
|||
fi
|
||||
config_load shadowsocks-libev
|
||||
config_foreach _enable_redir ss_redir
|
||||
OMR_TRACKER_STATUS_MSG="Answer to ping and to API check"
|
||||
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_up_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_up_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_up_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Server ${name}/g" -e "s/%DEVICE%/${ip}/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_up_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Server ${name}/g" -e "s/%DEVICE%/${ip}/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: Server ${name} (${ip}) is UP\n. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_down="$(uci -q get omr-tracker.proxy.script_alert_up)"
|
||||
[ -n "$script_alert_down" ] && eval $script_alert_up
|
||||
count=$((count+1))
|
||||
else
|
||||
logger -t "OMR-Tracker-Server" "Master server ${name} down ($ip)"
|
||||
OMR_TRACKER_STATUS_MSG="No answer to ping and API check"
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set openmptcprouter.vps.current='0'
|
||||
set openmptcprouter.${name}.current='0'
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
config_load shadowsocks-libev
|
||||
config_foreach _disable_redir ss_redir
|
||||
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_down_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_down_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_down_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Server ${name}/g" -e "s/%DEVICE%/${ip}/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_down_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Server ${name}/g" -e "s/%DEVICE%/${ip}/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: Server ${name} (${ip}) is down\n. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_down="$(uci -q get omr-tracker.proxy.script_alert_down)"
|
||||
[ -n "$script_alert_down" ] && eval $script_alert_down
|
||||
fi
|
||||
countips=$((countips+1))
|
||||
}
|
||||
|
@ -143,6 +179,9 @@ _check_backup() {
|
|||
config_get disabled $1 disabled
|
||||
[ "$backup" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && {
|
||||
set_ip() {
|
||||
local ip=$1
|
||||
ipresolve="$(resolveip -4 $ip | head -n 1)"
|
||||
[ -z "$ipresolve" ] && ip="$ipresolve"
|
||||
#_ping_server $ip
|
||||
_check_server $ip $port
|
||||
#[ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n')" = "$ip" ] && break
|
||||
|
@ -169,7 +208,7 @@ _check_backup() {
|
|||
del openvpn.omr.remote
|
||||
add_list openvpn.omr.remote=$ip
|
||||
commit openvpn
|
||||
set openmptcprouter.vps.current='1'
|
||||
set openmptcprouter.${name}.current='1'
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
/etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null
|
||||
|
@ -185,14 +224,48 @@ _check_backup() {
|
|||
fi
|
||||
config_load shadowsocks-libev
|
||||
config_foreach _enable_redir ss_redir
|
||||
OMR_TRACKER_STATUS_MSG="Answer to ping and to API check"
|
||||
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_up_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_up_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_up_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Server ${name}/g" -e "s/%DEVICE%/${ip}/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_up_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Server ${name}/g" -e "s/%DEVICE%/${ip}/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: Server ${name} (${ip}) is UP\n. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_down="$(uci -q get omr-tracker.proxy.script_alert_up)"
|
||||
[ -n "$script_alert_down" ] && eval $script_alert_up
|
||||
count=$((count+1))
|
||||
else
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set openmptcprouter.vps.current='0'
|
||||
set openmptcprouter.${name}.current='0'
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
config_load shadowsocks-libev
|
||||
config_foreach _disable_redir ss_redir
|
||||
OMR_TRACKER_STATUS_MSG="No answer to ping and to API check"
|
||||
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_down_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_down_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_down_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Server ${name}/g" -e "s/%DEVICE%/${ip}/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_down_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Server ${name}/g" -e "s/%DEVICE%/${ip}/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: Server ${name} (${ip}) is down\n. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_down="$(uci -q get omr-tracker.proxy.script_alert_down)"
|
||||
[ -n "$script_alert_down" ] && eval $script_alert_down
|
||||
fi
|
||||
countips=$((countips+1))
|
||||
}
|
||||
|
|
|
@ -83,8 +83,25 @@ while true; do
|
|||
nocontact=""
|
||||
[ "${last}" -ge "${retry}" ] || [ "$(uci -q get openmptcprouter.omr.ss_${server})" = "" ] && {
|
||||
_log "Shadowsocks ${server} is up (can contact via http ${host})"
|
||||
OMR_TRACKER_STATUS_MSG="Shadowsocks ${server} is up (can contact via http ${host})"
|
||||
uci -q set openmptcprouter.omr.ss_${server}="up"
|
||||
uci -q commit openmptcprouter.omr
|
||||
mail_alert="$(uci -q get omr-tracker.proxy.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_up_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_up_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_up_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Shadowsocks Proxy/g" -e "s/%DEVICE%/Shadowsocks Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_up_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Shadowsocks Proxy/g" -e "s/%DEVICE%/Shadowsocks Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: Shadowsocks Proxy is UP." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_up="$(uci -q get omr-tracker.proxy.script_alert_up)"
|
||||
[ -n "$script_alert_up" ] && eval $script_alert_up
|
||||
}
|
||||
if [ -z "$($IPTABLESSAVE 2>/dev/null | grep :ssr)" ] && [ "$(uci -q get shadowsocks-libev.ss_rules.disabled)" != "1" ]; then
|
||||
_log "Reload Shadowsocks rules"
|
||||
|
@ -99,6 +116,7 @@ while true; do
|
|||
[ "${last}" -ge "${retry}" ] && {
|
||||
if [ -n "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep ssr)" ]; then
|
||||
_log "Shadowsocks ${server} is down (can't contact via http ${nocontact})"
|
||||
OMR_TRACKER_STATUS_MSG="Shadowsocks ${server} is down (can't contact via http ${nocontact})"
|
||||
uci -q set openmptcprouter.omr.ss_${server}="down"
|
||||
uci -q commit openmptcprouter.omr
|
||||
[ "$(uci show openmptcprouter.omr | grep ss_ | grep up)" = "" ] && /etc/init.d/shadowsocks-libev rules_down 2> /dev/null
|
||||
|
@ -109,7 +127,25 @@ while true; do
|
|||
_ping_server $serverip
|
||||
if [ "$server_ping" = false ]; then
|
||||
_log "Server $server ($serverip) seems down, no answer to ping"
|
||||
OMR_TRACKER_STATUS_MSG="${OMR_TRACKER_STATUS_MSG} - Server $server ($serverip) seems down, no answer to ping"
|
||||
fi
|
||||
mail_alert="$(uci -q get omr-tracker.proxy.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_down_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_down_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_down_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Shadowsocks Proxy/g" -e "s/%DEVICE%/Shadowsocks Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_down_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/Shadowsocks Proxy/g" -e "s/%DEVICE%/Shadowsocks Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: Shadowsocks Proxy is down\n\nConnection failure of ShadowSocks proxy detected. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_down="$(uci -q get omr-tracker.proxy.script_alert_down)"
|
||||
[ -n "$script_alert_down" ] && eval $script_alert_down
|
||||
|
||||
if [ "$disabled" != "1" ] && [ "$(pgrep ss-redir)" = "" ] && [ "$(uci -q get shadowsocks-libev.${server}.key)" != "" ]; then
|
||||
_log "Can't find shadowsocks, restart it..."
|
||||
/etc/init.d/shadowsocks-libev restart
|
||||
|
|
|
@ -79,8 +79,26 @@ while true; do
|
|||
nocontact=""
|
||||
[ "${last}" -ge "${retry}" ] || [ "$(uci -q get openmptcprouter.omr.v2ray)" = "" ] && {
|
||||
_log "V2Ray is up (can contact via http ${host})"
|
||||
OMR_TRACKER_STATUS_MSG="V2Ray is up (can contact via http ${host})"
|
||||
uci -q set openmptcprouter.omr.v2ray="up"
|
||||
uci -q commit openmptcprouter.omr
|
||||
/etc/init.d/openmptcprouter-vps set_vps_firewall
|
||||
mail_alert="$(uci -q get omr-tracker.proxy.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_up_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_up_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_up_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/V2Ray Proxy/g" -e "s/%DEVICE%/Shadowsocks Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_up_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/V2Ray Proxy/g" -e "s/%DEVICE%/Shadowsocks Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: V2Ray Proxy is UP." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_up="$(uci -q get omr-tracker.proxy.script_alert_up)"
|
||||
[ -n "$script_alert_up" ] && eval $script_alert_up
|
||||
}
|
||||
if [ -z "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep v2r)" ]; then
|
||||
_log "Reload V2Ray rules"
|
||||
|
@ -95,8 +113,10 @@ while true; do
|
|||
[ "${last}" -ge "${retry}" ] && {
|
||||
if [ -n "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep v2r)" ]; then
|
||||
_log "V2Ray is down (can't contact via http ${nocontact})"
|
||||
OMR_TRACKER_STATUS_MSG="V2Ray is down (can't contact via http ${nocontact})"
|
||||
uci -q set openmptcprouter.omr.v2ray="down"
|
||||
uci -q commit openmptcprouter.omr
|
||||
/etc/init.d/openmptcprouter-vps set_vps_firewall
|
||||
/etc/init.d/v2ray rules_down 2> /dev/null
|
||||
_get_ip
|
||||
server_ping=false
|
||||
|
@ -104,7 +124,24 @@ while true; do
|
|||
_ping_server $server
|
||||
if [ "$server_ping" = false ]; then
|
||||
_log "Server ($server) seems down, no answer to ping"
|
||||
OMR_TRACKER_STATUS_MSG="${OMR_TRACKER_STATUS_MSG} - Server ($server) seems down, no answer to ping"
|
||||
fi
|
||||
mail_alert="$(uci -q get omr-tracker.proxy.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_down_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_down_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_down_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/V2Ray Proxy/g" -e "s/%DEVICE%/V2Ray Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_down_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/V2Ray Proxy/g" -e "s/%DEVICE%/V2Ray Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: V2Ray Proxy is down\n\nConnection failure of V2Ray proxy detected. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_down="$(uci -q get omr-tracker.proxy.script_alert_down)"
|
||||
[ -n "$script_alert_down" ] && eval $script_alert_down
|
||||
sleep $wait_test
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -42,10 +42,12 @@ config proxy 'proxy'
|
|||
option wait_test '0'
|
||||
option interval_tries '1'
|
||||
option interval '5'
|
||||
option mail_alert '0'
|
||||
|
||||
config server 'server'
|
||||
option enabled '1'
|
||||
option tries '3'
|
||||
option timeout '10'
|
||||
option wait_test '0'
|
||||
option interval '5'
|
||||
option interval '5'
|
||||
option mail_alert '0'
|
||||
|
|
|
@ -942,7 +942,7 @@ _vps_firewall_redirect_port() {
|
|||
#uci -q delete firewall.$1
|
||||
#return
|
||||
fi
|
||||
[ "$(uci -q get v2ray.main.enabled)" = "0" ] && v2ray="0"
|
||||
[ "$(uci -q get v2ray.main.enabled)" = "0" ] && [ "$(uci -q get openmptcprouter.omr.v2ray)" != "down" ] && v2ray="0"
|
||||
[ "$proto" = "all" ] && proto="tcp udp"
|
||||
[ "$proto" = "" ] && proto="tcp udp"
|
||||
[ "$src" = "vpn" ] && [ -n "$proto" ] && [ -n "$src_dport" ] && [ "$enabled" != "0" ] && [ "$name" != "Allow-DHCP-Request-VPN" ] && {
|
||||
|
@ -1425,14 +1425,20 @@ _set_config_from_vps() {
|
|||
v2ray_port="65228"
|
||||
if ([ -n "$v2ray_key" ] && [ "$v2ray_key" != "$(uci -q get v2ray.omrout.s_vmess_user_id)" ]) || ([ -n "$v2ray_port" ] && [ "$v2ray_port" != "$(uci -q get v2ray.omrout.s_vmess.port)" ]); then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set v2ray.omrout.s_socks_user_id="$v2ray_key"
|
||||
set v2ray.omrout.s_socks_port="$((v2ray_port+1))"
|
||||
set v2ray.omrout.s_trojan_user_id="$v2ray_key"
|
||||
set v2ray.omrout.s_trojan_port="$((v2ray_port+1))"
|
||||
set v2ray.omrout.s_vmess_user_id="$v2ray_key"
|
||||
set v2ray.omrout.s_vmess_port="$v2ray_port"
|
||||
set v2ray.omrout.s_vmess_port="$((v2ray_port+2))"
|
||||
set v2ray.omrout.s_vless_user_id="$v2ray_key"
|
||||
set v2ray.omrout.s_vless_port="$v2ray_port"
|
||||
EOF
|
||||
if [ "$(uci -q get v2ray.omrout.s_vmess_address)" != "127.0.0.1" ]; then
|
||||
uci -q set v2ray.omrout.s_vmess_address="$vpsip"
|
||||
uci -q set v2ray.omrout.s_vless_address="$vpsip"
|
||||
uci -q set v2ray.omrout.s_trojan_address="$vpsip"
|
||||
uci -q set v2ray.omrout.s_socks_address="$vpsip"
|
||||
fi
|
||||
uci -q commit v2ray
|
||||
logger -t "OMR-VPS" "V2ray restart..."
|
||||
|
|
|
@ -27,14 +27,17 @@ ss_mkjson_server_conf() {
|
|||
|
||||
ss_mkjson_server_conf_() {
|
||||
[ -n "$server_port" ] || return 1
|
||||
[ -z "$method" ] || json_add_string method "$method"
|
||||
[ -z "$server" ] || json_add_string server "$server"
|
||||
json_add_int server_port "$server_port"
|
||||
[ -z "$method" ] || json_add_string method "$method"
|
||||
[ -z "$key" ] || {
|
||||
key="$(echo $key | sed 's/+/-/g; s/\//_/g;')"
|
||||
json_add_string key "$key"
|
||||
}
|
||||
[ -z "$password" ] || json_add_string password "$password"
|
||||
[ -z "$password" ] || {
|
||||
password="$(echo $password | sed 's/+/-/g; s/\//_/g;')"
|
||||
json_add_string password "$password"
|
||||
}
|
||||
[ -z "$password" ] && [ -z "$key" ] && return 1
|
||||
[ -z "$plugin" ] || json_add_string plugin "$plugin"
|
||||
[ -z "$plugin_opts" ] || json_add_string plugin_opts "$plugin_opts"
|
||||
|
|
|
@ -282,6 +282,16 @@ inbound_section_validate() {
|
|||
's_vless_default_user_level:uinteger' \
|
||||
's_vless_detour_to:string' \
|
||||
's_vless_disable_insecure_encryption:bool:0' \
|
||||
's_trojan_client_id:string' \
|
||||
's_trojan_client_alter_id:and(uinteger, max(65535))' \
|
||||
's_trojan_client_email:string' \
|
||||
's_trojan_client_user_level:uinteger' \
|
||||
's_trojan_default_alter_id:and(uinteger, max(65535))' \
|
||||
's_trojan_default_user_level:uinteger' \
|
||||
's_trojan_detour_to:string' \
|
||||
's_trojan_disable_insecure_encryption:bool:0' \
|
||||
's_socks_client_id:string' \
|
||||
's_socks_client_email:string:"openmptcprouter"' \
|
||||
'ss_network:or("tcp", "kcp", "ws", "http", "domainsocket", "quic")' \
|
||||
'ss_security:or("none", "tls")' \
|
||||
'ss_tls_server_name:host' \
|
||||
|
@ -368,6 +378,17 @@ outbound_section_validate() {
|
|||
's_vless_user_security:or("auto", "aes-128-gcm", "chacha20-poly1305", "none")' \
|
||||
's_vless_user_encryption:or("auto", "none")' \
|
||||
's_vless_user_level:uinteger' \
|
||||
's_trojan_address:host' \
|
||||
's_trojan_port:port' \
|
||||
's_trojan_user_id:string' \
|
||||
's_trojan_user_alter_id:and(uinteger, max(65535))' \
|
||||
's_trojan_user_security:or("auto", "aes-128-gcm", "chacha20-poly1305", "none")' \
|
||||
's_trojan_user_encryption:or("auto", "none")' \
|
||||
's_trojan_user_level:uinteger' \
|
||||
's_socks_address:host' \
|
||||
's_socks_port:port' \
|
||||
's_socks_user_id:string' \
|
||||
's_socks_email:string:openmptcprouter' \
|
||||
'ss_network:or("tcp", "kcp", "ws", "http", "domainsocket", "quic")' \
|
||||
'ss_security:or("none", "tls")' \
|
||||
'ss_tls_server_name:host' \
|
||||
|
@ -427,12 +448,12 @@ add_v2ray_redirect_rules() {
|
|||
v2ray-rules -f
|
||||
logger -t "v2ray" "v2ray-rules -l ${port} -L ${port} -s $OUTBOUND_SERVERS_V4 --rule-name def --src-default forward --dst-default forward --local-default forward"
|
||||
commandline="-l ${port} -s $OUTBOUND_SERVERS_V4 --rule-name def --src-default forward --dst-default forward --local-default forward"
|
||||
[ "$(uci -q get v2ray.main_transparent_proxy.redirect_udp)" = "1" ] && commandline="$commandline -L ${port}"
|
||||
[ "$(uci -q get v2ray.main_transparent_proxy.redirect_udp)" = "1" ] && ([ "$(uci -q get v2ray.omrout.protocol)" = "vless" ] || [ "$(uci -q get v2ray.omrout.protocol)" = "vmess" ]) && commandline="$commandline -L ${port}"
|
||||
v2ray-rules $commandline
|
||||
[ "$(uci -q get v2ray.main.inbounds | grep omr6)" != "" ] && {
|
||||
v2ray-rules6 -f
|
||||
commandline="-l $((port+1)) -L $((port+1)) -s $OUTBOUND_SERVERS_V6 --rule-name def --src-default forward --dst-default forward --local-default forward"
|
||||
[ "$(uci -q get v2ray.main_transparent_proxy.redirect_udp)" = "1" ] && commandline="$commandline -L ${port+1}"
|
||||
[ "$(uci -q get v2ray.main_transparent_proxy.redirect_udp)" = "1" ] && ([ "$(uci -q get v2ray.omrout.protocol)" = "vless" ] || [ "$(uci -q get v2ray.omrout.protocol)" = "vmess" ]) && commandline="$commandline -L ${port+1}"
|
||||
v2ray-rules6 $commandline
|
||||
}
|
||||
[ -f /etc/init.d/omr-bypass ] && [ -z "$(pgrep -f omr-bypass)" ] && {
|
||||
|
@ -988,6 +1009,14 @@ add_inbound_setting() {
|
|||
json_close_object
|
||||
json_close_array # accounts
|
||||
fi
|
||||
if [ -n "$s_socks_client_id" ] ; then
|
||||
json_add_array "accounts"
|
||||
json_add_object ""
|
||||
json_add_string "user" "$s_socks_email"
|
||||
json_add_string "pass" "$s_socks_client_id"
|
||||
json_close_object
|
||||
json_close_array # accounts
|
||||
fi
|
||||
|
||||
json_add_boolean "udp" "$s_socks_udp"
|
||||
|
||||
|
@ -1066,7 +1095,7 @@ add_inbound_setting() {
|
|||
|
||||
json_close_object # default
|
||||
|
||||
if [ -n "$s_vmess_detour_to" ] ; then
|
||||
if [ -n "$s_vless_detour_to" ] ; then
|
||||
json_add_object "detour"
|
||||
json_add_string "to" "$s_vless_detour_to"
|
||||
json_close_object # detour
|
||||
|
@ -1074,6 +1103,45 @@ add_inbound_setting() {
|
|||
|
||||
json_add_boolean "disableInsecureEncryption" "$s_vless_disable_insecure_encryption"
|
||||
|
||||
json_close_object # settings
|
||||
;;
|
||||
"trojan")
|
||||
json_add_object "settings"
|
||||
|
||||
if [ -n "$s_trojan_client_id" ] ; then
|
||||
json_add_array "clients"
|
||||
json_add_object ""
|
||||
|
||||
json_add_string "password" "$s_trojan_client_id"
|
||||
|
||||
test -n "$s_trojan_client_alter_id" && \
|
||||
json_add_int "alterId" "$s_trojan_client_alter_id"
|
||||
test -n "$s_trojan_client_email" && \
|
||||
json_add_string "email" "$s_trojan_client_email"
|
||||
test -n "$s_trojan_client_user_level" && \
|
||||
json_add_int "level" "$s_trojan_client_user_level"
|
||||
|
||||
json_close_object
|
||||
json_close_array # clients
|
||||
fi
|
||||
|
||||
json_add_object "default"
|
||||
|
||||
test -n "$s_trojan_default_alter_id" && \
|
||||
json_add_int "alterId" "$s_trojan_default_alter_id"
|
||||
test -n "$s_trojan_default_user_level" && \
|
||||
json_add_int "level" "$s_trojan_default_user_level"
|
||||
|
||||
json_close_object # default
|
||||
|
||||
if [ -n "$s_trojan_detour_to" ] ; then
|
||||
json_add_object "detour"
|
||||
json_add_string "to" "$s_trojan_detour_to"
|
||||
json_close_object # detour
|
||||
fi
|
||||
|
||||
json_add_boolean "disableInsecureEncryption" "$s_trojan_disable_insecure_encryption"
|
||||
|
||||
json_close_object # settings
|
||||
;;
|
||||
esac
|
||||
|
@ -1449,36 +1517,6 @@ add_outbound_setting() {
|
|||
json_add_boolean "ota" "$s_shadowsocks_ota"
|
||||
json_close_object
|
||||
|
||||
json_close_array # servers
|
||||
json_close_object # settings
|
||||
;;
|
||||
"socks")
|
||||
json_add_object "settings"
|
||||
json_add_array "servers"
|
||||
|
||||
json_add_object ""
|
||||
|
||||
json_add_string "address" "$s_socks_server_address"
|
||||
append_server_address "$s_socks_server_address"
|
||||
|
||||
json_add_int "port" "$s_socks_server_port"
|
||||
|
||||
if [ -n "$s_socks_account_user" ] ; then
|
||||
json_add_array "users"
|
||||
json_add_object ""
|
||||
|
||||
json_add_string "user" "$s_socks_account_user"
|
||||
json_add_string "pass" "$s_socks_account_pass"
|
||||
|
||||
test -n "$s_socks_user_level" && \
|
||||
json_add_int "level" "$s_socks_user_level"
|
||||
|
||||
json_close_object
|
||||
json_close_array # users
|
||||
fi
|
||||
|
||||
json_close_object
|
||||
|
||||
json_close_array # servers
|
||||
json_close_object # settings
|
||||
;;
|
||||
|
@ -1535,7 +1573,48 @@ add_outbound_setting() {
|
|||
|
||||
json_close_object
|
||||
|
||||
json_close_array # vlext
|
||||
json_close_array # vnext
|
||||
json_close_object # settings
|
||||
;;
|
||||
"trojan")
|
||||
json_add_object "settings"
|
||||
|
||||
json_add_array "servers"
|
||||
json_add_object ""
|
||||
|
||||
json_add_string "address" "$s_trojan_address"
|
||||
append_server_address "$s_trojan_address"
|
||||
|
||||
json_add_int "port" "$s_trojan_port"
|
||||
|
||||
json_add_string "password" "$s_trojan_user_id"
|
||||
|
||||
json_close_object
|
||||
|
||||
json_close_array # trojan
|
||||
json_close_object # settings
|
||||
;;
|
||||
"socks")
|
||||
json_add_object "settings"
|
||||
|
||||
json_add_array "servers"
|
||||
json_add_object ""
|
||||
|
||||
json_add_string "address" "$s_socks_address"
|
||||
append_server_address "$s_socks_address"
|
||||
|
||||
json_add_int "port" "$s_socks_port"
|
||||
|
||||
json_add_array "users"
|
||||
json_add_object ""
|
||||
json_add_string "pass" "$s_socks_user_id"
|
||||
json_add_string "user" "$s_socks_email"
|
||||
json_close_object
|
||||
json_close_array # users
|
||||
|
||||
json_close_object
|
||||
|
||||
json_close_array # socks
|
||||
json_close_object # settings
|
||||
;;
|
||||
esac
|
||||
|
@ -1806,7 +1885,7 @@ init_transparent_proxy() {
|
|||
TRANSPARENT_PROXY_PORT="$redirect_port"
|
||||
TRANSPARENT_PROXY_USE_TPROXY="$use_tproxy"
|
||||
|
||||
if [ "x$redirect_udp" = "x1" ] ; then
|
||||
if [ "x$redirect_udp" = "x1" ] && [ "$(uci -q get v2ray.omrout.protocol)" != "trojan" ] && [ "$(uci -q get v2ray.omrout.protocol)" != "socks" ]; then
|
||||
TRANSPARENT_PROXY_ADDITION="udp"
|
||||
elif [ "x$redirect_dns" = "x1" ] ; then
|
||||
TRANSPARENT_PROXY_ADDITION="dns"
|
||||
|
@ -2115,8 +2194,19 @@ rules_up() {
|
|||
config_load v2ray
|
||||
config_get enabled main enabled "0"
|
||||
[ "$enabled" = "0" ] && return
|
||||
OUTBOUND_SERVERS_V4="$(uci -q get v2ray.omrout.s_vless_address)"
|
||||
OUTBOUND_SERVERS_V6="$(uci -q get v2ray.omrout.s_vless_address)"
|
||||
if [ "$(uci -q get v2ray.omrout.protocol)" = "vless" ]; then
|
||||
OUTBOUND_SERVERS_V4="$(uci -q get v2ray.omrout.s_vless_address)"
|
||||
OUTBOUND_SERVERS_V6="$(uci -q get v2ray.omrout.s_vless_address)"
|
||||
elif [ "$(uci -q get v2ray.omrout.protocol)" = "vmess" ]; then
|
||||
OUTBOUND_SERVERS_V4="$(uci -q get v2ray.omrout.s_vmess_address)"
|
||||
OUTBOUND_SERVERS_V6="$(uci -q get v2ray.omrout.s_vmess_address)"
|
||||
elif [ "$(uci -q get v2ray.omrout.protocol)" = "trojan" ]; then
|
||||
OUTBOUND_SERVERS_V4="$(uci -q get v2ray.omrout.s_trojan_address)"
|
||||
OUTBOUND_SERVERS_V6="$(uci -q get v2ray.omrout.s_trojan_address)"
|
||||
elif [ "$(uci -q get v2ray.omrout.protocol)" = "socks" ]; then
|
||||
OUTBOUND_SERVERS_V4="$(uci -q get v2ray.omrout.s_socks_address)"
|
||||
OUTBOUND_SERVERS_V6="$(uci -q get v2ray.omrout.s_socks_address)"
|
||||
fi
|
||||
TRANSPARENT_PROXY_PORT="$(uci -q get v2ray.omr.port)"
|
||||
[ -n "$OUTBOUND_SERVERS_V4" ] || [ -n "$OUTBOUND_SERVERS_V6" ] && {
|
||||
logger -t "v2ray" "Rules UP"
|
||||
|
|
|
@ -36,7 +36,7 @@ if [ -z "$(uci -q get v2ray.main)" ]; then
|
|||
set v2ray.omrout.tag='omrout_tunnel'
|
||||
set v2ray.omrout.protocol='vless'
|
||||
set v2ray.omrout.s_vmess_address=''
|
||||
set v2ray.omrout.s_vmess_port='65228'
|
||||
set v2ray.omrout.s_vmess_port='65230'
|
||||
set v2ray.omrout.s_vmess_user_id=''
|
||||
set v2ray.omrout.s_vmess_user_security='none'
|
||||
set v2ray.omrout.s_vmess_user_alter_id='0'
|
||||
|
@ -46,6 +46,18 @@ if [ -z "$(uci -q get v2ray.main)" ]; then
|
|||
set v2ray.omrout.s_vless_user_security='none'
|
||||
set v2ray.omrout.s_vless_user_encryption='none'
|
||||
set v2ray.omrout.s_vless_user_alter_id='0'
|
||||
set v2ray.omrout.s_trojan_address=''
|
||||
set v2ray.omrout.s_trojan_port='65229'
|
||||
set v2ray.omrout.s_trojan_user_id=''
|
||||
set v2ray.omrout.s_trojan_user_security='none'
|
||||
set v2ray.omrout.s_trojan_user_encryption='none'
|
||||
set v2ray.omrout.s_trojan_user_alter_id='0'
|
||||
set v2ray.omrout.s_socks_address=''
|
||||
set v2ray.omrout.s_socks_port='65231'
|
||||
set v2ray.omrout.s_socks_user_id=''
|
||||
set v2ray.omrout.s_socks_user_security='none'
|
||||
set v2ray.omrout.s_socks_user_encryption='none'
|
||||
set v2ray.omrout.s_socks_user_alter_id='0'
|
||||
set v2ray.omrout.ss_network='tcp'
|
||||
set v2ray.omrout.ss_security='tls'
|
||||
set v2ray.omrout.ss_tls_allow_insecure='1'
|
||||
|
@ -155,4 +167,35 @@ if [ "$(uci -q get v2ray.policy_level_0.conn_idle)" = "2400" ]; then
|
|||
EOF
|
||||
fi
|
||||
|
||||
if [ "$(uci -q get v2ray.omrout.s_vmess_port)" = "65228" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set v2ray.omrout.s_vmess_port='65230'
|
||||
commit v2ray
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ "$(uci -q get v2ray.omrout.s_trojan_port)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set v2ray.omrout.s_trojan_address=''
|
||||
set v2ray.omrout.s_trojan_port='65229'
|
||||
set v2ray.omrout.s_trojan_user_id=''
|
||||
set v2ray.omrout.s_trojan_user_security='none'
|
||||
set v2ray.omrout.s_trojan_user_encryption='none'
|
||||
set v2ray.omrout.s_trojan_user_alter_id='0'
|
||||
commit v2ray
|
||||
EOF
|
||||
fi
|
||||
if [ "$(uci -q get v2ray.omrout.s_socks_port)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set v2ray.omrout.s_socks_address=''
|
||||
set v2ray.omrout.s_socks_port='65231'
|
||||
set v2ray.omrout.s_socks_user_id=''
|
||||
set v2ray.omrout.s_socks_user_security='none'
|
||||
set v2ray.omrout.s_socks_user_encryption='none'
|
||||
set v2ray.omrout.s_socks_user_alter_id='0'
|
||||
commit v2ray
|
||||
EOF
|
||||
fi
|
||||
|
||||
fi
|
||||
exit 0
|
Loading…
Reference in a new issue