Surviving The Internet on Low Speed DSL

wake-me-up-when-facebook-loads-picardIn March 2013, my family moved from the center of a small town, where 35mbps cable was available, to the outskirts where the best DSL speed is 1.5mbps. We traded the noise and hubbub of town center for the peace and quiet that comes with living out in the sticks. There are more details of this in This Post. We basically went from high speed to high latency. The second hop on a traceroute out the other end of the DSL line, is 60ms away all by itself. Pinging Google is around 80ms! Contrast this to when we were on Cable- the first hop was only 10ms, and Google was 20-30ms. We have come up with some ways to make this workable though!

Believe it or not we can watch Hulu and Netflix at the same time, even as I am working at my job from home,  although Hulu does have issues here and there. It isn’t perfect by any means. But rather than tell you all about each thing in gory detail, I’m going to outline the tools we’ve used to make it possible to get by.

1) Asus RT-N16 router. This single $80 investment is by far the most important part of the equation. By itself its a good router, but add Tomato USB to it with its QOS features, and you have something powerful on your hands. I use the Toastman builds and it works great. There’s a lot of reading to do to make it work correctly but it is well worth it. With our 1.5mbps, I limit everything to 1100kbps or less, and give my own computer priority so that when my PC needs bandwidth (since I work from home) it gets it. The Bandwidth Monitor is also great for finding out who’s hogging all the bandwidth! Sometimes somebody will be doing a big download (perhaps an update) and not even realize it. This helps me manage it better, too. This might be replaced with pfSense on my Linux box in the future.


2) AdBlock Plus. Why would an ad blocker matter? Less advertisements means less bandwidth used, which in turn means lower page load times and more bandwidth available for others. It is a minor thing but it does matter.

3) Linux servers, both on the local home network and my VPS at A Small Orange.

A) I don’t always download huge fildownload-big-fileses, but when I do, I use my VPS to download them quickly, and then I  use cron to schedule a wget of the file from my own server at something like 3 or 4 in the morning. Yes, it means waiting the next day to get bigger files but I do get them. Patience! It would probably be easier to use a Download Scheduler addon such as this one for Firefox.

B) I also use my VPS to browse remotely at times when I need to use a GUI to download a big file that can’t be gotten with a simple wget command (behind a session-based user/password, for example). For this I use a VNC server as outlined here.

C) Private DNS server. My local Debian Linux server also runs DNS for our house. Because it caches DNS, the lookups are almost always faster than if the lookups had to be done over my DSL line every time. The result? “Snappier” page loads.

4) Lowered expectations. Lets get real here for a moment. It’s 1.5mbps DSL. It isn’t going to be fast. There’s nothing you can do but work around it and not try to make it something it isn’t.

All in all, it works fine most of the time. We’re not breaking any speed records, but living out in the peace and quiet of the woods is worth the sacrifice. On the plus side, my wife has been doing more of her Amazing Cooking, I’ve learned how to chop wood, and we have clean air and can see the stars at night.

There’s more to life than high bandwidth. Most of the time!

Creating a Remote GNOME desktop with VNC on CentOS 6 for your VPS or Dedicated Server

You suffer from slow Internet speeds and need to do manage large file transfers. Perhaps you need a backup desktop that you can get to from anywhere. There are a host of reasons that you would want to run a remote desktop on a VPS or dedicated server, or even on a home server. The reason I did it is that sometimes I need to download modify, then re-upload huge file (1-10GB usually) and I need a web browser to do it (it can’t be done from command line- PHP session issues and the like) and my own internet connection is only 1.5mbps. But, I have a VPS that has a 100GB link to the Internet. So, by using VNC to connect to a GNOME desktop remotely, I can do all I need.



My own VPS uses CentoOS 6.4, but this will work on any version of CentOS 6. It would probably work with CentOS 5 too but some of the package names might be different.

First, you VPS should have at least 1GB of memory available and about 1GB of hard disk space to allocate. We’re going to assume that DNS is already set up and working. In my case, my VPS was already setup with cPanel and hosting websites. It sees light usage and so can handle the added load.

Login as root, and create a user for your desktop. It should not match a user that already exists on the server. We’re going to call our user “ryan” but you can use any name you want.

[~]# adduser ryan

and now set a password for ryan

[~]# passwd ryan

Now, we need to make sure all packages are up to date:

[~]# yum update

Now we’re going to install the desktop, remove Network Manager, and configure TigerVNC server.

