A distributed cross-layer control algorithm for rate control, routing, antenna scheduling and power allocation is proposed for multi-hop satellite networks. First, considering constraints of link rate, power and antenna number, a network utility maximization model is formulated. Then the maximization problem is decomposed into three subproblems of different network layers. By solving the subproblems of rate control, routing, antenna scheduling and power allocation, a distributed cross-layer control algorithm is proposed. Simulation results show that the algorithm can stable the network and achieve a high throughput over the traditional method.