Edit: This is the end of the story and you might be interested in seeing the support tickets I've interchanged with Santrex.

I have a VPS with Santrex.net and I'm having some technical difficulties. It is not a post of opinion about if Santrex is good or not, or if it's enaugh for my propuses or for your propouses, it's a post about the technical difficulties that I have had. In some cases this can be more valuable that a simple opinion.

My configuration is:

  • Type of VPS: OpenVZ Linux.
  • Administrated by: me, myself and I (root access).
  • OS: Debian 6/Stable (krenel version 2.6.18-164.15.1.el5.028stab068.9)
  • Network: Unlimited
  • Memory: 512 MB (1024 brustable, don't reall know what does it means...)
  • Disk space: 45GB
  • Connection: 100Mbps
  • Server Location: Germany
  • Monthly price: $9
  • Time I've been using this VPS: two weeks

Problems I'm having:

  • The custom kernel of OpenVZ does not have tun/tap kernel modules installed. This is a problem if you want to install OpenVPN or PPTPd services. I thought that I could have my own VPN having a VPS, but with Santrex (and my configuration) it does not seem possible.
  • After every reboot, when I try to connect via SSH the openssh client says "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!". This is a symptom of a MITM attack and I don't really like to have this warning every time I reboot the machine for obvious reasons. Sometimes, even if I don't restart the machine, this warning appears anyway. I don't really understand what's wrong. They change the key pairs of my openssh daemon every time I reboot it? Maybe. [Fixed here]
  • Listing the processes. When you do a  "sudo ps aux"  or a simple "ps" trying to list all the processes you have currently running, most of the times (not always, I don't know what makes the difference) is does not show anything, or just show partial information. It's like you weren't running any process at all. It's very annoying when you are trying to debug problems with services because you cannot do a "ps aux | grep ssh" to check if the openssh server is working correctly, or see how many processes you have.
  • We don't have "ps" so it is difficult to know what are the applications that are consuming more memory.
  • You cannot reboot your VPS from the machine itself, you have to do it from the web browser. This is not a problem, just something you have to know.
  • Have some problems just after fresh install VSquota package and his LSB tags and with the locales as well.
  • In my laptop, I can run the command "cat /proc/*/comm | less" and I'll see the names of all the processes. The file "comm" of every process contains the name of the process. In the VPS all the files "comm" of every process does not exists (maybe that the way they can prevent you from doing a proper "ps", I don't know).
  • I had an script ./4chan.py that downloads images from 4chan. I launched late at night but in the morning, for some reason, the script was stopped. I don't know if it was an error with the script itself, a problem of connectivity (that maybe broke my script) or what... but I had the sensation that I cannot trust the machine at all (I'll have to try again, btw).

[Some solutions]

A funny way for see some the name of the processes of the system is by executing "$ sudo strings /proc// | grep  "^Name:"  ".

Name:    pptpd  
Name:    named  
Name:    saslauthd  
Name:    saslauthd  
Name:    syslogd  
Name:    sendmail-mta  
Name:    sshd  
Name:    xinetd  
Name:    cron  
Name:    mysqld_safe  
Name:    mysqld  
Name:    logger  
Name:    cherokee  
Name:    cherokee-worker  
Name:    python  
Name:    sshd  
Name:    sshd  
Name:    bash  
Name:    sudo  
Name:    grep  
Name:    php-cgi  
Name:    php-cgi  
Name:    php-cgi  
Name:    php-cgi  
Name:    php-cgi  
Name:    php-cgi

To be able to know the memory used by a process we can do:

/proc/1/status:VmSize:        2024 kB  
/proc/23567/status:VmSize:        1852 kB  
/proc/69314/status:VmSize:       48292 kB  
/proc/69336/status:VmSize:        8664 kB  
/proc/69337/status:VmSize:        8664 kB  
/proc/69349/status:VmSize:        1732 kB  
/proc/69376/status:VmSize:        9960 kB  
/proc/69403/status:VmSize:        5484 kB  
/proc/69416/status:VmSize:        2388 kB  
/proc/69431/status:VmSize:        3804 kB  
/proc/69467/status:VmSize:        2672 kB  
/proc/69594/status:VmSize:      156408 kB  
/proc/69596/status:VmSize:        1664 kB  
/proc/70709/status:VmSize:       13740 kB  
/proc/70731/status:VmSize:       47120 kB  
/proc/77361/status:VmSize:       10484 kB  
/proc/7900/status:VmSize:        8540 kB  
/proc/7915/status:VmSize:        8676 kB  
/proc/7916/status:VmSize:        4540 kB  
/proc/85667/status:VmSize:       30464 kB  
/proc/85669/status:VmSize:       40192 kB  
/proc/85670/status:VmSize:       40192 kB  
/proc/85671/status:VmSize:       40192 kB  
/proc/85672/status:VmSize:       48924 kB  
/proc/85673/status:VmSize:       46596 kB

