pub fn with_context(
        context: Arc<ServiceContext>,
        forward_addr: Address,
        client_addr: ServerAddr,
        balancer: PingBalancer,
    ) -> Self {
        Self {
            context,
            forward_addr,
            mode: Mode::TcpOnly,
            udp_expiry_duration: None,
            udp_capacity: None,
            client_addr,
            udp_addr: None,
            balancer,
            #[cfg(target_os = "macos")]
            launchd_tcp_socket_name: None,
            #[cfg(target_os = "macos")]
            launchd_udp_socket_name: None,
        }
    }
Create a new Tunnel server with context
crates/shadowsocks-service/src/local/tunnel/server.rs