[~]# yum groupinstall desktop
[~]# yum -y remove NetworkManager
[~]# yum install tigervnc-server

Copy and paste the following into your prompt to setup the vncserver.

[~]# echo ‘VNCSERVERS=”1:ryan”‘ >> /etc/sysconfig/vncservers
[~]# echo ‘VNCSERVERARGS[1]=”-geometry 1024×768″‘ >> /etc/sysconfig/vncservers

Keep in mind you’ll need to change the username and if you want a different resolution, now’s the time. You can always edit that later though.

Now we need to create a vnc password. It’s easy! Just login as the user via ssh (or use sudo) and type

[~]# vncpasswd

and to set the password.

You’ll need to allow port 5901 though your firewall, and then restart the service:

[~]# service vncserver restart

If you want yours to start every time your VPS boots, you can do

[~]# chkconfig vncserver on

Now you’ll need a VNC client for your computer. I use a free terminal software called MobaXterm. It isn’t perfect but its better than most! It has SSH, SFTP, Telnet, VNC, RDP, and many other protocols all rolled into one nice, portable package.

Here’s the results of my own setup at 1440×900, shown on a 1024×768 screen:

If you need a hand getting your remote desktop server going, leave a comment! I’ll be glad to help you get yours.

How To Make your Computer Faster, Part 2: Disabling Startups and Malware

In Parts 1 and 1.5 we talked mostly about junk removal, cleaning up temporary files, cookies and the like. Doing that will lay a solid foundation for the next steps: Disabling unnecessary start-ups and getting rid of any viruses or malware.

In Part 1.5 we took a look at Piriform’s CCleaner program, and how you can use it to clean up junk. Today we’re going to look at some of the tools it has available. If you select Tools on the left side, and then select Startup in the next column, you’ll see the programs that start up when Windows boots up. As previously mentioned, this is not as thorough as autoruns.exe from SysInternals. You’re not going to find viruses with this, as they hide in registry keys not touched by CCleaner. But for a general tune-up, it’s fantastic.

The nice thing is that with CCleaner, you could disable every thing you see in all of the tabs, and your computer will still work fine. The same cannot be said with Autoruns.exe. That’s not to say you should disable everything. Far from it! Instead, take a look at the things it loads. Examine the “Windows” tab first. If you see something you don’t use or are unfamiliar with, then go ahead and disable it. A word to the wise, however: If you use any Apple products (iPad,iPhone,iPod etc) then Do not delete items.  In my case, I disabled the MagicJack that I don’t use anymore, Spotify, LastPass, Logitech Event Manager 6 (for a trackball I no longer use) and my alarm clock software. They are all still within reach, as I can start the programs manually. But I don’t need them 100% of the time, so I can disable them from starting automatically.
don’t disable anything from Apple. It can have unintended consequences.

Now that we’ve optimized startups, reboot your computer. Does everything function properly? Are you missing any certain functionality that you’re used to? If something is missing, go back to CCleaner and re-enable one or two things that you think might be it. Reboot. Try it again until you get it right.

The same applies to all the other tabs. You’ll see a tab for each of your browsers, Scheduled Tasks and Context Menu. For the browsers, you don’t have to restart your computer, but instead just restart the browsers in order to see your changes.

Viruses and Malware

I’m going to keep this short, because there is already so much written, and it changes so quickly that its impossible to keep up on virus removal techniques unless you do it almost daily. There is one constant that is going to work very well for people of all experience levels:

Malwarebyte’s Anti-Malware

There is no compelling reason to buy the paid version, unless you want it to run in the background all the time. I personally do not, and I don’t recommend it. But, for cleaning infections, there aren’t any better tools around. Install and run the software, and it will find any and nearly all infections. There are some rootkits that it won’t find, and others that it’ll find and won’t clean. But just the same, it works very well in 99% of the cases. Some tips:

  • Run the quick scan. The full scan takes longer but is not more effective
  • Go into Settings, then Scanner Settings. For “action for potentially unwanted programs (PUP): select”Show in results and check for removal”.
  • Under “General Settings”select “Terminate Internet Explorer during threat removal”
  • Uncheck “Open log file immediately after saving” unless you want it to pop up.

Give it a try! You’ll be surprised and delighted with how effective it is. When I work on computers, I always run this. Being virus free is essential to having a computer that runs nice and fast.

In our next installment, we’ll talk about some common hardware issues that can cause a computer to run very poorly (Hint: Hard drive issues and overheating).