There are jillions of tools available*, but they mostly 1) require a specific client on the server, or 2) don't actually send traffic, they passively analyze what's there.
Here's a solution: transmit a largish file to the server, where it will ignore the data. Measure the network bandwidth locally using 'cpipe' or another tool.
Setup: enable SSH on the router, install "cpipe" locally.
cat /boot/vmlinuz-* | cpipe -vt | ssh router 'cat >/dev/null'
I get lines like this, with statistics on each of many chunks of data:
thru: 280.736ms at 455.9kB/s ( 288.7kB/s avg) 768.0kB
thru: 330.929ms at 386.8kB/s ( 299.6kB/s avg) 896.0kB
thru: 315.523ms at 405.7kB/s ( 309.7kB/s avg) 1024.0kB
This version buffers 10,000KB into a single chunk before sending it over the network, giving a slightly more accurate bandwidth number:
cat /boot/vmlinuz-* | cpipe -b 10000 -vt | ssh router 'cat >/dev/null'
thru: 13908.225ms at 411.6kB/s ( 411.6kB/s avg) 5.6MB