dah85.com

*not* just another blog ;)

I've been using an IPTV service that works great during the day, but at night it skips and stutters and buffers like crazy. It turns out the reason for this is to do with routing.

In Australia - specifically on the NBN - peak hour is usually between 3PM and 10PM, roughly when school kids start getting home and people get home from work and start their Netflix binge watching etc.

Most (if not all?) IPTV providers tend to have their servers in Europe. It seems like Germany is a popular choice for this. I have a 100mbps (megabit per second) connection at home and during off-peak I can get around 300 kilobytes per second which is 0.3mbps (0.3 megabit per second) and during peak time this plummets down to around 50kb/sec (kilobytes per second) or 0.05mbps (megabits per second) and this makes IPTV unwatchable.

After testing different speed tests from different locations, I've realised that Australia has a pretty consistent connection to the USA, in particular LAX and Miami during off-peak and even during peak times. It got me thinking about using that to my advantage to help with my IPTV situation.

How I fixed it

I decided that the best approach here would be to set up a VPS in an ideal location, run a proxy server on it and point VLC to that proxy server.

The first thing I did was set up a cheap VPS in Los Angeles. I chose to use this one for $8/year.

For better results and to be able to select different locations or change IP etc, I would recommend setting up a cheap VPS resource pool. This one is $19/year and lets you create up to 2 VPS in 4 locations in the USA (LA, Miami, New York and Chicago.

Once I had that set up, the next thing I did was set up a tiny proxy server, aptly named Tinyproxy.

Setting up Tinyproxy

I am setting this up on a Ubuntu 16.04 VPS, if you are using another distro then replace apt with yum/etc:

sudo apt update
sudo apt install tinyproxy

Tinyproxy is now installed, but it needs to be configured.

sudo nano /etc/tinyproxy.conf

We need to change a couple of things. First, the port. It defaults to 8080 which is very predictable and likely to result in your server being used by someone else. Change it to a random high port number that you will remember:

# Port: Specify the port which tinyproxy will listen on.  Please note
# that should you choose to run on a port lower than 1024 you will need
# to start tinyproxy using root.
#
Port 8080

Secondly, by default, Tinyproxy is set to only allow access from the computer it's running on - not ideal in this case. Find the following lines and change it to look like this:

# Allow: Customization of authorization controls. If there are any
# access control keywords then the default action is to DENY. Otherwise,
# the default action is ALLOW.
#
# The order of the controls are important. All incoming connections are
# tested against the controls based on order.
#
#Allow 127.0.0.1
#Allow 192.168.0.0/16
#Allow 172.16.0.0/12
#Allow 10.0.0.0/8

Note I have placed a # in front of Allow 127.0.0.1. By doing this I have made it accept all connections. It would be better to set up a rule to allow only a certain range, but for simplicity's sake I am leaving it like this.

Now that we've configured Tinyproxy, we need to restart the VPS.

sudo reboot

When the VPS comes back online it's all ready to go and Tinyproxy is waiting for us to use it.

Configure VLC Player

Finally, we need to configure VLC player to use this proxy when playing the videos.

Go to Tools then Preferences and select the Input/Codecs tab. Right down the bottom you will see HTTP Proxy URL

Go ahead and put the IP of your VPS in there along with the port. For example 123.123.123.123:8080 making sure to replace the IP with your VPS IP and the port with the port you've chosen in the config file. Once that's in there, click Save.

Testing it

The moment of truth is upon us. Go ahead and try watching the IPTV stream that you usually have issues with, it's best to test it during off-peak time and as well as during peak time to be sure it's set up correctly.

And there we have it, we've got flawless* IPTV :)

*of course, other factors can come into play, but this will resolve issues related to routing.

A year later..

- Posted in VPS by with comments

It was a year ago when I started my journey into learning about VPS.

It all started when I came across lowendbox.com and found that there are some cheap VPS available. Before that, I knew you could get them from places that would charge an arm and a leg.

I originally had a server running at home, running Proxmox that was used for nextCloud and Plex Media Center and it was costing me around $30/month in electricity (the cost of electricity in Australia is stupid) and I quickly learned that I could offload this to "the cloud" (there really is no cloud, it's just a buzzword for someone else's computer!)

So, looking back at the start of my journey I have learned a lot. I have found the need to upgrade from a VPS to a dedicated server, which I found the amazing deal from SerweryDedyKowane.pl which now handles everything I need.

I still keep a few VPS for playing with, I don't really want everything to be running on my dedicated server for various reasons.

This blog, for instance, started off running on WootHosting's shared hosting for $1/year and now it's running on my dedicated server with absolutely zero downtime (except for when I restarted the server for security patches)

NextCloud and Plex run flawlessly and I'm very happy with the way it's all working.

I could still get away with using VPS instead a dedicated server for these tasks.

If I were to do that, with the hindsight that I now have, I'd recommend to myself to do this:

It's been a pretty fun learning experience, and I have certainly learned a lot by doing this. It's been also really awesome being able to share it with the world through this blog :)

