By default VirtualBox works in "NAT" mode, meaning that it builds a "virtual" network and translates network accesses from the VM so that to the outside world, they appear to come from your actual computer.
VirtualBox makes the VM think it's connected to a network, but in reality VirtualBox is providing network services, including a mini DHCP server. Then, VirtualBox does network accesses "on behalf" of the VM, making it appear as just another application running on your PC.
However this means that the outside world doesn't really know about the VM and can't access it directly.
I think the port redirection you did was from your home router to your PC, not to the VM. You may be missing some configuration on the VirtualBox side. Apologies if you already did this, but your question was not clear about this.
Basically you have to change the VM's network configuration and set it to "Bridged". What this does is, it creates a virtual interface on your PC and makes the VM use that to access the outside world; anything coming into or going to that interface gets piped to the VM. Thus, the VM will be visible as just another machine in whichever network your PC is connected to (it even has its own MAC address!).
Then, depending on your network's configuration, the VM may get a DHCP address like any other PC connected to your router, or you may need to configure a static IP address for it. This depends on how your network is set up.
Once the VM has a "real" address, you can, on your router, follow the instructions you found to route port 22 to the VM's IP address. This should work as you expect it to.
If it doesn't:
- Look at your VM's firewall configuration (iptables -L -n). Is it blocking anything?
- Set up another computer on your local network, and try to SSH to the VM's IP address. If you can, then you need to double-check the forwarding configuration in your router. If you can't, you need to recheck the VM's SSH and firewalling configuration.
Gaming in a Virtual box is a bad idea. You wont have the great 3D support that you desire and applications that require a lot of resources will lag. Some games will probably work, like minecraft and minesweeper. But running heavy programs like Battlefield, Skyrim and similar will not work.
The reason for this is that you are basically running two operating systems within each other and the one you will be emulating will be limited to a small portion of that computers resources.
A solution to this problem is dual boot. For example you have one partition with Linux (where you are all serious and stuff) and one partition with windows (for gaming). I had this setup on my laptop for several years it works great.
There are instructions in the Ubuntu installer for how you install with a dual boot setup. The easiest is to install Windows first and then install Ubuntu.
Good luck.
Best Answer
I just had this issue as well. I'm upgrading from Ubuntu 15.10 to 19.10. I couldn't type anything, but the mouse worked. I couldn't click in the text box, but I could click "Log in automatically" and "Require my password to log in".
I was able to fix this by right clicking on a text box, then click "Insert Emoji", then click a random emoji. Now all the text boxes work and I have no issues.
I hope this helps someone.