How to test router-to-PC connection speed?

Solution 1:

In UNIX, you can use a utility called pv (pipe viewer) to measure data through a pipeline. You can hack this to test throughput to another host. Assuming you have ssh access to your router:

yes | pv | ssh router.foo.com "cat > /dev/null"

You're basically piping arbitrary data from the yes command to /dev/null on your router and measuring the throughput with pv.

There are a number of other ways to accomplish this, with a variety of tools. If you're on a Windows box, you can try hacking similar operations with Cygwin, but I'm sure others on this forum can provide solid suggestions on other applications.

Solution 2:

If you have two available computers, you can measure the TCP speed directly between them, without using file-transfer which is notoriously slow.

The tool to use is iPerf, available for all major operating systems.

For details see the article How to use Iperf to test the speed on TP-Link routers.

The schema of test configuration is:

enter image description here

Use your computer as the server connected via Wifi. Both computers should be on the LAN side of the router. You may connect the computer you are not testing to the router by cable (if faster), to ensure that its performance is not the bottleneck in the test.

The main points are:

  • Install iPerf on both computers
  • Disable all firewalls
  • Set static IP address for PC A
  • Set static IP address for WAN port of the Router (your router configuration must support this)
  • On PC A start the server:

    Iperf3 -s
    
  • on PC B run the command :

    Iperf3  -c  192.168.2.30   (replace IP as required)
    

The result may look like this (on the sender) when the speed is 95 Mbps:

enter image description here