tl;dr what are all the ways I can block a website on linux? Debian if it’s relevant.

I want to stop myself using certain sites. Since I’m reasonably techy and can work round all blocks I’ve come up with, I’ve found an effective approach is to apply as many hurdles as possible, so that visiting the website takes effort.

So far I’ve added the site to ublock’s block list, and redirected sites via /etc/hosts. What other options are there?

While I have admin access to the router, I’m not allowed to block sites there.

  • dieTasse@feddit.org
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    5 days ago

    You could try behavioral therapy. Doesn’t need to be psychiatrist (but does have to be professional).

    • placebo@lemmy.zip
      link
      fedilink
      English
      arrow-up
      3
      ·
      6 days ago

      It’s not a solution to a problem, it’s a mitigation option. There is a lot of evidence that it works. Even OP mentioned that it’s effective for them.

  • communism@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    6 days ago

    Maybe block on your router and save your router password such that you need to jump through several hoops to unlock it, eg password saved in one password manager DB whose master password is in another DB whose password is in another DB, etc. If you have to unlock like 10 password databases to get into your router, you’ll probably give up on whatever bad habit you were trying to do as it’s too much effort.

  • Mensh123@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    6 days ago

    LeechBlock NG isn’t exactly what your’e looking for but it still may help. Of course, it’ll have no effect if UBO and the DNS already shut everything off.

  • barlog@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    6 days ago

    I use NextDNS and it has feature to block domains. Unfortunately i often unblock it back.

  • FoundFootFootage78@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 days ago

    DNS level blocking is a massive pain to circumvent. Adguard DNS and NextDNS allow you to do this. Mullvad DNS allows you to block adult websites, gambling sites, and (optionally) social media without creating an account.

  • SayCyberOnceMore@feddit.uk
    link
    fedilink
    English
    arrow-up
    4
    ·
    7 days ago

    DNS… set your system up to use an external DNS provider like OpenDNS where you can select categories to block.

    I used this to block adult, gambling, malware, etc at the grandparent’s house when the kids were growing up and starting to search the internet for school homework, etc.

    If it’s done in the router you’ll cover all devices and you give someone else the password, so you can’t change it.

  • redrum@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    5 days ago

    You can use iptables to block connections, by example, using ufw the uncomplicated firewall:

    # apt install ufw bind9-dnsutils  #  Install ufw and nslookup
    # uIPs=$((nslookup reddit.com && \
      nslookup www.reddit.com && \
      nslookup redd.it && \
      nslookup redditstatic.com && \
      nslookup www.redditstatic.com) \
      | awk '/^Address: / { print $2 }' | sort -u); \
    for uip in ${uIPs}; do \
      echo -n "${uip} " &&  \
      ufw deny from "${uip}" comment 'deny reddit.com'; \
      ufw deny out to "${uip}" from any comment 'deny reddit.com'; \
    done;
    # ufw enable
    # ufw status numbered
    
    • redrum@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      5 days ago

      Also, to block them in the firefox browser, you can also use the FoxyProxy extension, and use the proxy by patterns options to use a non-existant proxy for the domains that you want to block.

      Edit to add config example:

  • redrum@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    6 days ago

    You can also use a firewall to deny/reject outgoing and incoming traffic to those IPs. By example, with ufw:

    # apt install ufw bind9-dnsutils  # install Uncomplicated Firewall and dig
    # ufw enable  # activate the firewall
    # dig +short reddit.com  # get reddit A IPs
    151.101.65.140
    151.101.1.140
    151.101.193.140
    151.101.129.140
    # ufw deny in on all from 151.101.65.140 comment 'deny in connections to reddit'
    # ufw deny out on all to 151.101.65.140 comment 'deny out connections to reddit'
    . . . 
    

    Or in only one line:

    uIPs=$(dig +short reddit.com); for uip in "${uIPs}"; do echo "$uip"; done;
    
    
  • jdnewmil@lemmy.ca
    link
    fedilink
    arrow-up
    2
    arrow-down
    3
    ·
    6 days ago

    See a psychiatrist. You already have root on these systems… if you are truly a split personality then fences aren’t going to prevent your other self from doing whatever they want.