Install .NET 7 on Ubuntu using Snap

sudo snap install dotnet-sdk --classic --channel=7.0
sudo snap alias dotnet-sdk.dotnet dotnet

You can edit your shell profile to permanently add the commands.

Bash Shell: ~/.bash_profile, ~/.bashrc

export DOTNET_ROOT=/snap/dotnet-sdk/current

References
https://learn.microsoft.com/en-us/dotnet/core/install/linux-snap
https://stackoverflow.com/questions/68519558/how-to-fix-segmentation-fault-core-dumped-when-creating-new-dotnet-project

Allow GUI root login on Ubuntu 22.04

sudo passwd
sudo nano /etc/gdm3/custom.conf

Inside the GDM configuration file, we need to add the AllowRoot=true line. After you have made this change, you can save and exit the file.

AllowRoot=true
sudo nano /etc/pam.d/gdm-password

Inside of the PAM authentication daemon file, comment out the following line, which denies root access to the graphical user interface, with a pound sign #. You can save your changes and exit this file when done.

auth   required        pam_succeed_if.so user != root quiet_success
reboot

References
https://linuxconfig.org/how-to-allow-gui-root-login-on-ubuntu-22-04-jammy-jellyfish-linux

Install .NET Core SDK in Manjaro Linux

sudo pacman -S dotnet-sdk
sudo pacman -S aspnet-runtime

Then, you’ll need to create /etc/profile.d/dotnet.sh and add the following:

export DOTNET_ROOT=/usr/share/dotnet
export MSBuildSDKsPath=$DOTNET_ROOT/sdk/$(${DOTNET_ROOT}/dotnet --version)/Sdks
export PATH=${PATH}:${DOTNET_ROOT}
dotnet --list-sdks

To use the extra tools, such as dotnet ef, you will want to add a line to your .bashrc file.

nano ~/.bashrc

And add the following at the end:

export PATH="$PATH:/home/jeremy/.dotnet/tools"
source ~/.bashrc

 

References
https://www.jeremymorgan.com/tutorials/linux/how-to-install-dotnet-manjaro/
https://github.com/dotnet/core/issues/7087

Installing dnscrypt-proxy on Linux

Get a root shell

sudo -s

check what else is possibly already listening to port 53

ss -lp 'sport = :domain'
systemctl stop systemd-resolved
systemctl disable systemd-resolved
ss -lp 'sport = :domain'

Download and run dnscrypt-proxy

Download dnscrypt-proxy here: dnscrypt-proxy binaries.

cp example-dnscrypt-proxy.toml dnscrypt-proxy.toml
./dnscrypt-proxy

Change the system DNS settings

apt-get remove resolvconf
cp /etc/resolv.conf /etc/resolv.conf.backup
rm -f /etc/resolv.conf

And create a new /etc/resolv.conf file with the following content:

nameserver 127.0.0.1
options edns0

Install the proxy as a system service

./dnscrypt-proxy -service install
./dnscrypt-proxy -service start
./dnscrypt-proxy -service stop
./dnscrypt-proxy -service restart
./dnscrypt-proxy -service uninstall

Want to check that DNS resolution works?

./dnscrypt-proxy -resolve example.com

Connect to 1.1.1.1 using DoH clients

Add cloudflare and cloudflare-ipv6 to the server list in dnscrypt-proxy.toml:

server_names = ['cloudflare', 'cloudflare-ipv6']

References
https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Installation-linux
https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/dns-over-https-client/