I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository. There is a similar issue #10198. I did as the issue described, but still failed.

### Environment

* Dubbo version: branch 3.1
* Operating System version: win7
* Java version: 11

### Steps to reproduce this issue

1. modify the dubbo.properties in [dubbo-demo-xml-provider](https://github.com/apache/dubbo/tree/3.1/dubbo-demo/dubbo-demo-xml/dubbo-demo-xml-provider)
`dubbo.application.qos-enable=true`
`dubbo.application.qos-port=33333`
`dubbo.application.qos-accept-foreign-ip=true`
2. run dubbo-demo-xml-provider

### Expected Behavior

`telnet {ip} 33333` will connect to QoS server successfully.

### Actual Behavior

![1664249369632](https://user-images.githubusercontent.com/55968645/192425286-b545f34c-92f5-4842-ac82-ffe62281ef79.png)

There is no exception. Provider is successfully started and running.

String name = config.getName();
            checkName("name", name);
            checkHost(HOST_KEY, config.getHost());
            checkPathName("contextpath", config.getContextpath());
            if (DUBBO_PROTOCOL.equals(name)) {
                checkMultiExtension(config.getScopeModel(), Codec2.class, CODEC_KEY, config.getCodec());
                checkMultiExtension(config.getScopeModel(), Serialization.class, SERIALIZATION_KEY, config.getSerialization());
                checkMultiExtension(config.getScopeModel(), Transporter.class, SERVER_KEY, config.getServer());
                checkMultiExtension(config.getScopeModel(), Transporter.class, CLIENT_KEY, config.getClient());
            }
            checkMultiExtension(config.getScopeModel(), TelnetHandler.class, TELNET_KEY, config.getTelnet());
            checkMultiExtension(config.getScopeModel(), StatusChecker.class, "status", config.getStatus());
            checkExtension(config.getScopeModel(), Transporter.class, TRANSPORTER_KEY, config.getTransporter());
            checkExtension(config.getScopeModel(), Exchanger.class, EXCHANGER_KEY, config.getExchanger());
            checkExtension(config.getScopeModel(), Dispatcher.class, DISPATCHER_KEY, config.getDispatcher());
            checkExtension(config.getScopeModel(), Dispatcher.class, "dispather", config.getDispather());
            checkExtension(config.getScopeModel(), ThreadPool.class, THREADPOOL_KEY, config.getThreadpool());
        }
    }
    public static void validateProviderConfig(ProviderConfig config) {
        checkPathName(CONTEXTPATH_KEY, config.getContextpath());
        checkExtension(config.getScopeModel(), ThreadPool.class, THREADPOOL_KEY, config.getThreadpool());
        checkMultiExtension(config.getScopeModel(), TelnetHandler.class, TELNET_KEY, config.getTelnet());
        checkMultiExtension(config.getScopeModel(), StatusChecker.class, STATUS_KEY, config.getStatus());
        checkExtension(config.getScopeModel(), Transporter.class, TRANSPORTER_KEY, config.getTransporter());
        checkExtension(config.getScopeModel(), Exchanger.class, EXCHANGER_KEY, config.getExchanger());
    }
    public static void validateConsumerConfig(ConsumerConfig config) {
        if (config == null) {
            return;