The calculated distance (air line) between Portsmouth and Winchester is approximately 21 miles respectively 34 kilometers.
By car or train, the actual journey to Winchester is certainly longer, as only the direct route (as the crow flies) between Portsmouth and Winchester has been calculated here.
Air line (approximately)
34 kilometers
18 nautical miles