ssh port forwarding / ssh tunneling

I’ve always been curious on ssh port forwarding enough to experiment and learn it to be deadly enough. I currently have two machines that I’d like to test this with, both -L (local) and -R (remote).

I have a C7 host behind a router and a C8 host on the internet that I’ll be testing with.

Our set up is the following:

192.168.2.222:22 (c7 Host) <-> 192.168.2.1:* (router) <-> 159.203.99.198:22 (c8 host)

Local Forwarding

What I’m going to do is forward port 4444 on my c7 machine to connect to the c8 host on port 22 by launching the following on 192.168.2.222:

$ ssh -L 192.168.2.222:4444:159.203.99.198:22 localhost

At this point I can start a SSH session to 192.168.2.222 at port 4444. I’m prompted to log in at 159.203.99.198, and i’m good to go. As long as the command is running I maintain a connection.

To remove the login necessity I added ~/.ssh/id_rsa.pub to ~/.ssh/authorized_keys for passwordless local log in.

Remote Forwarding

Remote forwarding allows world-accessible hosts to provide access to internal hosts. In our previous scenario we forwarded from an intranetwork host to a world host. Now we’re gonna use that intranetwork host and make it so that if we SSH to the world host at port 4444 that we will be ssh-ing to our intranetwork host, bypassing the router.

On 192.168.2.222 I execute the following:

$ ssh -R 4444:localhost:22 159.203.99.198 -ldiffuser

On my world-accessible host I log in with “diffuser”, and the forwarding is set up.

On 159.203.99.198 I can ssh to localhost:4444 and connect as internaluser with ease:

$ ssh localhost -p 4444 -linternaluser

Due to how /etc/ssh/sshd_config has GatewayPorts set up by default I cannot connect with my home computer to my world-accessible host. I would have to restart sshd service after setting GatewayPorts=yes (by default it’s no)

Flash Flashcard to HTML5

One of the awesome things about hoarding old images and video from the “good old” days is having the ability to bring new life to them. In 2018 I had re-released a friends work that he did for me in April 2013 by re-posting the flash videos that were made. Little did I know that flash would go the way of the dodo bird and browsers would shun files.

As an 8th-year “octoversary” I decided to dig down into my old files and grab the original images and audio and bring new life to them. I spent a small, but worthwhile, amount of time generating some reusable code to convert flashcard-style flash presentations to HTML5. This is now done over on T.C. in 2013, and the result is somewhat magnificent.

Earlier in the course of the project we happened across a person who did voicework. She went by the name of “Shawty Luv” and was able to provide us some starter voicework with our fairs. It was initially proposed to her to do our “tutorials”, and she happily did it for 2500 rays ($175 USD at the time). She subsequently delivered goods in zip fashion on 26 Feb 2013.

I decided to compile them together and bring them new life here:

Read More

How I made Plex work for me

As I’ve written before, I run a Plex Media Server at my home, and have run many different configurations of set ups for almost 4 years. We originally ran the client off of our XBox 360 until the App was obsoleted, and now we enjoy it on desktops, mobiles, and on our Samsung TV, delivering high-quality content to our family.

Our current Plex Media Server is run on a 4-core/4GB laptop with an external USB-attached 6TB hard drive complete with a library of 1708 Movies and 111 TV Shows. It’s not an expensive set up and has paid itself off time and time again.

For the longest time i’ve used plex.tv to access my Plex Media Server remotely, and painfully have had to endure poor quality streaming because I wasn’t really aware about how Plex works behind the scenes. After some time I’ve learned the “why” and the “repairs” to be able to take my remote Plex Viewing up a notch.

Read More

Smaller mkv with ffmpeg

When you run a Plex Media Server you know that family and friends ask for specific content to be placed on it so they can watch it. It comes down that a “popular” series just finished up all 9 of their episodes and the wanted it to exist on our Plex. I was able to find the asked content, but was a bit surprised when the video content was a spectacular 1080p but the audio content defaulted to Brazilian Portuguese.

Lucky for me there was an English audio stream as well, but I felt it annoying that if I wanted to start watching this and have to swap to the secondary audio track every time. With the power of ffmpeg[static] and a couple smart command-line parameters I was able to re-make my videos with English as the default language and cut out all the unnecessary data.

Read More

Learning Docker: Take 1

It was time. I’ve been waiting for enough time to learn Docker and begin to get familiar with it. I’ve heard of it, seen it in action, and thought it was the coolest thing in the world and I had to learn it. I decided to take the dive off the actual Docker ship and descend into the depths.

So, I found a YouTube video from the Docker YouTube video channel (link: https://youtu.be/iqqDU2crIEQ). Albeit it provided me some terminology and knowledge, it didn’t really tell me everything I wanted to know, like some under-the-core or how docker did the docker thing. I learned how to build, ps, port forward, docker hub, and a Dockerfile, but then they went to docker-compose and I got lost.

So, after sitting on that video and registering all the information I decided to set a goal: Load minecraft in a docker container. This shouldn’t be difficult, as it requires java, some source files, and that should be simple.

Read More