pub async fn connect_with_opts<A>(
        context: Arc<ServiceContext>,
        server: &ServerIdent,
        addr: A,
        opts: &ConnectOpts,
    ) -> io::Result<Self>
    where
        A: Into<Address>,
    {
        let addr = addr.into();
        if context.check_target_bypassed(&addr).await {
            Self::connect_bypassed_with_opts(context, addr, opts).await
        } else {
            Self::connect_proxied_with_opts(context, server, addr, opts).await
        }
    }
Connect to target `addr` via shadowsocks' server configured by `svr_cfg`
crates/shadowsocks-service/src/local/net/tcp/auto_proxy_stream.rs