This small script allows using ICMP PING packets as a transport layer for Reticulum. It consists of two parts: a client and a server. The server must have a public IP address (or any other way for the client to ping it). The client only needs a computer. One server can serve any number of clients.
-
Install dependencies:
pip install scapy
-
Grant Python access to low-level sockets:
sudo setcap cap_net_raw,cap_net_admin+eip /path/to/your/bin/python
-
Add a
PipeInterfaceto your~/.reticulum/configfile on both the server and the client.
[[ICMP Interface]]
type = PipeInterface
enabled = True
command = python3 /path/to/your/icmp_tunnel.py --dst <server-ip> client
# or you can use my public server at rns.obomba.tech
# Optional: delay before respawn in seconds
respawn_delay = 2
name = ICMP Interface
[[ICMP Interface]]
type = PipeInterface
enabled = True
command = python3 /root/icmp/icmp_tunnel.py server --iface <eth0 or other interface name>
# Optional: delay before respawn in seconds
respawn_delay = 2
name = ICMP Interface
-
Start the Reticulum daemon:
rnsd