如何解决无法配置ohpm-repo私仓多域名的问题
=========================

#### 问题现象

**场景描述**：在私有内网环境中，部署ohpm-repo服务，通过路由的方式对外提供访问服务，不同网段访问该服务的域名不同。

网络拓扑图如下：

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/67/v3/BzQqwhaBQVyuBTQijwtUcg/zh-cn_image_0000002658928945.png?HW-CC-KV=V1&HW-CC-Date=20260709T134423Z&HW-CC-Expire=86400&HW-CC-Sign=A486A1116DD7F30B852370741CBD2EF936FDB4C2529C14EF70E5FD76A48BFD27 "点击放大")

**问题描述**：多台开发机和ohpm-repo服务分别在不同网段，有网络隔离，无法直接通过IP访问，只能通过不同域名进行访问。此时应如何配置服务和开发环境才能正常访问私仓服务。

#### 背景知识

[ohpm-repo私仓搭建工具|配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-ohpm-repo-configuration)：config.yaml是ohpm-repo的重要文件，可以在其中修改默认参数配置，启动插件和扩展功能。其中store.config.server配置项为仓库下载链接地址，不配置的时候取listen配置项的值。

#### 解决方案

1.  **服务端配置：**
    
    由于通过路由策略访问ohpm-repo服务，因此服务端只需监听提供服务的网卡端口即可。监听所有网卡也能保证服务访问，但若只有一个网卡或需保证网络安全的情况下，建议仅配置提供服务的网卡。即在store.config.server中配置监听网卡和端口。配置如下：
    
    *   监听本地地址：
        
        store.config.server: http://localhost:8088
        
    *   监听本地地址：
        
        store.config.server: http://127.0.0.1:8088
        
    *   监听单一网卡地址：
        
        store.config.server: http://10.0.0.1:8088
        
    *   监听所有网卡地址：
        
        store.config.server: http://0.0.0.0:8088
        
2.  **开发侧配置：**
    
    在.ohpmrc文件中配置仓库地址，这个文件通常在用户目录下的.ohpm文件夹中。假设有两台主机，访问ohpm-repo服务的域名分别是domain1和domain2，那么可以重新进行仓库配置。配置如下：
    
    *   domain1开发机仓库配置：
        
        registry=http://domain1:8088/
        
    *   domain2开发机仓库配置：
        
        registry=http://domain2:8088/
        

#### 总结

通常内网网络隔离依赖网关设施实现，服务不需要进行适配。本例中，服务子网与两个用户子网互相隔离，两个用户子网分别经由不同域名访问服务。域名由网络设施提供，服务仅需要监听对应网卡提供服务即可。当然也可以增加前置代理，使用如Nginx等服务进行转发，亦能达到类似的效果。