I can understand why so many programmers suffer from imposter syndrome.
I know more about SSH than anyone I know, but I still read articles like this and think, “SOCKS proxy. Huh. I don’t actually know what either of those words mean.”
Before anyone jumps in to educate me on what SOCKS is (please do though!), my point is that through my entire career in tech, I’ve always read articles and had to skim over terms and acronyms that I didn’t know, unless I wanted to fall into a ten-hour rabbit hole of learning, where I ultimately feel totally overwhelmed and not sure I’m actually smarter than when I woke up this morning.
Seems like an interesting article, but for me to fully grasp it, I’d need to read like six other articles, which I can’t do during my morning coffee/mindless scroll time.
I’ve taken the approach of learning through osmosis. I’ll regularly read articles that I don’t fully understand, assuming that I’ll eventually gain a better understanding of whatever topic I’m reading about over time.
Most people apply socks directly to their feet for warmth. If you mean the Internet protocol I can’t help you, but I’d be interested in learning about it too!
Don’t feel bad. Nearly all the critical systems for computers I generally represent at least 1 person’s (sometimes many peoples) life work. You can’t possibly understand every aspect of everything program your computer uses.
I suspect there is not a single person in the world that fully understands every aspect of GRUB, SSH and systemd. There is simply too many fine details in these things to understand everything.
No need to feel bad. Your biggest power is the one you take for granted: your ability to Google and educate yourself when needed. Many people can’t do that effectively.
SOCKS is just a generic proxy protocol. It lets you tunnel TCP traffic between two hosts transparently. SSH can be use to setup this kind of tunnel using
-D
.Lets say, you work somewhere, that does, say… https decryption and/or logs stuff… or the firewall just blocks stuff in general.
And, you want to say, access that stuff.
Well, you can route your web traffic through a ssh connection, instead of it going out the traditional path. This allows you to bypass content filtering, etc.
Its, essentially like having a VPN tunnel, routing your traffic. Amazing feature.
Fantastic way to get around firewalls. One of my previous jobs firewalled every server which made developing our network services hell. But they installed an SSH server on pretty much every machine in on the LAN. We got really really good at learning how to set up local port tunnels (even multi-hop ones) to get our work done.
Back in University (2010-2013), I lived in a dorm on campus that had internet through the university’s network.
It was extremely cheap and fast (100/100 at equivalent to 3 USD per month), but Internet access was metered with a max of 50 GB / month.
However, access to University resources was not metered, and every student had ssh access to the datacenter.
That
-D
was a godsend.The D is a godsend, lol.
Touché
The local and remote port options sound exactly like something I’ve needed multiple times in the past, I’ll keep this saved for when it happens again. Great stuff!
I didn’t see it mentioned on the page. but two super helpful things (in different situations).
Master-mode/multiplexing: https://oooops.dev/2021/01/31/ssh-multiplexing-and-master-mode/
Mosh for ssh over UDP for lossy/up-down connections: https://mosh.org/
Mosh is a lifesaver for laptops and keeping shells alive.
i just use sshuttle for most of his szenarios