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.

ApplicationConfig.class,
            ProtocolConfig.class,
            RegistryConfig.class,
            MetadataReportConfig.class,
            MonitorConfig.class,
            MetricsConfig.class,
            SslConfig.class);
        for (Class<? extends AbstractConfig> configType : multipleConfigTypes) {
            checkDefaultAndValidateConfigs(configType);
        }
        
        Map<Integer, ProtocolConfig> protocolPortMap = new LinkedHashMap<>();
        for (ProtocolConfig protocol : this.getProtocols()) {
            Integer port = protocol.getPort();
            if (port == null || port == -1) {
                continue;
            }
            ProtocolConfig prevProtocol = protocolPortMap.get(port);
            if (prevProtocol != null) {
                throw new IllegalStateException("Duplicated port used by protocol configs, port: " + port +
                    ", configs: " + Arrays.asList(prevProtocol, protocol));
            }
            protocolPortMap.put(port, protocol);
        }
    }
    public ConfigMode getConfigMode() {
        return configMode;
    }
}