The invention discloses an iron-based adsorbent and a preparation method thereof. The preparation method comprises the following steps: (1) dissolving ferrous sulfate and ferric sulfate into water, and sealing and stirring so as to obtain a mixed iron-based solution; (2) dissolving sodium hydroxide into water, and sealing and stirring so as to obtain a basic alkali liquid; (3) dissolving sodium hexametaphosphate into water, and sealing and stirring so as to obtain a sodium hexametaphosphate solution; (4) mixing activated carbon with the sodium hexametaphosphate solution, and sealing and stirring so as to obtain a carbon-carried sodium hexametaphosphate solution; (5) synchronously mixing the basic alkali liquid and the sodium hexametaphosphate solution, or the basic alkali liquid and the carbon-carried sodium hexametaphosphate solution, with the mixed iron-based solution, sealing so as to obtain slurry, carrying out vacuum drying, and grinding, thereby obtaining the iron-based adsorbent. The iron-based adsorbent has good acid resistance, adsorption properties and stability, and is capable of removing Zn(II), Cu(II), Pb(II), Cd(II), Cr(VI), As(V), Hg(II) and Se(IV) in a water body ofwhich the pH value is 2-13.