Chrome broke my heart <3 by not loading pages anymore.
So instead of going out with my beloved ones, here I am, fighting with Chrome :)
This error seems to be referred to as “White Screen of Death” (WSOD) because of a white background and a ”Waiting for cache…”-message on the lower left Status bar while no page is being loaded.
While searching for a solution, I tried the “Clear browsing Data…”-Button from:”the beginning of time”.
I cleared the following:
- Clear browsing history.
- Clear download history.
- Delete cookies and other site and plug-in data.
- Empty the cache.
- Clear data from hosted apps.
After a couple of days, the dreaded “Waiting for cache…”-blank page started reappearing again(!).
To fix the “Waiting for cache…” issue, I adopted a radical approach -- uninstall Chrome!
Before rushing into uninstalling Chrome, there was an issue I had to take care of first – …153 Open Tabs!
Since I adopted Chrome as tool of trade, I “bought” into the Google Sync Service, which promises to Save you all your Open Tabs:“in the cloud” – sweet!
To allow Chrome Tabs Sync with Google, you’ll have to:
- Be signed in to Chrome with your Gmail Account.
- Make sure “Open Tabs” is checked (even though your browser is not working…).
Go to chrome://settings/syncSetup and flag “Open Tabs”.
- Verify that your Google Dashboard says you have xXx “Open Tabs”.
153 is just a Number.
If you can confirm the previous steps, uninstalling Chrome should just be a matter of:
- Clearing your browsing data (as explained above, at the beginning of my post).
- Uninstalling Chrome from your Control Panel –> Programs (as usual).
- Opening your AppData & Searching/Deleting any “Chrome-related”-remnants.
- Rebooting your Computer.
Time to Install Chrome…
While installing Chrome back, I also experimented with “Chrome for Business” MSI Installer Package (& related Administered Settings), to deploy it through Group Policy (but that’s another story…).
Install Chrome as usual then Sign in to Chrome with your Google Account.
You will notice all your Web Apps will re-appear back, but not your Tabs…
To reopen all your Open Tabs:
- Open a New Empty Tab.
CTRL (or Command) + T or Click on the “PLUS”-Symbol.
- Click on “Other Devices” (Bottom right).
You never noticed that…eh?
- Click on the miniscule Small Arrow near your “ComputerName” and Click on “Open all”.
ALL your Tabs are belong to US!
I hope “Waiting for cache…” is now a thing of the past also for you!
…Assuming it is already installed (if not then “yum install vnc”).
Launch the server by typing the following on a terminal:
Then edit ~/.vnc/xstartup as follows:
# Uncomment the following two lines for the normal desktop:
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
As promised, today I will continue blogging on how to Setup a Windows RESET Image to Restore your System to a previously working state.
This post builds on my previous ones (reported here for convenience):
Please note – the RESET procedure will WIPE all your User Profile Data (including your Desktop, Documents, Pictures, Music, Videos, Etc.).
Basically you will lose everything and your computer will return to a previous (virgin, empty, nil) state.
To put it in military speech --
- REFRESH is like tactical bombing (with some collateral damage).
- RESET is like nuking(!).
The main advantage of RESET is that you won’t have to rely on a lost or missing Windows DVD or USB KEY to Restore your computer to a working state.
Use RESET only as a last resort and try other options first – That is especially true since it is your data I am talking about.
How-to Setup a RESET Image.
That said, I’ll show you how to setup a RESET Image for your computer first.
- The process starts by taking a copy of the original install.wim Image From your Windows Install Media (ie. DVD, USB KEY) To a folder within your Recovery partition.
In this example I’ll assume that:
- Your Recovery Partition is D:\
- Your Recovery Folder is D:\Recovery
- Your original “install.wim” Image from your Windows Media is usually located into the “sources”-folder.
Once your RESET Image is in place, open an Admin CMD Prompt and type the following commands:
reagentc /setosimage /path D:\Recovery\install.wim /index 1
cacls D:\Recovery /E /R Users
icacls D:\Recovery /inheritance:d
With the “reagentc”-command, you will specify the path to your RESET Image. The “/index 1”-option selects the first Windows Image within your “install.wim“-Image (Windows 8.1 Pro in my example).
You can find the correct image index with “dism /get-wiminfo /wimfile:D:\Recovery\install.wim”.
Also, to prevent damage to your RESET image, use the cacls and icacls commands to remove normal Users’ permissions and to disable inheritance.
Now you see me, now you’re dead!
I highly suggest you to test your RESET image.
Proceed as follows:
- Install a new application (say 7-zip).
- START –> POWER-Button –> RESTART while keeping the SHIFT-KEY pressed.
- Boot to WinRE.
- Select “Troubleshoot your Computer”.
- Select “RESET” to Reset your PC.
After your computer has been reset, your computer will enter the OOBE process.
You will also notice that 7-Zip is missing from the list of installed Programs and all your User Data is gone!
BONUS – Hide the Recovery Partition.
If you’ve made it that far, I guess then it’s time to hide your Recovery partition from malicious eyes.
That is to prevent you (or s/else) to accidentally write data (& fill-up) your Recovery Partition.
In this case, a few DISKPART commands will do the trick, so open a CMD as Admin and type:
select disk 0
select volume 1 <- select your “Recovery”-Volume.
remove <- remove the letter assignment (ie. D-Letter).
select partition 4 <- select your “Recovery”-Partition
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac override <- Hide the partition.
To continue with your discovery into hidden but-not-so hidden Windows secrets, the next step after configuring your Best Windows UEFI/GPT partitioning scheme is to setup a Windows REFRESH Image.
If you are a Windows Laptop or Tablet user, it is likely that your (reputable?!) vendor has already done the hard work for you.
Although if you choose to perform a clean-upgrade to a later version of Windows or you have a blank computer to start with, please be aware that Windows Setup (by default) does not configure for you a (handy!) REFRESH and/or RESET image.
That is (guess what?) so I can write these post!
If you wonder what a REFRESH or RESET image is, let me briefly introduce you these…
A REFRESH Image is a sort of a snapshot of your system-state without any of your 3rd party programs installed, while a RESET Image wipes your whole Windows system to its current defaults.
The only remarkable difference is that:
1. If you REFRESH, you won’t lose your USER PROFILE DATA (your Desktop, Docs, Pics, etc.).
2. IF you RESET, you will lose ALL your USER PROFILE DATA (your Desktop, Docs, Pics, etc.).
Now, if your feel you require further info about those features, search with your fav. search engine then get back!
Let’s get to work.
As said at the beginning, consider this post as the continuation of Best Windows UEFI/GPT partitioning scheme, so I will assume that you’ve installed Windows by following my Best Windows UEFI/GPT partitioning scheme post <LINK>.
Once on Windows, you will notice there is a ~16GB empty partition labeled “Recovery”.
This partition is intended to host both your REFRESH and RECOVERY Images (although for practical reasons I’ll be blogging about the RESET Image on a future post).
How to Deploy a REFRESH Image to your Recovery Partition.
To Deploy a REFRESH Image to your Recovery Partition, you will rely on “recimg”.
“recimg” is a neat command-line utility that allows you to setup and register a REFRESH Image.
Before using recimg (to create a Custom REFRESH Image), please locate the Drive letter that has been assigned to your “Recovery”-Partition (in my example I will assume that is “D:\”).
You can find your Recovery Partition through Explorer, Disk Management or DISKPART (up to you).
Then, on your freshly setup Windows 8.1, open an Admin CMD and type:
recimg /createimage D:\
Brace for a long wait, since the above command will create your Custom REFRESH Image based on your (currently running) Windows.
TIP: Install all your fav apps before creating your REFRESH Image
- Once the REFRESH image creation is complete, recimg will also register the image within your WinRE.
After beer, coffee (or whatever you fancy!), test that your REFRESH Image is working.
For example (After the REFRESH Image process is complete):
- Install a new application (say 7-zip).
- START –> POWER-Button –> RESTART while keeping the SHIFT-KEY pressed.
- Boot to WinRE.
- Select “Troubleshoot your Computer”.
- Select “REFRESH” to Refresh your PC.
After your computer has been refreshed, you will notice that 7-Zip is missing from the list of installed Programs (but no User Data has been harmed in the process)!
I guess that’s about it. Thanks for reading and please share my blog!
On my next article, I will show you how to Setup a Windows RESET Image.
In this post, I will assume that you wish to deploy Windows 8.1 (or newer) to your UEFI computer on a blank GPT Hard Disk in the best possible manner.
“Best” is a highly subjective topic of which you can write bibles and treaties about.
My vision of “best” mainly (not always!) revolves around “most scalable”, “most efficient” and “sustainable”.
But why write a post on how to best partition your GPT hdd when Microsoft has already published a “Recommended” GPT partitioning scheme (at http://technet.microsoft.com/en-us/library/dd744271(v=ws.10).aspx & http://technet.microsoft.com/en-us/library/hh824839.aspx)?
Always deploy WinRE to its own partition.
For one, when you simply run the default Windows setup (ie. the installer) and point it to a blank Disk, Windows setup (loosely) deploys your copy of WinRE (“winre.wim”) to C:\Windows\system32\Recovery
‘Though the above technet articles recommend you to deploy WinRE to its own partition (to which I fully agree).
So, in other words:
- Always deploy WinRE to its own partition.
Winre in its own partition (IMHO) is of advantage when you wanted to perform an offline “chkdsk /f /r” (without relying on the Windows Setup media), since the “chkdsk”-command would then be able to obtain exclusive access to the (usually b0rked..) Disk.
When you install Windows 8.1 by following my partitioning scheme, WinRE willl be automatically deployed to its own partition.
“Recovery Image”-Partition before Windows & Use the whole Disk.
Since the MS-recommended partitioning scheme has already been introduced, I will assume you are now familiar with it and you’d like to stick to it.
If that is the case, then it’s all good -- have fun!
In case you wanted to know my opinion, read on.
My objection to the MS-recommended partitioning scheme is its inflexibility:
- On the linked technet articles, Microsoft recommends you to create a fixed ~75GB “Windows”-Partition, followed by a “Recovery Image”-partition -- but I get that, these are “bare minimum” recommendations.
- Secondly, they moved the “WinRE tools”-partition to the beginning of the Disk (while instead on another popular FAQ they advise you (as a MUST!) to always deploy the EFI System partition to the beginning of the disk(!).
“Popular FAQ”? –> Here: http://support.microsoft.com/kb/302873 <-Did Microsoft techies change their mind or what?
Also, MS recommends for the “Recovery Image”-partition to be the last “just in case you wanted to claim back its space” or “to move the Recovery Image to a USB Key“.
Having options is a good thing (that’s also a reason why I like Windows), ‘though:
- Why bother making a “Recovery Image”-partition in the first place if you wanted to claim its space back?!
- Why “waste” an USB Key only for a Recovery Image?!
…”de gustibus” (“thanks but no thanks”)!
(inflexible) 512GBs SSD EXAMPLE.
To better introduce you my UEFI/GPT Partitioning scheme, I will use an example:
- Let’s assume you have a blank/unformatted 512GB SSD (usually 476GB available).
- Let’s assume you followed the technet “Recommended” GPT partitioning scheme.
By following the “Recommended” GPT partitioning scheme, you’d end-up with a disk with the following partitions:
- 300MB WinRE Partition.
- 100MB EFI Partition.
- 128MB MSR Partition.
- 75GB Windows Partition.
- 15GB Recovery Image Partition.
For a total of ~91GB.
Unless you wanted to dedicate 385GB to overprovisioning, the remaining disk space would be wasted (here my point is that they could at least explain you “how to do the maths” -- Re overprovisioning, some SSD manufacturers are already increasing the overprovisioned space).
Then there’s that 300MB WinRE Partition at the beginning which looks quite limited (IMHO).
And at last you have the 15GB Recovery Image Partition (which I wouldn’t bother to setup at the end of the hdd if I wanted to get rid of it at some point).
(improved) 512GBs SSD EXAMPLE.
Enter my recommended UEFI/GPT 512GB SSD partitioning scheme:
- 520MB EFI Partition.
- 2054MB WinRE Partition.
- 128MB MSR Partition.
- 16390MB Recovery Image Partition.
- <THE REST> Windows Partition.
For a total of 476GB.
This way, you’ll end-up:
- Using the whole disk space (ie. no need to specify a fixed size and/or learn the math).
- Deploy an EFI System Partition to the beginning of the Disk.
- Setup a Recovery Image Partition before the Windows Partition.
I’ve been more generous with the space allocation to:
- Prevent potential VSS, Backup & 4-k sector drives issues (search on technet for details).
- Allow Custom WinRE images (potential subject for a future post).
- You’ll never know what you might end placing into each of these partitions in the future (ie. shrink the Windows Partition to install Linux).
- Plenty of space for both a Refresh and a Recovery Image (within the same partiti0n No.4).
- Lots of space for Windows (and potentially other OSs).
- Space for Bitlocker.
Here’s an example that would create my recommended Disk partitioning scheme with DISKPART.
Please note – the below example will work with EVERY DISK you throw at it (ie. INDEPENDENTLY of its size). In other words, you can use the below commands to install Windows to a smaller (ie. 256GBs) or bigger (ie. 1TB) without having to do the maths.
select disk 0
create partition efi size=520
format fs=fat32 quick label=System
create partition primary size=2054 ID=de94bba4-06d1-4d40-a16a-bfd50179d6ac align=1024
format fs=NTFS label=WinRE quick
create partition msr size=128
create partition primary size=16390 align=1024
format fs=NTFS label=Recovery quick
create partition primary align=1024
format fs=NTFS quick label=C
You can reuse the above during the Windows Setup – just press “SHIFT” + “F10” to launch a command prompt and then run DISKPART to customise to your pleasure.
If you wanted to use 8k sectors, you could’ve added the “unit=8k” to the “format fs=NTFS[..]”-command, ‘though that would prevent you from using the native ntfs compression.
I guess next I will have to show you “How to put to good use that ~16GB Recovery Partition”.
If you wish to know more re what all those partitions are, read this excellent technet article: http://technet.microsoft.com/en-us/library/hh824839.aspx
Please share, follow me on twitter and support my blog to keep the articles coming!
In one of my previous articles I wrote how to use a couple of fancy tools included by default on Ubuntu to clone and restore an Windows, NTFS-based, broken hdd:
Today I will show you how I performed a similar operations by relying on CentOS 6.2 live and standard “default” tools.
The cloning procedure.
In this scenario I booted the faulty notebook off the live CentOS 6.2 CD and transferred the faulty hdd image to an SMB network share.
I found out the HP Laptop's BIOS was accessible by pressing the “F10”-key. Although I was able to correctly setup the BIOS boot sequence from the CD first, the System was unable to boot.
So, after mucking around a little bit more, I also discovered the Boot Menu key was “F9”.
This allowed my HP laptop to boot off the CentOS 6.2 live CD.
Then, on a terminal, I typed the following:
mount -t cifs //nas01/temp /mnt/tmp-smb-share -o username=rwuser
dd if=/dev/sda bs=16M conv=noerror,notrunc,sync | gzip -c > /mnt/tmp-smb-share/faulty-hp-hdd-raw-img.zip
The previous two commands are pretty self-explanatory.
The third “mount –t cifs //[..] –o username=” command allowed me to mount a remote SMB share hosted by a NAS.
Since the space on my NAS is limited, I choose to compress the dd image by piping the output to “gzip –c” (refer to the fourth command).
The advantage of so doing is easily explained.
We all know dd performs a raw copy of whatever you use as input (“if=/dev/sda”).
Say you have a 750GB hard disk drive with a total space usage of 126GB. The remaining (unallocated) space is either zeroes or random “ignored” data which amounts to ~600GB.
Since dd has no knowledge of the underlying filesystem whatsoever, if I launched the traditional dd command by specifying an “of=[..]”, I would’ve required ~750GB of space.
A clever way to counter this “limitation” is to pipe the dd output to gzip.
This way, the remaining ~600GB of unallocated space will be highly compressed!
Supposedly, you’d end up with a compressed raw image consuming ~127GB of NAS space (while the real uncompressed size would still be ~750GB).
The restore procedure.
The restore procedure involves replacing the faulty hdd with a new one, booting the system off the same CentOS 6.2 live CD & running the following on a terminal:
mount -t cifs //nas01/temp /mnt/tmp-smb-share -o username=rwuser
gunzip –c /mnt/tmp-smb-share/faulty-hp-hdd-raw-img.zip | dd of=/dev/sda bs=16M conv=noerror,notrunc,sync
The previous three commands are basically the same.
The fourth command will decompress the image off the NAS and pipe its output straight to the new hdd.
Please note: there should be no downsides IF the new hdd is bigger than the original (say you replace a faulty 750GB with a new 1TB one).
In this case, you’ll end up with unallocated space at the end of the ~750GB Boundary.
To “extend” the underlying filesystem to use the unallocated area, it might just be a matter of running gparted (from Linux) or diskpart (from Windows).
Did you pay the vTax?!
If you “vmware“, then vmrun should be your screwdriver.
If you only “Hyper-V” then know that vmrun is like “Set-VM“-equivalent (in Powershell-speech).
Among other things, vmrun allows you to boot & reboot your VMs by skipping the screamingly fast (!) WEB-UI.
vmrun relies on webservices to send commands to the host but is invoked from the CLI.
For it to work, you need a client (say a linux distro of your liking), and a vSphere server with a couple of VMs.
In my examples below, I’ll be referring to vSphere 4.1 Server (192.168.1.1) managed from an Ubuntu box.
To use vmrun, you’ll need the VIX Standalone API Libraries.
You can Download the VIX Standalone API Libraries from the vmware website (‘though you’ll have to register first).
Register with vmware (it’s free), then download and install the VIX standalone API libraries.
- Follow the enclosed instructions on how to install the VIX API libs to your system.
I downloaded and installed the VIX Standalone API Libraries on my occasional Ubuntu client of choice.
vmrun -h https://vSphere-IPAddr:8333/sdk -u root -p pwd list.
This command will provide you a list of available VMs.
It relies on the list parameter.
Once you installed VIX, from your Linux client type:
[root@localhost ubudevsrv1]# vmrun -h https://192.168.1.1:8333/sdk -u root -p p@ssw0rd list
Total running VMs: 7
[standard] ubuntu_server_3/Ubuntu 9.04 Server.vmx
You can interact with those VMs remotely.
vmrun -h https://vSphere-IPAddr:8333/sdk -u root -p pwd stop “[type] vm-name.vmx”.
This second command will show you how to shutdown a VM.
[root@localhost ubudevsrv1]# vmrun -h https://192.168.1.1:8333/sdk -u root -p p@ssw0rd stop “[standard] centos_server_1/centos-5.3-i386-server.vmx”
The above will gracefully Shutdown (provided your VM does have the “VMWARE Tools” installed), the VM named “[standard] centos_server_1/centos-5.3-i386-server.vmx”.
For the above command to work, please note you’ll have to refer to the VM by enclosing any spaces and brackets within double quotes (“…”).
vmrun -h https://vSphere-IPAddr:8333/sdk -u root -p pwd start “[type] vm-name.vmx”.
This command will simply Boot your VM of choice.
[root@localhost ubudevsrv1]# vmrun -h https://192.168.1.1:8333/sdk -u root -p p@ssw0rd start “[standard] ubuntu_server_1/Ubuntu.vmx”
Will Boot the VM named [standard] ubuntu_server_1/Ubuntu.vmx.
vmrun -h https://vSphere-IPAddr:8333/sdk -u root -p pwd reset “[type] vm-name.vmx”.
Finally, if you wish to Restart your VM, use the reset parameter.
[root@localhost ubudevsrv1]# vmrun -h https://192.168.1.1:8333/sdk -u root -p p@ssw0rd reset “[standard] centos_server_2/Centos-5.5.vmx”
The above command will Reboot the VM named “[standard] centos_server_2/Centos-5.5.vmx”.
If jailbreaking your iPhone 4 is not enough and you wish to squeeze that little small extra performance off it, then proceed as follows…
1. Login (SSH) into your iPhone.
- SSH to your iPhone with your favourite SSH client.
2. Create a New “backup dir” to which to move some useless daemons.
Why move? Because this way you’ll never accuse me of telling you to delete iPhone System files.
3. Go to the (real) location of those useless daemons.
You’ll need to first locate those files.
4. Relocate those daemons’ files out of your iPhone RAM!
Now move the files listed below From “/System/Library/LaunchDaemons” To “/var/root/Sys-Lib-LaunchDaemons-bck” (“mv” command follows, just copy/paste).
-rw-r--r-- 1 root wheel 540 Oct 20 2012 com.apple.AOSNotification.plist
-rw-r--r-- 1 root wheel 162 Oct 20 2012 com.apple.CrashHousekeeping.plist
-rw-r--r-- 1 root wheel 207 Oct 20 2012 com.apple.DumpBasebandCrash.plist
-rw-r--r-- 1 root wheel 142 Oct 20 2012 com.apple.DumpPanic.plist
-rw-r--r-- 1 root wheel 333 Oct 20 2012 com.apple.ReportCrash.DirectoryService.plist
-rw-r--r-- 1 root wheel 303 Oct 20 2012 com.apple.ReportCrash.Jetsam.plist
-rw-r--r-- 1 root wheel 306 Oct 20 2012 com.apple.ReportCrash.SafetyNet.plist
-rw-r--r-- 1 root wheel 330 Oct 20 2012 com.apple.ReportCrash.SimulateCrash.plist
-rw-r--r-- 1 root wheel 306 Oct 20 2012 com.apple.ReportCrash.StackShot.plist
-rw-r--r-- 1 root wheel 300 Oct 20 2012 com.apple.ReportCrash.plist
-rw-r--r-- 1 root wheel 230 Oct 20 2012 com.apple.mobile.profile_janitor.plist
-rw-r--r-- 1 root wheel 403 Oct 20 2012 com.apple.powerlog.plist
- Type the following “mv” terminal command to move the above files:
mv com.apple.AOSNotification.plist com.apple.CrashHousekeeping.plist com.apple.DumpBasebandCrash.plist com.apple.DumpPanic.plist com.apple.ReportCrash.DirectoryService.plist com.apple.ReportCrash.Jetsam.plist com.apple.ReportCrash.SafetyNet.plist com.apple.ReportCrash.SimulateCrash.plist com.apple.ReportCrash.StackShot.plist com.apple.ReportCrash.plist com.apple.mobile.profile_janitor.plist com.apple.powerlog.plist /var/root/Sys-Lib-LaunchDaemons-bck
5. Reboot your iPhone.
On the terminal, type:
After you reboot your iPhone, the above daemons won’t be loaded into RAM anymore.
If you want your GUI to “go faster”, install “Accelerate” (from the Cydia repos).
Accelerate will speedup your iPhone GUI transition speed for free. Also, nitrous is worth a mention (though it costs 0.9c).
I'm gonna post some infos on how once I did gain access to my Windows rig at home by using the RDP protocol inside a secure shell tunnel, FROM my office workstation TO my home computer!
What's the point of this? Since the RDP protocol does not encrypt traffic by default, it can be easily captured and analyzed, instead SSH encrypts everything it transports and no protocol analyzer can identify what's being transported by it.
First and foremost, the PCs involved in such a technique are the followings:
- My Windows XP gaming rig at home (which from now on I'll refer to as "gaming").
- My Ubuntu Home Server (server), connected at the same gaming lan at home.
- My Ubuntu Desktop Workstation at work (workstation).
There is also my home-router in between, a standard, browser configurable appliance (you mat have to configure the one given to you by your provider, YMMV).
My gaming rig was a PC with a powerful GFX card and a standard install of Windows XP; its firewall was disabled and it was directly connected with a hand made cat.5E cable to my 8 ports Gigabit Ethernet Switch.
My server was a standard low end PC with a bare install of Ubuntu 8.04 Server flavour sitting near my gaming rig. By bare install, I mean that, while installing the OS, I deselected all the features and services. I choose just the useful bare minimum to obtain a booting system. When booted, this system did offer only some vtys. This host was also directly connected to my home switch.
The other appliance I had was a browser-managed router. This router, on one side was connected to my Switch (with local IP Address), on the other side it was connected to the Internet via my ISP ADSL. I had an always-on account.
The internet browsing was automatic since the router was configured according to my ISP settings.
What I wanted to accomplish was to gain RDP access to my gaming rig from the office.
There were 2 different networks involved:
- My Home Network.
- The Office Network.
The Home LAN was the classic home network, 192.168.0.0/24
gaming's IP was 192.168.0.3
server's IP was 192.168.0.2
home-router IP was 192.168.0.1 inside and ISP-offered public IP address outside (knowing this address was crucial).
The PCs inside my home network were all able to ping each other and no firewall was enabled.
the next step consisted accessing the
and installing on it the ssh server service daemon.
For the sake of simplicity, I took Ubuntu 8.04 Server and manually installed OpenSSH:
- apt-get install ssh
I then used the default options by simply pressing Return.
The next thing I needed was to configure port forwarding on my router, so, from my gaming rig I pointed my browser to 192.168.0.1 and, after inserting the right credentials (router's user name and password), I went to a page referring to as "port forwarding".
On the port forwarding section I made a custom rule that pointed port 22 to my internal home server, with this custom rule:
- All the Inbound connections relevant to port 22 from the Internet to my router, should be sent to port 22, to my internal server IP address 192.168.0.3.
I took note of the public IP address of my router, you can simply go to www.whatismyip.com and read what your public IP address is (at the time, mine was something like 184.108.40.206 and it always changed because it was a public dynamic address) or you may decide to use a service like dynDNS.
Another thing to take care of is to set your home-router to respond to ping requests coming from the Internet, so find the right page and set it to respond to pings, because i found I had problems by not enabling this.
Back at the office I had a standard pc, wich I'm referring to as my workstation; Workstation was able to access the Internet similarly to my home gaming rig scenario.
First thing first, I tried to ping my home router's public dynamic IP address:
- ping 220.127.116.11
If you receive your responses, then you are halfway to doing this.
The next thing I tested was the SSH connectivity to my ubuntu server, so I simply did:
- ssh email@example.com
If you received a prompt asking for a password, then you configured it correctly: the ssh home server is responding and you are allowed to access it.
This also means that the forwarding rule previously applied to your home router functioned correctly.
Now just take a break and experiment with it: you're at your home server!
Since your server is inside your home network, making a tunnel is just a matter of sending him the right commands.
The magic of all this lies in the ssh server capability to stream all the data between your PC (my workstation in this case), to another PC inside your home LAN, not by accessing it directly, but by using the server as a BRIDGE that links you to the other computers inside the lan.
Open a terminal (or PuTTY if you have Windows in place of a linux workstation), and write the following:
- ssh -L 3389:gaming's-IP:3389 srvusr@Internet-router'sIP
You'll be asked for a password; insert your home server's password and, if you receive a shell, you're done!
Now, from workstation, open up an RDP client (like the Remote Desktop or a free alternative) and simply connect to localhost. You should be able to receive the Remote Desktop session of your gaming rig :D
At this point it is just a matter of inserting the right credentials to access Windows XP and you're done: a relatively fast and secure way to remotely control your home desktop gaming rig: too bad videogames streaming wasn't still possible by using only free/Open Source alternatives (for proprietary ones, there seems there are for-pay solutions like stream my game that seem to work somehow, but I haven't tried and tested those kind of services yet).