455 current 2025-06-28 04:47:33 25.05.20250424.f771eb4 6.12.24 *
This commit is contained in:
16
home/scripts/dns/dnsblock-norestart.sh
Executable file
16
home/scripts/dns/dnsblock-norestart.sh
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
OP=${1:-}; DOMAIN=${2:-}
|
||||||
|
[[ $OP =~ ^(on|off)$ && -n $DOMAIN ]] || {
|
||||||
|
echo "usage: dnsblock on|off <domain>"; exit 1; }
|
||||||
|
|
||||||
|
FILE="/var/lib/dnsmasq/conf.d/block-$DOMAIN.conf"
|
||||||
|
|
||||||
|
if [[ $OP == on ]]; then
|
||||||
|
sudo tee "$FILE" >/dev/null <<EOF
|
||||||
|
address=/${DOMAIN}/0.0.0.0
|
||||||
|
address=/${DOMAIN}/::
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
sudo rm -f "$FILE"
|
||||||
|
fi
|
||||||
19
home/scripts/dns/dnsblock.sh
Executable file
19
home/scripts/dns/dnsblock.sh
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
OP=${1:-}; DOMAIN=${2:-}
|
||||||
|
[[ $OP =~ ^(on|off)$ && -n $DOMAIN ]] || {
|
||||||
|
echo "usage: dnsblock on|off <domain>"; exit 1; }
|
||||||
|
|
||||||
|
FILE="/var/lib/dnsmasq/conf.d/block-$DOMAIN.conf"
|
||||||
|
|
||||||
|
if [[ $OP == on ]]; then
|
||||||
|
sudo tee "$FILE" >/dev/null <<EOF
|
||||||
|
address=/${DOMAIN}/0.0.0.0
|
||||||
|
address=/${DOMAIN}/::
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
sudo rm -f "$FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo systemctl restart dnsmasq
|
||||||
|
# sudo systemctl reload dnsmasq
|
||||||
8
system/networking/blockers.sh
Normal file
8
system/networking/blockers.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
websites=("www.reddit.com" "reddit.com" "www.youtube.com" "youtube.com" "www.instagram.com" "instagram.com" "www.facebook.com" "facebook.com" "www.craigslist.org" "craigslist.org" "www.ebay.com" "ebay.com" "www.monkeytype.com" "monkeytype.com" "www.typeracer.com" "typeracer.com" "www.twitter.com" "twitter.com" "www.linkedin.com" "linkedin.com" "tinder.com")
|
||||||
|
|
||||||
|
for website in ${websites[@]}; do
|
||||||
|
grep -v "$website" /etc/hosts > "$tempHosts"
|
||||||
|
mv "$tempHosts" /etc/hosts
|
||||||
|
done
|
||||||
@@ -12,12 +12,23 @@
|
|||||||
"127.0.0.1" = ["localhost"];
|
"127.0.0.1" = ["localhost"];
|
||||||
};
|
};
|
||||||
|
|
||||||
networkmanager.enable = true;
|
networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
# dispatcherScripts = [
|
||||||
|
# {
|
||||||
|
# source = ./blockers.sh;
|
||||||
|
# type = "basic";
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
};
|
||||||
|
|
||||||
# interfaces = {
|
# interfaces = {
|
||||||
# enp0s31f6 = {};
|
# enp0s31f6 = {};
|
||||||
# wlp4s0 = {};
|
# wlp4s0 = {};
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
# ensures wireless is wlan0, eth is eth0;
|
||||||
|
# predictable interfaces is kinda sussy innit?
|
||||||
usePredictableInterfaceNames = false;
|
usePredictableInterfaceNames = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
system.activationScripts.dnsmasqConfd = lib.stringAfter ["var"] ''
|
||||||
|
mkdir -p /var/lib/dnsmasq/conf.d
|
||||||
|
'';
|
||||||
|
|
||||||
services.dnsmasq = {
|
services.dnsmasq = {
|
||||||
enable = true;
|
enable = true;
|
||||||
resolveLocalQueries = true;
|
resolveLocalQueries = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user