mtr says "mtr: unable to get raw sockets"

Posted Almost 10 years ago. Visible to the public.

This is because mtr needs to open raw sockets, which it can only do as root:

 $ mtr 8.8.8.8
    mtr: unable to get raw sockets.
    
 $ sudo mtr 8.8.8.8
    Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                               Packets               Pings
 Host                               Loss%   Snt   Last   Avg  Best  Wrst  StDev
 1. 216.239.48.53                    0.0%    69   24.9   32.0  24.8  88.8    12.5
    64.233.174.55
    209.85.246.205
 2. ???
 3. google-public-dns-a.google.com   0.0%    69   24.9  26.5  24.9  35.9   1.6
 

This can be avoided by changing the ownership of mtr to root and activating the suid bit:

  $ sudo chown root:wheel /usr/local/Cellar/mtr/0.85/sbin/mtr
  $ sudo chmod u+s /usr/local/Cellar/mtr/0.85/sbin/mtr

You are probably reading this because you overlooked the "Caveats" in the install messages:

mtr requires superuser privileges. You can either run the program
via `sudo`, or change its ownership to root and set the setuid bit:

  sudo chown root:wheel /usr/local/Cellar/mtr/0.85/sbin/mtr
  sudo chmod u+s /usr/local/Cellar/mtr/0.85/sbin/mtr

In any case, you should be certain that you trust the software you
are executing with elevated privileges.
Christoph Beck
Last edit
Almost 10 years ago
Posted by Christoph Beck to BitCrowd (2014-04-06 08:27)