There are
1,014 mi
from Portsmouth, VA to Keokuk, IA
That's the driving distance. It would take 20 hours 4 mins to go from Portsmouth, Virginia to Keokuk, Iowa.
The flight distance (direct flight from Portsmouth, VA to Keokuk, IA) is 850.15 mi.
1,014 mi = 1.61 kms