Steinfisk finnes i de varme kystfarvannene i Indiahavet og Stillehavet, inkludert Rødehavet, Persiagulfen, og havene rundt Australia, Malaysia, Indonesia og Filippinene. De foretrekker grunne sandete eller steinete områder med gjemmesteder, som korallrev og tangmarker, og kan også forekomme i brakvanns-esteruarer og mangrover.