This tool from USGS let’s click on a point on any river or stream in the US and then it “traces” the body of water upstream or downstream. You can calculate either
(A) the distance from a point on a stream or river to it’s outlet on the ocean or
(B) the distance from a point to its source upstream.
Option (B) has somewhat limited use because the program gives you the total distance “traced” if there are multiple tributaries…. so the distance up each branch is all added into one total. By doing a couple of downstream “river traces” and some arithmetic, you can find the distance (or “river mile”) from point A to point B. Simply trace downstream to outlet from A, then trace downstream to outlet from B, then subtract the two distances. Distances are listed under the “trace report.”
I finally found this tool after a lot of browsing around on the web…. it’s the only option out there I could find that lets you determine distances along winding rivers and streams.
https://txpub.usgs.gov/DSS/streamer/web/