mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-02 14:23:56 +08:00
🌴 Sync 2026-03-05 23:51:42
This commit is contained in:
1 parent
97c049ed0a
commit
0acff03804
14253 files changed
+3893239
No files matched your search
@@ -0,0 +1,12 @@
|
||||
config mlvpn 'general'
|
||||
option enable '0'
|
||||
option password ''
|
||||
option timeout '30'
|
||||
option reorder_buffer_size '512'
|
||||
option loss_tolerence '50'
|
||||
option mode 'client'
|
||||
option host '128.128.128.128'
|
||||
option firstport '65201'
|
||||
option interface_name 'mlvpn0'
|
||||
option loss_tolerance '50'
|
||||
option latency_tolerance '300'
|
||||
Executable
+85
@@ -0,0 +1,85 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=88
|
||||
SERVICE_DAEMONIZE=1
|
||||
#SERVICE_SIG="KILL"
|
||||
|
||||
interface_multipath_settings() {
|
||||
local mode port
|
||||
local config="$1"
|
||||
id=$(($id+1))
|
||||
config_get mode "$config" multipath ""
|
||||
[ "$mode" = "" ] && {
|
||||
mode="$(uci -q get openmptcprouter.$config.multipath)"
|
||||
}
|
||||
[ "$mode" = "off" ] || [ "$mode" = "" ] && return 1
|
||||
config_get ifname "$config" device
|
||||
[ -z "$ifname" ] && config_get ifname "$config" ifname
|
||||
[ -z "$ifname" ] && ifname=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]')
|
||||
[ -n "$(echo $ifname | grep '@')" ] && ifname=$(ifstatus "$1" | jsonfilter -q -e '@["device"]')
|
||||
[ -z "$ifname" ] && return 1
|
||||
addr=$(ifstatus ${config} | jsonfilter -q -e '@["ipv4-address"][0].address')
|
||||
[ -z "$addr" ] && return 1
|
||||
count=$(($count+1))
|
||||
port=$((firstport+count))
|
||||
cat >> /tmp/etc/${interface_name}.conf <<-EOF
|
||||
|
||||
[${config}]
|
||||
bindhost = "${addr}"
|
||||
bindport = "${port}"
|
||||
remotehost = "${host}"
|
||||
remoteport = "${port}"
|
||||
EOF
|
||||
}
|
||||
|
||||
start() {
|
||||
local enable timeout mode password reorder_buffer_size interface_name host firstport loss_tolerance latency_tolerance
|
||||
[ "$(uci -q get mlvpn.general.enable)" = "1" ] || return 1
|
||||
interface_name="$(uci -q get mlvpn.general.interface_name)"
|
||||
timeout="$(uci -q get mlvpn.general.timeout)"
|
||||
mode="$(uci -q get mlvpn.general.mode)"
|
||||
password="$(uci -q get mlvpn.general.password)"
|
||||
reorder_buffer_size="$(uci -q get mlvpn.general.reorder_buffer_size)"
|
||||
loss_tolerance="$(uci -q get mlvpn.general.loss_tolerance)"
|
||||
latency_tolerance="$(uci -q get mlvpn.general.latency_tolerance)"
|
||||
cleartext_data="$(uci -q get mlvpn.general.cleartext_data)"
|
||||
[ -z "$cleartext_data" ] && cleartext_data="0"
|
||||
host="$(uci -q get mlvpn.general.host)"
|
||||
firstport="$(uci -q get mlvpn.general.firstport)"
|
||||
|
||||
if [ "$(uci -q get network.omrvpn)" != "${interface_name}" ]; then
|
||||
uci -q set network.omrvpn.device=${interface_name}
|
||||
uci -q commit
|
||||
fi
|
||||
|
||||
cat > /tmp/etc/${interface_name}.conf <<-EOF
|
||||
[general]
|
||||
tuntap = "tun"
|
||||
mode = "${mode}"
|
||||
interface_name = "${interface_name}"
|
||||
timeout = ${timeout}
|
||||
reorder_buffer = yes
|
||||
reorder_buffer_size = ${reorder_buffer_size}
|
||||
loss_tolerence = ${loss_tolerance}
|
||||
latency_tolerence = ${latency_tolerance}
|
||||
cleartext_data = ${cleartext_data}
|
||||
password = "${password}"
|
||||
mtu = 1452
|
||||
EOF
|
||||
|
||||
local count=0 id=0
|
||||
config_load network
|
||||
config_foreach interface_multipath_settings interface
|
||||
|
||||
chmod 0600 "/tmp/etc/${interface_name}.conf"
|
||||
service_start /usr/sbin/mlvpn -c /tmp/etc/${interface_name}.conf --user nobody
|
||||
}
|
||||
|
||||
stop() {
|
||||
service_stop /usr/sbin/mlvpn
|
||||
}
|
||||
|
||||
reload() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
[ ! -f "/usr/share/ucitrack/luci-app-mlvpn.json" ] && {
|
||||
cat > /usr/share/ucitrack/luci-app-mlvpn.json << EEOF
|
||||
{
|
||||
"config": "mlvpn",
|
||||
"init": "mlvpn"
|
||||
}
|
||||
EEOF
|
||||
}
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@mlvpn[-1]
|
||||
add ucitrack mlvpn
|
||||
set ucitrack.@mlvpn[-1].init=mlvpn
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
if [ "$(uci -q get network.omrvpn)" = "" ] && [ "$(uci -q get network.mlvpn)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete network.mlvpn=interface
|
||||
set network.mlvpn=interface
|
||||
set network.mlvpn.device=mlvpn0
|
||||
set network.mlvpn.proto=dhcp
|
||||
set network.mlvpn.ip4table=vpn
|
||||
set network.mlvpn.multipath=off
|
||||
set network.mlvpn.leasetime=12h
|
||||
set network.mlvpn.mtu=1440
|
||||
commit network
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ "$(uci -q get firewall.zone_vpn.network | grep omrvpn)" = "" ] && [ "$(uci -q get firewall.zone_vpn.network | grep mlvpn)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
add_list firewall.zone_vpn.network='mlvpn'
|
||||
EOF
|
||||
fi
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
||||
Reference in new issue
Block a user