github.com/igoogolx/clash@v1.19.8/docs/configuration/introduction.md (about) 1 --- 2 sidebarTitle: Introduction 3 sidebarOrder: 1 4 --- 5 6 # Introduction 7 8 In this chapter, we'll cover the common features of Clash and how they should be used and configured. 9 10 Clash uses [YAML](https://yaml.org), _YAML Ain't Markup Language_, for configuration files. YAML is designed to be easy to be read, be written, and be interpreted by computers, and is commonly used for exact configuration files. 11 12 ## Understanding how Clash works 13 14 Before proceeding, it's important to understand how Clash works, in which there are two critical components: 15 16 ![](/assets/connection-flow.png) 17 18 <!-- https://excalidraw.com/clash-connection-flow#json=OHsOdaqAUPuuN7VPvdZ9Z,NT7rRrtzRgbVIM0tpkPnGA --> 19 20 ### Inbound 21 22 Inbound is the component that listens on the local end. It works by opening a local port and listening for incoming connections. When a connection comes in, Clash looks up the rules that are configured in the configuration file, and decides which outbound that the connection should go next. 23 24 ### Outbound 25 26 Outbound is the component that connects to the remote end. Depending on the configuration, it can be a specific network interface, a proxy server, or a [proxy group](./outbound#proxy-groups). 27 28 ## Rule-based Routing 29 30 Clash supports rule-based routing, which means you can route packets to different outbounds based on the a variety of contraints. The rules can be defined in the `rules` section of the configuration file. 31 32 There's a number of available rule types, and each rule type has its own syntax. The general syntax of a rule is: 33 34 ```txt 35 TYPE,ARGUMENT,POLICY(,no-resolve) 36 ``` 37 38 In the upcoming guides, you will learn more about how rules can be configured.