mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-29 21:45:13 +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,6 @@
|
||||
|
||||
config bridge 'bridge'
|
||||
option gateway '192.168.1.1'
|
||||
option ipaddr '192.168.1.2'
|
||||
option netmask '255.255.255.0'
|
||||
|
||||
Executable
+124
@@ -0,0 +1,124 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=99
|
||||
|
||||
run_bridge()
|
||||
{
|
||||
config_get enabled $1 enabled
|
||||
config_get gateway $1 gateway
|
||||
config_get ipaddr $1 ipaddr
|
||||
config_get netmask $1 netmask
|
||||
config_get network $1 network
|
||||
|
||||
ipv6=$(uci get network.globals.ula_prefix)
|
||||
if=$(cat /etc/config/network | wc -l)
|
||||
|
||||
if [ "$enabled" = "1" ]; then
|
||||
|
||||
#防止重复配置
|
||||
a=$(uci get network.bridge.device | sed 's/ /\n/g' |wc -l)
|
||||
b=$(uci get network.bridge.ipaddr)
|
||||
c=$(uci get network.bridge.netmask)
|
||||
d=$(uci get network.bridge.gateway)
|
||||
e=$(ls /sys/class/net | grep "eth" | wc -l)
|
||||
|
||||
if [ "$a" = "$network" ] || [ "$a" = "$e" ] && [ "$network" = "" ] || [ "$a" = "$network" ]; then
|
||||
f=yes
|
||||
else
|
||||
f=no
|
||||
fi
|
||||
|
||||
if [ "$b" = "$ipaddr" ] && [ "$c" = "$netmask" ] && [ "$d" = "$gateway" ] && [ "$f" = "yes" ]; then
|
||||
break;
|
||||
else
|
||||
|
||||
#模拟输入
|
||||
if [ "$network" = "0" ] || [ "$network" = "" ]; then
|
||||
eth=$(ls /sys/class/net | grep "eth" | tr '\n' ' ' | sed 's/[ ]*$//g')
|
||||
else
|
||||
eth=$(ETH $network | tr '\n' ' ' | sed 's/[ ]*$//g')
|
||||
fi
|
||||
|
||||
#备份配置
|
||||
if [ ! -f "/etc/bridge/firewall" ]; then
|
||||
mkdir /etc/bridge
|
||||
cp /etc/config/network /etc/bridge/network
|
||||
cp /etc/config/firewall /etc/bridge/firewall
|
||||
|
||||
fi
|
||||
|
||||
#清空配置
|
||||
cat /dev/null> /etc/config/network
|
||||
cat /dev/null> /etc/config/firewall
|
||||
|
||||
#写入network网络接口
|
||||
uci set network.loopback=interface
|
||||
uci set network.loopback.device=lo
|
||||
uci set network.loopback.proto=static
|
||||
uci set network.loopback.ipaddr=127.0.0.1
|
||||
uci set network.loopback.netmask=255.0.0.0
|
||||
uci set network.globals=globals
|
||||
uci set network.globals.ula_prefix=$ipv6
|
||||
uci set network.bridge=interface
|
||||
uci set network.bridge.type='bridge'
|
||||
uci set network.bridge.device="$eth"
|
||||
uci set network.bridge.proto='static'
|
||||
uci set network.bridge.ipaddr=$ipaddr
|
||||
uci set network.bridge.netmask=$netmask
|
||||
uci set network.bridge.gateway=$gateway
|
||||
uci set network.bridge.dns=$gateway
|
||||
uci set network.bridge.force_link='0'
|
||||
uci commit network
|
||||
|
||||
#写入firewall防火墙
|
||||
uci add firewall zone
|
||||
uci set firewall.@zone[0].input=ACCEPT
|
||||
uci set firewall.@zone[0].output=ACCEPT
|
||||
uci set firewall.@zone[0].forward=ACCEPT
|
||||
uci set firewall.@zone[0].conntrack=1
|
||||
uci set firewall.@zone[0].mtu_fix=1
|
||||
uci set firewall.@zone[0].name=bridge
|
||||
uci set firewall.@zone[0].network=bridge
|
||||
uci commit firewall
|
||||
|
||||
#重启网络DNS服务与防火墙
|
||||
/etc/init.d/network reload 2>/dev/null &
|
||||
/etc/init.d/dnsmasq reload 2>/dev/null &
|
||||
/etc/init.d/firewall reload 2>/dev/null &
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
#恢复配置&删除备份
|
||||
if [ -f "/etc/bridge/firewall" ]; then
|
||||
cp /etc/bridge/network /etc/config/network
|
||||
cp /etc/bridge/firewall /etc/config/firewall
|
||||
rm -rf /etc/bridge
|
||||
|
||||
#重启网络DNS服务与防火墙
|
||||
/etc/init.d/network reload 2>/dev/null &
|
||||
/etc/init.d/dnsmasq reload 2>/dev/null &
|
||||
/etc/init.d/firewall reload 2>/dev/null &
|
||||
fi
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
ETH()
|
||||
{
|
||||
eth=0
|
||||
while [ $eth -le $(expr "$1" - 1) ]
|
||||
do
|
||||
eth=`expr $eth + 1`
|
||||
a=`expr $eth - 1`
|
||||
echo "eth$a"
|
||||
done
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
config_load bridge
|
||||
config_foreach run_bridge bridge
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ ! -f "/usr/share/ucitrack/luci-app-bridge.json" ] && {
|
||||
cat > /usr/share/ucitrack/luci-app-bridge.json << EEOF
|
||||
{
|
||||
"config": "bridge",
|
||||
"init": "bridge"
|
||||
}
|
||||
EEOF
|
||||
}
|
||||
|
||||
chmod +x /etc/init.d/bridge
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"luci-app-bridge": {
|
||||
"description": "Grant UCI access for luci-app-bridge",
|
||||
"read": {
|
||||
"uci": [ "bridge" ]
|
||||
},
|
||||
"write": {
|
||||
"uci": [ "bridge" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"config": "bridge",
|
||||
"init": "bridge"
|
||||
}
|
||||
Reference in new issue
Block a user