ATM and overdraft fees have reached an all-time high, according to an annual Bankrate checking survey, which has studied non-interest and interest accounts over 20 years.

"ATM fees hit a record high for the 11th year, with record highs in both fees the consumer pays: The fee to their own bank and the fee to the ATM owner," Greg McBride, Bankrate chief financial analyst, tells CNBC Make It. "Overdraft fees hit a new high after a slight dip last year."

The average ATM surcharge rose to $2.97, from $2.90 last year, a 13-year high. The average fee charged by a consumer's own bank for using an out-of-network ATM rose three percent to $1.72. And the average total cost of an out-of-network ATM withdrawal is $4.69, up from $4.57.

For overdraft charges, the average fee reached $33.38, up from $33.04 last year. The most common charge amount is $35, the survey found, and the number of banks that increased their fee outnumbered those who lowered their fee seven to one.

Here are the five highest average ATM fees by metro: