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.