Hamachi

From ArchWiki
Revision as of 11:15, 28 May 2012 by Fengchao (Talk | contribs) (Move to sub category.)

Jump to: navigation, search

Hamachi is a proprietary (closed source) commercial VPN software. With Hamachi you can organize two or more computers with an Internet connection into their own virtual network for direct secure communication.

Initial Configuration

To run Hamachi you need /dev/net/tun.

This is created by the tun module. As root run,

modprobe tun

Or you can manually create /dev/net/tun by running...

mkdir /dev/net
mknod /dev/net/tun c 10 200

Also, make sure to add the "tun" modules to rc.conf so that /dev/net/tun is created next time your computer turns on.

MODULES=(... ... ... ... ... tun ... ... ...)

Download And Install Hamachi

Manual installation

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Why use make install and skip package management? (Discuss in Talk:Hamachi#)

Head to hamachi.cc and download their linux client.

Untar it

tar zxvf hamachi-x.x.x-x.tar.gz

Compile:

cd hamachi-x.x.x-x
make install

And run tunecfg

cd tuncfg
./tuncfg

Run hamachi-init

$hamachi-init

And thats the installation.

Version 2 beta

Version 2 of the Linux Hamachi client exists, and is currently in beta. It is available from the labs page on the hamachi website.

hamachiAUR is available in the AUR. The vendor's tarball requires LSB and will not install correctly.

Running Hamachi

Start up the (matt) daemon

$hamachi start

Now you have a whole bunch of commands at your disposal. These are in no particular order, and are fairly self explanitory.

$hamachi set-nick bob
$hamachi login
$hamachi create my-net secretpassword
$hamachi go-online my-net
$hamachi list
$hamachi go-offline my-net

To get a list of all the commands just run:

$hamachi ?

Note: Make sure you change the status of the channel(s) you are in to online if you want to perform any network actions on computers in there.

As a Daemon

You can run hamachi as a daemon this way:

Copy your configuration to /root directory:

cp -R ~/.hamachi /root/

Create a script in /etc/rc.d/ called hamachi using your preferred editor:

. /etc/rc.conf
. /etc/rc.d/functions

DAEMON=/usr/bin/hamachi
NAME=hamachi
DESC="Hamachi VPN client"
PID_FILE=/var/run/daemons/hamachi

case "$1" in
    start)
        #Check for running tuntap, start when not running
        ck_daemon tuntap && /etc/rc.d/tuntap start
        stat_busy "Starting $DESC"
        $DAEMON -c /root/.hamachi $1 > /dev/null
        if [ $? -gt 0 ]; then
            stat_fail
        else
            add_daemon $NAME
            stat_done
        fi
        ;;
    stop)
        stat_busy "Stopping $DESC"
        [ -f $PID_FILE ] && $DAEMON -c /root/.hamachi $1 > /dev/null
        if [ $? -gt 0 ]; then
            stat_fail
        else
            rm_daemon $NAME
            stat_done
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "usage: $0 {start|stop|restart}"
	;;
esac
exit 0

Remeber to add hamachi to your daemons array in /etc/rc.conf, it should be put after tuntap.

And do not forget to:

chmod +x /etc/rc.d/hamachi

GUI

Various GUI frontends to hamachi are available in the AUR.

For hamachi 1:

  • haguichi (Gtk2, mono)
  • ghamachi (Gtk2)
  • hamachi-gui (Gtk2)

For hamachi 2 beta:

  • quamachi (Qt4)
  • haguichi (Gtk2, mono)

Troubleshooting

If Hamachi times out soon after launch

If hamachi stops working after a short period of time it can be that the client is timing out. Create ~/.hamachi/config and add the following to it:

KeepAlive 10

If you have problem connecting to some hosts

Check if they are using Hamachi2, if that is the case then it's a known issue in Hamachi2 client connecting to the Hamachi linux client.

If /etc/init.d/logmein-hamachi is not found

Replace this with /etc/rc.d/logmein-hamachi.

Error when trying to run hamachi-init

If there is error while trying to load libstdc++.so.5 you want to install it can be found from extra repository so you can install it with Pacman -S libstdc++5

If you get error while trying to load libcrypto.so.0.9.7 temporarily solution is to create link from /usr/lib/libcrypto.so.0.9.7 to /usr/lib/libcrypto.so with ln -s /usr/lib/libcrypto.so /usr/lib/libcrypto.so.0.9.7

See also