File: TROUBLESHOOTING.md

package info (click to toggle)
python-ping3 4.0.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 196 kB
  • sloc: python: 590; makefile: 3
file content (37 lines) | stat: -rw-r--r-- 1,198 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# TROUBLESHOOTING

## "Permission Denied" on Linux

Linux uses a kernel parameter (`net.ipv4.ping_group_range`) to restrict who can create ICMP (`ping`) sockets. From [kernel.org](https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt):

> ping_group_range - 2 INTEGERS
>
> Restrict ICMP_PROTO datagram sockets to users in the group range.
> The default is "1 0", meaning, that nobody (not even root) may
> create ping sockets.  Setting it to "100 100" would grant permissions
> to the single group. "0 4294967295" would enable it for the world, "100
> 4294967295" would enable it for the users, but not daemons.

To *temporarily* set this parameter, allowing all users to create ICMP sockets (until next boot):

```sh
sudo sysctl net.ipv4.ping_group_range='0 4294967295'
```

Some systems (e.g. Debian) may have issues with this, returning:

```sh
sysctl: setting key "net.ipv4.ping_group_range": Invalid argument
```

In this case, try:

```sh
sudo sysctl net.ipv4.ping_group_range='0   2147483647'
```

To *permanently* set this parameter:

```sh
echo "# allow all users to create icmp sockets\n net.ipv4.ping_group_range=0 2147483647" | sudo tee -a /etc/sysctl.d/ping_group.conf
```