Wireless technologies, such as IEEE 802.11, provide for multiple non-overlapping channels. Typical multi-hop wireless network configurations have only used a single channel for the network. The available network capacity can be increased by using multiple channels. However, the number of interfaces per node is expected to remain smaller than the number of channels, and therefore a single node cannot simultaneously use all the channels. In this talk, we present the capacity of general multi-channel networks wherein the number of interfaces per node may be smaller than the number of channel. Under this scenario, we show that for a random network of n nodes, there is no capacity degradation even with only one interface per node, as long as the number of channels is less than O(log n). Thus, in theory, multiple channels can improve network capacity significantly even with a small number of interfaces per node. However, in practice, many challenges have to be addressed before the capacity improvement can be realized. We present practical protocols for utilizing multiple channels that address many of these challenges. One set of protocols have been designed for the scenario where each node may have only one interface. Another set of protocols have been designed for the scenario where each node has multiple interfaces. We will present results from simulations that demonstrate the effectiveness of our proposed protocols in significantly increasing network capacity. The talk will also discuss our work on implementing selected protocols on an experimental testbed.