The invention relates to a controller placement method for a software-defined network. The method includes the steps that firstly, network topology G is roughened through the maximum matching concept of graphs in the graph theory, G is roughened into G1, G1 is roughened into G2, G2 is roughened into G3, ..., and Gm-1 is roughened into Gm until the number of vertex |Vm| of Gm is smaller than c*k, wherein c is generally equal to 15; secondly, a final roughened network Gm obtained after the network topology G is roughened in the first step is divided; finally, after the network topology G is divided into k regions, placement of controllers is conducted, wherein the k regions are division regions of switches. By means of the controller placement method, control of the multiple controllers over one network topological structure by the multiple controllers is achieved, and the limitation generated when a single controller controls the network can be avoided; meanwhile, time consumption of stream establishment in an SDN network can be shortened, and the multiple controllers can easily cope with all streams when a large number of streams are generated in the network.