UDP via ICMP transport daemon



icmptransd [-f] [-v] [-b bindport] [-c connectport] [-i icmpid] [-p pidfile]
    [-r remoteaddr] [-s setuid] [-t icmptype] [-u udpaddr]
  • -f .. foreground
  • -v .. verbose
  • -b .. UDP port to bind to
  • -c .. UDP port to connect to
  • -i .. ICMP id
  • -p .. PID file
  • -r .. remote IP address for ICMP packets
  • -s .. set UID
  • -t .. ICMP type
  • -u .. remote IP address for UDP packets

ICMP Payload

Bits 0-15 ICMP Type | ICMP Code (= 7)
Bits 16-31 Checksum
Bits 32-47 ICMP id
Bits 48-63 Sequence Nr

Usage Example

Suppose your server has IP address and you have a daemon listening on UDP port 22222 running on that machine.

  • Run icmptransd on the server machine:
icmptransd -p /var/run/ -s nobody -c 22222 -u -i 33333
  • Run icmptransd on the client machine:
icmptransd -p /var/run/ -s nobody -b 11111 -r -i 33333

Finally, configure your UDP client to connect to, port 11111 (instead of, port 22222).