Hamachi:Install on Linux

From LogMeInWiki

Jump to: navigation, search


Quick Start

  1. Run 'make install' and then 'tuncfg' from under the root account
  2. Run 'hamachi-init' to generate crypto identity (any account).
  3. Run 'hamachi start' to launch Hamachi daemon.
  4. Run 'hamachi login' to put the daemon online and to create an account.
  5. Run 'hamachi join <network>' to join the network.
  6. Run 'hamachi go-online <network>' to go online in the network.
  7. Run 'hamachi list' to list network members and their status.

Requirements & Privileged Access

Hamachi requires TUN/TAP device driver to create and manage virtual network interface. If you have /dev/net/tun file, you are all set. Otherwise visit the following page for more information -


Unless you are planning to use Hamachi exclusively from under the root account, you will need to run 'tuncfg' daemon. This daemon encapsulates all root-level functionality required by Hamachi and it must be running prior to launching Hamachi itself.

Tuncfg is distributed in a source code under the BSD license. You can find the source code in ./tuncfg directory of this distribution.

Running 'make install' automatically builds tuncfg and installs it in /sbin folder. If you would prefer to install it in altervative directory, modify ./Makefile accordingly.


Hamachi Linux client comes as a single executable binary (hamachi) compiled for the platform of your choice. This binary includes the daemon, the control application and the setup utility.

To install hamachi in /usr/bin run the following command from under the root account

make install

Once installed you must run 'tuncfg' daemon with root privileges

sudo /sbin/tuncfg

or if you don't have sudo

su - ; /sbin/tuncfg; exit

Hamachi requires one time initialization (per Linux user account). This step generates cryptographic key pair and creates ~/.hamachi directory where Hamachi stores the keys, the configuration and the state. To perform this initialization run


Running Hamachi

Running Hamachi involves starting it as a background process and then controlling this process from the command line. To launch Hamachi daemon run

./hamachi start

To stop the daemon run

./hamachi stop

Running hamachi without an argument displays daemon's status

version  : hamachi-lnx-<br />
pid      : 956<br />
status   : logging in<br />
nickname : buddy<br />

When run for the first time the daemon stays offline. To bring it online run

./hamachi login

To bring it back offline use

./hamachi logout

Note that the daemon remembers its state when it is shutdown with 'stop' command. So if its state was online, it will automatically go online when started next time. If it was offline, it will stay offline.

Network Operations

Once logged in, you can join the networks using
hamachi join [netowork name] [password]

You will be prompted for the password if it is required.

You may also create your own networks using
hamachi create

You will become an owner of any networks that you create and only you

will be able to destroy these networks with
hamachi delete [network name]
To remove a network peer, use
hamachi evict [peer]

Note that you will stay offline in the network after you create or

join it. To go online in the network use
hamachi go-online [network name]
To go offline in a network, use
hamachi go-offline [network name]

To leave a network use

hamachi leave [network name]

Note again that the daemon remembers your network state. If you logout or shutdown the daemon while being online in a network, the daemon will automatically put you back online in it on the next logon.

Listing Peers

To view the list of all networks and their members run

./hamachi list

Network names are enclosed in square brakets. The asterisk (*) in front of the network name means that you are online in this network.

* [homelan]
x        ronny        bubba
*        zhopa

Underneath the network there is a peer list. Online peers will have their IP address prefixed by an asterisk (*) or an (x).

(*) means that the tunnel to the peer is either being established or ready. In latter case, peer's tunnel address will be shown on the right side of the list.

(x) means that the peer in unreachable, ie the mediation server failed to establish p2p tunnel between you and the peer.

If peer's nickname is known, it will be shown too. To retrieve peers' nicks use 'hamachi get-nicks' command.


  • Mandriva 2006: change file /etc/sysconfig/network-scripts/ifcfg-ham0 line BOOTPROTO=dhcp to BOOTPROTO=no. This prevents Hamachi from getting a new IP every time you login. This is for 2006 only, 2005 is not affected.
  • You can also change your own nick by using 'hamachi set-nick' command. If you are online, the change will occur immediately. Otherwise new nick will be remembered and the change will occur at the next login.
  • The instructions to uninstall can be found here

If commands have no output

This issue usually occurs if you do not have a an external dependency installed that Hamachi needs.

Hamachi is packed with UPX. So in order to run ldd (to find the dependencies) against hamachi, hamachi needs to be unpacked first. This is done with the upx binary.

./upx -d ./hamachi

assuming both upx and hamachi are in the current directory. If you are on Debian, you can use

apt-get install upx-ucl

to install upx (in which case the unpacking command is going to be

upx -d ./hamachi

Otherwise you can get the binary off UPX's homepage.

Once unpacked, run

ldd ./hamachi

You should see something like this -

foxtrot:~/hamachi- ldd hamachi
        linux-gate.so.1 =>  (0xffffe000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7f07000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7efc000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dca000)
        /lib/ld-linux.so.2 (0xb7f33000)

These are the dependencies. If some are missing, you will see something like -

libm.so.6 => not found
Personal tools