mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-12 10:31:51 +00:00
Fix in VPS script and little change in status page
This commit is contained in:
parent
d8adb2b6ab
commit
4b84f92a88
4 changed files with 76 additions and 110 deletions
|
@ -456,8 +456,8 @@ function wizard_add()
|
|||
if dsvpn_key ~= "" then
|
||||
ucic:set("dsvpn","vpn","port","65011")
|
||||
ucic:set("dsvpn","vpn","key",dsvpn_key)
|
||||
ucic:set("glorytun","vpn","localip","10.255.251.2")
|
||||
ucic:set("glorytun","vpn","remoteip","10.255.251.1")
|
||||
ucic:set("dsvpn","vpn","localip","10.255.251.2")
|
||||
ucic:set("dsvpn","vpn","remoteip","10.255.251.1")
|
||||
ucic:set("network","omr6in4","ipaddr","10.255.251.2")
|
||||
ucic:set("network","omr6in4","peeraddr","10.255.251.1")
|
||||
ucic:set("network","omrvpn","proto","none")
|
||||
|
@ -764,6 +764,14 @@ end
|
|||
-- Modified by Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
-- Under GPL3+
|
||||
function interfaces_status()
|
||||
local ut = require "luci.util"
|
||||
local rv = ut.ubus("openmptcprouter", "status", {}) or {_=0}
|
||||
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(rv)
|
||||
end
|
||||
|
||||
function old_interfaces_status()
|
||||
local ut = require "luci.util"
|
||||
local ntm = require "luci.model.network".init()
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
|
|
@ -59,17 +59,25 @@
|
|||
temp += '<a href="#">';
|
||||
|
||||
var equipmentIcon = '<img src="<%=resource%>/computer.png" />';
|
||||
if (mArray.openmptcprouter.remote_from_lease)
|
||||
if (mArray.openmptcprouter.remote_addr)
|
||||
{
|
||||
var title = String.format('<br /><strong>%s (%s)</strong>', mArray.openmptcprouter.remote_hostname ? mArray.openmptcprouter.remote_hostname : _('You'), mArray.openmptcprouter.remote_addr)
|
||||
if (mArray.openmptcprouter.remote_from_lease)
|
||||
{
|
||||
var title = String.format('<br /><strong>%s (%s)</strong>', mArray.openmptcprouter.remote_hostname ? mArray.openmptcprouter.remote_hostname : _('You'), mArray.openmptcprouter.remote_addr)
|
||||
var statusMessageClass = "";
|
||||
var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png";
|
||||
var statusMessage = "";
|
||||
} else {
|
||||
var title = String.format("%s (%s)",'You', mArray.openmptcprouter.remote_addr);
|
||||
var statusMessageClass = "warning";
|
||||
var statusIcon = "<%=resource%>/openmptcprouter/images/statusWarning.png";
|
||||
var statusMessage = _('Your IP was not leased by this router');
|
||||
}
|
||||
} else {
|
||||
var title = String.format('<br /><strong>%s</strong>', _('You'))
|
||||
var statusMessageClass = "";
|
||||
var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png";
|
||||
var statusMessage = "";
|
||||
} else {
|
||||
var title = String.format("%s (%s)",'You', mArray.openmptcprouter.remote_addr);
|
||||
var statusMessageClass = "warning";
|
||||
var statusIcon = "<%=resource%>/openmptcprouter/images/statusWarning.png";
|
||||
var statusMessage = _('Your IP was not leased by this router');
|
||||
}
|
||||
var content = "";
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ local json = require("luci.json")
|
|||
local fs = require("nixio.fs")
|
||||
local net = require "luci.model.network".init()
|
||||
local ucic = luci.model.uci.cursor()
|
||||
local json = require "luci.jsonc"
|
||||
local jsonc = require "luci.jsonc"
|
||||
|
||||
function interface_from_device(dev)
|
||||
for _, iface in ipairs(net:get_networks()) do
|
||||
|
@ -233,7 +233,7 @@ function default_vpn(default_vpn)
|
|||
vpn_intf = "tun0"
|
||||
--ucic:set("network","omrvpn","proto","dhcp")
|
||||
ucic:set("network","omrvpn","proto","none")
|
||||
if default_vpn == "glorytun" then
|
||||
if default_vpn == "glorytun_udp" then
|
||||
ucic:set("glorytun","vpn","proto","udp")
|
||||
ucic:set("glorytun","vpn","localip","10.255.254.2")
|
||||
ucic:set("glorytun","vpn","remoteip","10.255.254.1")
|
||||
|
@ -251,10 +251,10 @@ function default_vpn(default_vpn)
|
|||
vpn_intf = "tun0"
|
||||
--ucic:set("network","omrvpn","proto","dhcp")
|
||||
ucic:set("network","omrvpn","proto","none")
|
||||
ucic:set("dsvpn","vpn","localip","10.255.254.2")
|
||||
ucic:set("dsvpn","vpn","remoteip","10.255.254.1")
|
||||
ucic:set("network","omr6in4","ipaddr","10.255.254.2")
|
||||
ucic:set("network","omr6in4","peeraddr","10.255.254.1")
|
||||
ucic:set("dsvpn","vpn","localip","10.255.251.2")
|
||||
ucic:set("dsvpn","vpn","remoteip","10.255.251.1")
|
||||
ucic:set("network","omr6in4","ipaddr","10.255.251.2")
|
||||
ucic:set("network","omr6in4","peeraddr","10.255.251.1")
|
||||
elseif default_vpn == "mlvpn" then
|
||||
vpn_port = 65201
|
||||
vpn_intf = "mlvpn0"
|
||||
|
@ -338,83 +338,6 @@ function server_settings(server,server_ip,openmptcprouter_vps_key)
|
|||
ucic:commit("shadowsocks-libev")
|
||||
end
|
||||
|
||||
function server_failover(server,master)
|
||||
if master == server or master == "" then
|
||||
ucic:set("openmptcprouter",server,"get_config","1")
|
||||
ucic:set("openmptcprouter",server,"master","1")
|
||||
ucic:set("openmptcprouter",server,"backup","0")
|
||||
else
|
||||
ucic:set("openmptcprouter",server,"get_config","0")
|
||||
ucic:set("openmptcprouter",server,"master","0")
|
||||
ucic:set("openmptcprouter",server,"backup","1")
|
||||
end
|
||||
|
||||
local ss_servers_nginx = {}
|
||||
local ss_servers_ha = {}
|
||||
local vpn_servers = {}
|
||||
local k = 0
|
||||
local ss_ip
|
||||
|
||||
-- We have an IP, so set it everywhere
|
||||
if server_ip ~= "" then
|
||||
-- Check if we have more than one IP, in this case use Nginx HA
|
||||
if master == server then
|
||||
ss_ip=server_ip
|
||||
table.insert(ss_servers_nginx,server_ip .. ":65101 max_fails=2 fail_timeout=20s")
|
||||
table.insert(ss_servers_ha,server_ip .. ":65101 check")
|
||||
if vpn_port ~= "" then
|
||||
table.insert(vpn_servers,server_ip .. ":" .. vpn_port .. " max_fails=2 fail_timeout=20s")
|
||||
end
|
||||
else
|
||||
table.insert(ss_servers_nginx,server_ip .. ":65101 backup")
|
||||
table.insert(ss_servers_ha,server_ip .. ":65101 backup")
|
||||
if vpn_port ~= "" then
|
||||
table.insert(vpn_servers,server_ip .. ":" .. vpn_port .. " backup")
|
||||
end
|
||||
end
|
||||
k = k + 1
|
||||
ucic:set("nginx-ha","ShadowSocks","enable","1")
|
||||
ucic:set("nginx-ha","VPN","enable","1")
|
||||
ucic:set("nginx-ha","ShadowSocks","upstreams",ss_servers_nginx)
|
||||
ucic:set("nginx-ha","VPN","upstreams",vpn_servers)
|
||||
ucic:set("haproxy-tcp","general","enable","0")
|
||||
ucic:set("haproxy-tcp","general","upstreams",ss_servers_ha)
|
||||
server_ip = "127.0.0.1"
|
||||
--ucic:set("shadowsocks-libev","sss0","server",ss_ip)
|
||||
else
|
||||
ucic:set("nginx-ha","ShadowSocks","enable","0")
|
||||
ucic:set("nginx-ha","VPN","enable","0")
|
||||
--ucic:set("shadowsocks-libev","sss0","server",server_ip)
|
||||
--ucic:set("openmptcprouter","vps","ip",server_ip)
|
||||
--ucic:save("openmptcprouter")
|
||||
end
|
||||
ucic:set("shadowsocks-libev","sss0","server",server_ip)
|
||||
ucic:set("glorytun","vpn","host",server_ip)
|
||||
ucic:set("dsvpn","vpn","host",server_ip)
|
||||
ucic:set("mlvpn","general","host",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)
|
||||
ucic:set("qos","serverout","dsthost",server_ip)
|
||||
end
|
||||
end
|
||||
|
||||
ucic:save("qos")
|
||||
ucic:commit("qos")
|
||||
ucic:save("nginx-ha")
|
||||
ucic:commit("nginx-ha")
|
||||
ucic:save("openvpn")
|
||||
ucic:commit("openvpn")
|
||||
ucic:save("mlvpn")
|
||||
ucic:commit("mlvpn")
|
||||
ucic:save("dsvpn")
|
||||
ucic:commit("dsvpn")
|
||||
ucic:save("glorytun")
|
||||
ucic:commit("glorytun")
|
||||
ucic:save("shadowsocks-libev")
|
||||
ucic:commit("shadowsocks-libev")
|
||||
end
|
||||
|
||||
function set_shadowsocks(shadowsocks_key)
|
||||
-- Set ShadowSocks settings
|
||||
ucic:set("shadowsocks-libev","sss0","key",shadowsocks_key)
|
||||
|
@ -925,8 +848,13 @@ function interfaces_status()
|
|||
mptcp[ipaddr].ipaddr= ipaddr
|
||||
end
|
||||
|
||||
|
||||
mArray.openmptcprouter['model'] = sys.exec("ubus call system board | jsonfilter -q -e '@.model' 2>/dev/nul")
|
||||
local board_name = sys.exec("ubus call system board | jsonfilter -q -e '@.board_name' 2>/dev/nul")
|
||||
-- retrieve core temperature
|
||||
--mArray.openmptcprouter["core_temp"] = sys.exec("cat /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_input 2>/dev/null"):match("%d+")
|
||||
if board_name:match("^raspberrypi.*") then
|
||||
mArray.openmptcprouter["core_temp"] = sys.exec("cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null"):match("%d+")
|
||||
end
|
||||
mArray.openmptcprouter["loadavg"] = sys.exec("cat /proc/loadavg 2>/dev/null"):match("[%d%.]+ [%d%.]+ [%d%.]+")
|
||||
mArray.openmptcprouter["uptime"] = sys.exec("cat /proc/uptime 2>/dev/null"):match("[%d%.]+")
|
||||
|
||||
|
@ -1482,7 +1410,7 @@ local methods = {
|
|||
}
|
||||
|
||||
local function parseInput()
|
||||
local parse = json.new()
|
||||
local parse = jsonc.new()
|
||||
local done, err
|
||||
|
||||
while true do
|
||||
|
@ -1495,7 +1423,7 @@ local function parseInput()
|
|||
end
|
||||
|
||||
if not done then
|
||||
print(json.stringify({ error = err or "Incomplete input" }))
|
||||
print(jsonc.stringify({ error = err or "Incomplete input" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
|
@ -1505,12 +1433,12 @@ end
|
|||
local function validateArgs(func, uargs)
|
||||
local method = methods[func]
|
||||
if not method then
|
||||
print(json.stringify({ error = "Method not found" }))
|
||||
print(jsonc.stringify({ error = "Method not found" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
if type(uargs) ~= "table" then
|
||||
print(json.stringify({ error = "Invalid arguments" }))
|
||||
print(jsonc.stringify({ error = "Invalid arguments" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
|
@ -1522,7 +1450,7 @@ local function validateArgs(func, uargs)
|
|||
if margs[k] == nil or
|
||||
(v ~= nil and type(v) ~= type(margs[k]))
|
||||
then
|
||||
print(json.stringify({ error = "Invalid arguments" }))
|
||||
print(jsonc.stringify({ error = "Invalid arguments" }))
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
|
@ -1532,11 +1460,11 @@ end
|
|||
if arg[1] == "list" then
|
||||
local _, method, rv = nil, nil, {}
|
||||
for _, method in pairs(methods) do rv[_] = method.args or {} end
|
||||
print((json.stringify(rv):gsub(":%[%]", ":{}")))
|
||||
print((jsonc.stringify(rv):gsub(":%[%]", ":{}")))
|
||||
elseif arg[1] == "call" then
|
||||
local args = parseInput()
|
||||
local method = validateArgs(arg[2], args)
|
||||
local result, code = method.call(args)
|
||||
print((json.stringify(result):gsub("^%[%]$", "{}")))
|
||||
print((jsonc.stringify(result):gsub("^%[%]$", "{}")))
|
||||
os.exit(code or 0)
|
||||
end
|
|
@ -54,7 +54,7 @@ _set_json() {
|
|||
_set_glorytun_vps() {
|
||||
local enabled port key
|
||||
enabled="$(uci -q get glorytun.vpn.enable)"
|
||||
[ "$enabled" != "1" ] && echo "Glorytun disabled"
|
||||
[ "$enabled" != "1" ] && echo "Glorytun disabled" && return
|
||||
port="$(uci -q get glorytun.vpn.port)"
|
||||
key="$(uci -q get glorytun.vpn.key)"
|
||||
chacha="$(uci -q get glorytun.vpn.chacha20)"
|
||||
|
@ -63,7 +63,7 @@ _set_glorytun_vps() {
|
|||
else
|
||||
chacha="false"
|
||||
fi
|
||||
[ -z "$key" ] && echo "Glorytun key not set"
|
||||
[ -z "$key" ] && echo "Glorytun key not set" && return
|
||||
local current_port current_key current_chacha
|
||||
[ -z "$vps_config" ] && vps_config=$(_get_json "config")
|
||||
[ -z "$vps_config" ] && return
|
||||
|
@ -82,7 +82,7 @@ _set_glorytun_vps() {
|
|||
_set_openvpn_vps() {
|
||||
local enabled port key
|
||||
enabled="$(uci -q get openvpn.omr.enabled)"
|
||||
[ "$enabled" != "1" ] && echo "OpenVPN disabled"
|
||||
[ "$enabled" != "1" ] && echo "OpenVPN disabled" && return
|
||||
port="$(uci -q get openvpn.omr.port)"
|
||||
keyfile="$(uci -q get openvpn.omr.secret)"
|
||||
if [ -n "$keyfile" ]; then
|
||||
|
@ -90,7 +90,7 @@ _set_openvpn_vps() {
|
|||
else
|
||||
key=""
|
||||
fi
|
||||
[ -z "$key" ] && echo "OpenVPN key not set"
|
||||
[ -z "$key" ] && echo "OpenVPN key not set" && return
|
||||
local current_port current_key
|
||||
[ -z "$vps_config" ] && vps_config=$(_get_json "config")
|
||||
[ -z "$vps_config" ] && return
|
||||
|
@ -397,6 +397,16 @@ _set_config_from_vps() {
|
|||
[ -z "$vps_config" ] && vps_config=$(_get_json "config")
|
||||
[ -z "$vps_config" ] && return
|
||||
|
||||
# Set current VPN
|
||||
current_vpn="$(echo "$vps_config" | jsonfilter -q -e '@.vpn.current')"
|
||||
if [ -n "$current_vpn" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set openmptcprouter.settings.vpn=${current_vpn}
|
||||
EOF
|
||||
fi
|
||||
current_vpn="$(uci -q get openmptcprouter.settings.vpn)"
|
||||
|
||||
|
||||
# Shadowsocks settings
|
||||
shadowsocks_disabled="$(uci -q get openmptcprouter.settings.shadowsocks_disable)"
|
||||
[ -z "$shadowsocks_disabled" ] && shadowsocks_disabled=0
|
||||
|
@ -475,9 +485,15 @@ _set_config_from_vps() {
|
|||
echo $openvpn_key | base64 -d > /etc/luci-uploads/openvpn.key
|
||||
openvpn_port="$(echo "$vps_config" | jsonfilter -q -e '@.openvpn.port')"
|
||||
[ -z "$openvpn_port" ] && openvpn_port="65001"
|
||||
vpn="$(uci -q get openmptcprouter.settings.vpn)"
|
||||
openvpn_state=0
|
||||
if [ "$vpn" = "openvpn" ]; then
|
||||
openvpn_state=1
|
||||
fi
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set openvpn.omr.port=$openvpn_port
|
||||
set openvpn.omr.secret="/etc/luci-uploads/openvpn.key"
|
||||
set openvpn.omr.enabled=$openvpn_state
|
||||
commit openvpn
|
||||
EOF
|
||||
logger -t "OMR-VPS" "OpenVPN restart..."
|
||||
|
@ -487,8 +503,14 @@ _set_config_from_vps() {
|
|||
# MLVPN settings
|
||||
mlvpn_key="$(echo "$vps_config" | jsonfilter -q -e '@.mlvpn.key')"
|
||||
if [ -n "$mlvpn_key" ] && [ "$mlvpn_key" != "$(uci -q get mlvpn.general.password)" ]; then
|
||||
vpn="$(uci -q get openmptcprouter.settings.vpn)"
|
||||
mlvpn_state=0
|
||||
if [ "$vpn" = "mlvpn" ]; then
|
||||
mlvpn_state=1
|
||||
fi
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set mlvpn.general.password=$mlvpn_key
|
||||
set mlvpn.general.enable=$mlvpn_state
|
||||
commit mlvpn
|
||||
EOF
|
||||
logger -t "OMR-VPS" "MLVPN restart..."
|
||||
|
@ -498,8 +520,13 @@ _set_config_from_vps() {
|
|||
# DSVPN settings
|
||||
dsvpn_key="$(echo "$vps_config" | jsonfilter -q -e '@.dsvpn.key')"
|
||||
if [ -n "$dsvpn_key" ] && [ "$dsvpn_key" != "$(uci -q get dsvpn.vpn.key)" ]; then
|
||||
dsvpn_state=0
|
||||
if [ "$vpn" = "dsvpn" ]; then
|
||||
dsvpn_state=1
|
||||
fi
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set dsvpn.vpn.key=$dsvpn_key
|
||||
set dsvpn.vpn.enable=$dsvpn_state
|
||||
commit dsvpn
|
||||
EOF
|
||||
logger -t "OMR-VPS" "DSVPN restart..."
|
||||
|
@ -568,12 +595,6 @@ _set_config_from_vps() {
|
|||
commit iperf
|
||||
EOF
|
||||
|
||||
# Set current VPN
|
||||
current_vpn="$(echo "$vps_config" | jsonfilter -q -e '@.vpn.current')"
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set openmptcprouter.settings.vpn=${current_vpn}
|
||||
EOF
|
||||
|
||||
# Get available server
|
||||
available_vpn="$(echo "$vps_config" | jsonfilter -q -e '@.vpn.available' | sed -e 's/\[ //' -e 's/ \]//' -e 's/,//g')"
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
|
@ -588,6 +609,7 @@ _set_config_from_vps() {
|
|||
fi
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set openmptcprouter.${servername}.get_config=0
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue