The invention relates to a method for repairing heavy metal-polluted soil or sludge with nano-zero-valent iron (nZVI). The method comprises the following steps of: fully mixing treated soil, sludge and the nZVI by using a nanotechnology, wherein a part of heavy metals in the soil or sludge is reduced by the nZVI, and the other part is adsorbed onto the surface of the nZVI, so that the heavy metals in the soil or sludge are removed; and separating the nZVI containing heavy metals by adopting a magnet, so that the change of the physicochemical property of the soil or sludge during or after the removing process is reduced. The method is easy to operate, has a remarkable effect, can be used for removing copper, nickel, zinc, cobalt, chromium, cadmium, lead and the like existing in the soil orsludge in one step, and has the characteristics of low cost, high repairing rate and the like when applied to the type of heavy-metal-polluted soil. In the invention, certain adjustment can be performed on parameters, such as nZVI concentration, treating time, liquid-solid rate and the like, according to different kinds and contents of heavy metals contained in different polluted soil or sludge. Purified soil or sludge gets back to farmlands, so that secondary pollution is not caused.