mirror of
https://github.com/RaspAP/raspap-webgui.git
synced 2024-11-21 15:10:22 +00:00
Add bridged-routed toggle script
This commit is contained in:
parent
00c4d3b9b2
commit
9800b23e4d
6 changed files with 68 additions and 1 deletions
|
@ -10,6 +10,11 @@ require dhcp_server_identifier
|
||||||
slaac private
|
slaac private
|
||||||
nohook lookup-hostname
|
nohook lookup-hostname
|
||||||
|
|
||||||
|
#denyinterfaces eth0 wlan0 #BRIDGED
|
||||||
|
|
||||||
|
# RaspAP br0 configuration
|
||||||
|
interface br0
|
||||||
|
|
||||||
# RaspAP wlan0 configuration
|
# RaspAP wlan0 configuration
|
||||||
interface wlan0
|
interface wlan0
|
||||||
static ip_address=10.3.141.1/24
|
static ip_address=10.3.141.1/24
|
||||||
|
|
|
@ -20,3 +20,5 @@ country_code=
|
||||||
## RaspAP wireless client AP mode
|
## RaspAP wireless client AP mode
|
||||||
#interface=uap0
|
#interface=uap0
|
||||||
|
|
||||||
|
## RaspAP bridge AP mode (disabled by default)
|
||||||
|
#bridge=br0
|
||||||
|
|
5
config/raspap-br0-member-eth0.network
Normal file
5
config/raspap-br0-member-eth0.network
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[Match]
|
||||||
|
Name=eth0
|
||||||
|
|
||||||
|
[Network]
|
||||||
|
Bridge=br0
|
3
config/raspap-bridge-br0.netdev
Normal file
3
config/raspap-bridge-br0.netdev
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[NetDev]
|
||||||
|
Name=br0
|
||||||
|
Kind=bridge
|
|
@ -169,7 +169,8 @@ function download_latest_files() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_log "Cloning latest files from github"
|
install_log "Cloning latest files from github"
|
||||||
git clone --depth 1 https://github.com/billz/raspap-webgui /tmp/raspap-webgui || install_error "Unable to download files from github"
|
# git clone --depth 1 https://github.com/billz/raspap-webgui /tmp/raspap-webgui || install_error "Unable to download files from github"
|
||||||
|
git clone --single-branch --branch bridge-mode --depth 1 https://github.com/Taikuh/raspap-webgui /tmp/raspap-webgui || install_error "Unable to download files from github"
|
||||||
sudo mv /tmp/raspap-webgui $webroot_dir || install_error "Unable to move raspap-webgui to web root"
|
sudo mv /tmp/raspap-webgui $webroot_dir || install_error "Unable to move raspap-webgui to web root"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,6 +210,11 @@ function check_for_old_configs() {
|
||||||
sudo cp /etc/rc.local "$raspap_dir/backups/rc.local.`date +%F-%R`"
|
sudo cp /etc/rc.local "$raspap_dir/backups/rc.local.`date +%F-%R`"
|
||||||
sudo ln -sf "$raspap_dir/backups/rc.local.`date +%F-%R`" "$raspap_dir/backups/rc.local"
|
sudo ln -sf "$raspap_dir/backups/rc.local.`date +%F-%R`" "$raspap_dir/backups/rc.local"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
for file in /etc/systemd/network/raspap-*.net*; do
|
||||||
|
sudo cp "$file" "${raspap_dir}/backups/${file}.`date +%F-%R`"
|
||||||
|
sudo ln -sf "${raspap_dir}/backups/${file}.`date +%F-%R`" "${raspap_dir}/backups/${file}"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Move configuration file to the correct location
|
# Move configuration file to the correct location
|
||||||
|
@ -235,6 +241,11 @@ function default_configuration() {
|
||||||
|
|
||||||
[ -d /etc/dnsmasq.d ] || sudo mkdir /etc/dnsmasq.d
|
[ -d /etc/dnsmasq.d ] || sudo mkdir /etc/dnsmasq.d
|
||||||
|
|
||||||
|
sudo systemctl stop systemd-networkd
|
||||||
|
sudo systemctl disable systemd-networkd
|
||||||
|
sudo cp $webroot_dir/config/raspap-bridge-br0.netdev /etc/systemd/network/raspap-bridge-br0.netdev || install_error "Unable to move br0 netdev file"
|
||||||
|
sudo cp $webroot_dir/config/raspap-br0-member-eth0.network /etc/systemd/network/raspap-br0-member-eth0.network || install_error "Unable to move br0 member file"
|
||||||
|
|
||||||
if [ ! -f "$webroot_dir/includes/config.php" ]; then
|
if [ ! -f "$webroot_dir/includes/config.php" ]; then
|
||||||
sudo cp "$webroot_dir/config/config.php" "$webroot_dir/includes/config.php"
|
sudo cp "$webroot_dir/config/config.php" "$webroot_dir/includes/config.php"
|
||||||
fi
|
fi
|
||||||
|
|
41
installers/toggle-bridged-routed.sh
Executable file
41
installers/toggle-bridged-routed.sh
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function do_routed_mode() {
|
||||||
|
sudo systemctl disable systemd-networkd
|
||||||
|
|
||||||
|
sudo sed -i "s/^.*#BRIDGED$/#&/" /etc/dhcpcd.conf
|
||||||
|
sudo sed -i "s/^bridge/#&/" /etc/hostapd/hostapd.conf
|
||||||
|
|
||||||
|
sudo ip link set down br0
|
||||||
|
sudo ip link del dev br0
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_bridged_mode() {
|
||||||
|
sudo sed -i "s/^#\(.*#BRIDGED\)$/\1/" /etc/dhcpcd.conf
|
||||||
|
sudo sed -i "s/^#\(bridge\)/\1/" /etc/hostapd/hostapd.conf
|
||||||
|
|
||||||
|
sudo ip link set down eth0
|
||||||
|
sudo ip link set up eth0
|
||||||
|
|
||||||
|
sudo systemctl start systemd-networkd
|
||||||
|
sudo systemctl enable systemd-networkd
|
||||||
|
}
|
||||||
|
|
||||||
|
sudo systemctl stop systemd-networkd
|
||||||
|
sudo systemctl stop hostapd
|
||||||
|
sudo systemctl stop dhcpcd
|
||||||
|
sudo systemctl stop dnsmasq
|
||||||
|
|
||||||
|
if [ "$1" = "force-routed" ]
|
||||||
|
then do_routed_mode
|
||||||
|
elif [ "$1" = "force-bridged" ]
|
||||||
|
then do_bridged_mode
|
||||||
|
elif ip addr show br0 | grep 'inet ' > /dev/null
|
||||||
|
then do_routed_mode
|
||||||
|
elif ! ip addr show br0 | grep 'inet ' > /dev/null
|
||||||
|
then do_bridged_mode
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo systemctl start hostapd
|
||||||
|
sudo systemctl start dhcpcd
|
||||||
|
sudo systemctl start dnsmasq
|
Loading…
Reference in a new issue