And we will have te memory used for each process. This is not very useful because we don't know the name of the process, just the PID. We can create a little script for being able generate the same information that "ps" provides:

for file in /proc/*  
do  
    if [ -d $file ]; then  
        if [[ $file =~ [0123456789]+$ ]]; then  
            pid=$(echo $file | cut -d"/" -f3)  
            name=$(sudo strings $file/* | grep "Name:" | grep -v "%" | head -1)  
            memory=$(grep "VmSize" $file/status)  
            echo "Pid: $pid - $name $memory"  
        fi  
fi

As a result of executing the script we can end up with something like this:

Pid: 1 - Name:    init VmSize:        2024 kB  
Pid: 15622 - Name:    sshd VmSize:        6828 kB  
Pid: 15637 - Name:    sshd VmSize:        6828 kB  
Pid: 15649 - Name:    sshd VmSize:        6828 kB  
Pid: 15655 - Name:    sshd VmSize:        6828 kB  
Pid: 15691 - Name:    ps.sh VmSize:        4156 kB  
Pid: 23567 - Name:    pptpd VmSize:        1852 kB  
Pid: 69314 - Name:    named VmSize:       48292 kB  
Pid: 69336 - Name:    saslauthd VmSize:        8664 kB  
Pid: 69337 - Name:    saslauthd VmSize:        8664 kB  
Pid: 69349 - Name:    syslogd VmSize:        1732 kB  
Pid: 69376 - Name:    sendmail-mta VmSize:        9960 kB  
Pid: 69403 - Name:    sshd VmSize:        5484 kB  
Pid: 69416 - Name:    xinetd VmSize:        2388 kB  
Pid: 69431 - Name:    cron VmSize:        3804 kB  
Pid: 69467 - Name:    mysqld_safe VmSize:        2672 kB  
Pid: 69594 - Name:    mysqld VmSize:      156408 kB  
Pid: 69596 - Name:    logger VmSize:        1664 kB  
Pid: 70709 - Name:    cherokee VmSize:       13740 kB  
Pid: 70731 - Name:    cherokee-worker VmSize:       47116 kB  
Pid: 73550 - Name:    vim VmSize:        5780 kB  
Pid: 77361 - Name:    python VmSize:       10484 kB  
Pid: 7900 - Name:    sshd VmSize:        8540 kB  
Pid: 79122 - Name:    sshd VmSize:        8540 kB  
Pid: 79130 - Name:    sshd VmSize:        8540 kB  
Pid: 79133 - Name:    bash VmSize:        4528 kB  
Pid: 7915 - Name:    sshd VmSize:        8676 kB  
Pid: 7916 - Name:    bash VmSize:        4540 kB  
Pid: 85667 - Name:    php-cgi VmSize:       30464 kB  
Pid: 85669 - Name:    php-cgi VmSize:       40192 kB  
Pid: 85670 - Name:    php-cgi VmSize:       40192 kB  
Pid: 85671 - Name:    php-cgi VmSize:       40192 kB  
Pid: 85672 - Name:    php-cgi VmSize:       48924 kB

It's just a ugly hack, but it works. Of course I would prefer to have my "ps" command working as expected.

[Conclusions]

The main problem is to know if you have make a mistake when configurating a new service or tuning stuff on the system, or if it's something that the kernel/hosting does not support (in case of tun/tap) or just it does not work properly (like the command "ps") for some strange reason. Some problems can be bypassed like this ugly script simulating "ps", or using openssh and creating SOCKS5 tunnel for being able to use the VPS as a proxy instead of having a proper VPN installation.

And all of this just during two weeks! I promise to writte more stuff if I found new problems. Thanks for reading.