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
|
||||
nohook lookup-hostname
|
||||
|
||||
#denyinterfaces eth0 wlan0 #BRIDGED
|
||||
|
||||
# RaspAP br0 configuration
|
||||
interface br0
|
||||
|
||||
# RaspAP wlan0 configuration
|
||||
interface wlan0
|
||||
static ip_address=10.3.141.1/24
|
||||
|
|
|
@ -20,3 +20,5 @@ country_code=
|
|||
## RaspAP wireless client AP mode
|
||||
#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
|
||||
|
||||
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"
|
||||
}
|
||||
|
||||
|
@ -209,6 +210,11 @@ function check_for_old_configs() {
|
|||
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"
|
||||
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
|
||||
|
@ -235,6 +241,11 @@ function default_configuration() {
|
|||
|
||||
[ -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
|
||||
sudo cp "$webroot_dir/config/config.php" "$webroot_dir/includes/config.php"
|
||||
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