> ## Content Index
> Fetch the complete content index at: https://lucent.blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 在Nacos中让服务使用指定网段ip注册
- URL: https://lucent.blog/zai-nacoszhong-rang-fu-wu-shi-yong-zhi-ding-wang-duan-ipzhu-ce/
- Published: 2022-03-31T01:45:53.000Z
- Updated: 2026-08-21T00:49:57.000Z
- Author: Lucent

### 问题描述

在nacos服务注册时，发现注册的服务全是容器虚拟IP，并不是可以通讯的内网IP。

### 问题原因

开启了user namespace，将系统用户映射到docker容器里，使其不再使用root权限。由于开启了user namespace，所以docker容器不能再共享net namespace即docker网络不能再使用host模式，只能用bridge模式。此时服务容器便有了一个虚拟ip，一般该ip在docker0的网段（默认为172）之下。所以服务注册时便使用这个ip进行注册。

### 解决方案

#### 第一种（不推荐）

为服务设置IP,在服务的配置文件bootstrap.yml中，配置：

```yaml
spring:
   cloud:
     nacos:
       discovery:
         ip: 10.1.1.1

```

![image.png](https://img-1251540275.cos.ap-shanghai.myqcloud.com/blog/image_1648691804317.png)

  
这样服务注册时就会使用设置好的ip注册，这种方式不灵活。

#### 第二种（推荐）

在nacos中，项目主配置文件中加入：

```yaml
spring:
  cloud:
    inetutils:
      ignored-interfaces: eth.*。## 只取eth*地址,eth0,eth1...
      preferred-networks: 10.24.66 ## 限制网段

```

![image.png](https://img-1251540275.cos.ap-shanghai.myqcloud.com/blog/image_1648691973479.png)

  
这样设置是限制就限制了在服务注册时只取指定网卡的ip地址，同时还限制了网段，保证服务使用正确的ip注册。  
当然这种方式也可以写到某个模块的bootstrap.yml中