https://www.finnie.org/software/2ping/
2ping is a bi-directional ping utility. It uses 3-way pings (akin to TCP SYN, SYN/ACK, ACK) and after-the-fact state comparison between a 2ping listener and a 2ping client to determine which direction packet loss occurs.
2ping requires Python 3 version 3.6 or higher.
To install:
sudo python3 setup.py install
Python 3 stdlib is the only requirement for base functionality, but 2ping can utilize the following modules if available:
- distro for system distribution detection
- dnspython for --srv
- netifaces for listening on all addresses in --listen mode
- pycryptodomex (recommended) or pycryptodome or pycrypto for --encrypt
- systemd for using systemd-supplied sockets
Please see the 2ping manpage for invocation options, but in short, start a listener on the far end:
2ping --listen
And run 2ping on the near end, connecting to the far end listener:
2ping $LISTENER
Where "$LISTENER" is the name or IP address of the listener.
2ping - A bi-directional ping utility
Copyright (C) 2010-2021 Ryan Finnie
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.