Go is great for networking. If you’re interested in tunnels and Ngrok, the original repo is easy to read.
Maybe build a chat app with TCP and UDP. Deploy it on a VM behind a reverse proxy like NGINX. Run the app in Docker or on the VM and setup iptables.
That could be a great summer project. If you want to do low level stuff, Beej is king. You could implement a DNS server. It’s not too terrible.