Showing disk usage in Linux

- Posted in Quick Tip by with comments

If you are wondering what is taking up all the space on your Linux server or computer, then there is a simple, handy tool called ncdu which shows you exactly how much space is being used by each folder.

sudo apt install ncdu

Then if you want to view the entire computer:

cd /
ncdu

Or if you want to see which is the biggest folder in your Transmission download folder..

cd /var/lib/transmission-daemon/downloads
ncdu

To exit, press q.

Using a VPS as a proxy with SSH

- Posted in Quick Tip by with comments

Just a quick tip, if you want to use a VPS as a proxy server through SSH then use this command (if your computer runs Linux)

ssh -D 12345 [email protected]

Replace 12345 with the port you want to use.

Then in Firefox, go to Preferences and add localhost as a Socks 5 proxy and the port 12345

I always test it first by going to Google and searching "What's my IP" to make sure it shows as the VPS's IP.

And you're done.

Reviewing a $5/year VPS from AlphaRacks

- Posted in VPS by with comments

Today I was looking for the absolute cheapest VPS that I could possibly find that wasn't a NAT VPS - on other words, one that comes with a dedicated IP as opposed to a shared one.

I found this neat little VPS:

  • 10 GB HDD
  • 1 CPU (Xeon E5620)
  • 1 IPv4
  • 128MB RAM
  • 100mbit
  • 250GB Bandwidth
  • OpenVZ
  • $5/year

$5 per year barely covers the cost of an IP, let alone the rest of the specs you get!

I paid with Bitcoin, and it was set up instantly.

Here are some benchmarks:

CPU model:  Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
Number of cores: 1
CPU frequency:  2400.119 MHz
Total amount of RAM: 128 MB
Total amount of swap:  MB
System uptime:   5 min,       
I/O speed:  33.4 MB/s
Bzip 25MB: 10.42s
Download 100MB file: 11.3MB/s

Getting the full speed out of the network, the I/O is what you'd expect for $5/year.

CPU model:  Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
Number of cores: 1
CPU frequency:  2400.119 MHz
Total amount of RAM: 128 MB
Total amount of swap:  MB
System uptime:   18 min,       
I/O speed:  68.5 MB/s
Bzip 25MB: 11.15s
Download 100MB file: 11.1MB/s

Looks a little bit better in the IO department this time, network is consistent.

This would be perfect for running an Iodine DNS tunnel! It would also suit running as a VPN, an IRC bouncer, a small web server, even for playing with Linux for the first time.

128MB of RAM is the only real limitation on this VPS, but again, for the price it's hard to beat.

If you want one of these, click here :)

On one my test servers running VestaCP on an LXC container, I ran into an interesting issue where (due to the nature of LXC this is expected behaviour) the VestaCP LXC container shows the load of the host node, and as it's under load, VestaCP refuses to perform backups.

If you get an email like this "LoadAverage 5 is above threshold" and you would prefer to change that to something a bit higher (in my case, I'm changing it to 20 because I want it to backup even if the server is on fire) then here's how to do it.

We need to edit the BACKUP_LA_LIMIT=5 variable in /usr/local/vesta/func/main.sh

sudo nano /usr/local/vesta/func/main.sh

In my case I've changed it to read BACKUP_LA_LIMIT=20 so that it will always backup.

I searched high and low on the internet and couldn't find anything that suggested this, so I ended up doing a grep -r "BACKUP_LA_LIMIT" in the /usr/local/vesta directory to find which file is responsible.

I hope this can help someone else :)