第 5 章 网络和端口配置

5.1. 接口

5.1.1. 关于接口

应用服务器在整个配置里都使用命名接口引用。这让配置可以用逻辑名称引用单独的接口声明,而不是每次都使用整个接口细节。逻辑名称的使用也保持了组引用和命名接口的一致性,而受管域上的服务器实例可能包含多个主机上不同的接口细节。使用这个方法,每个服务器实例可能对应逻辑名称组,它可以将接口组作为整体进行管理。
网络接口是通过指定逻辑名和物理接口的选择标准来声明的。应用服务器附带有用于管理及公共接口名称的默认配置。在这个配置里,公共接口组的目的是用于和应用程序相关的网络通讯,如 Web 或 Messaging。管理接口组的目的是用于管理层要求的所有组件和服务,包括 HTTP 管理端点。接口名自身是仅作为建议来提供的,任何组的名称都可以按照需要进行替换和创建。
domain.xml, host.xmlstandalone.xml 都包含了接口声明。声明标准可以引用通配符地址或指定接口或地址必须具有来进行有效匹配的一个或多个特征。下面的例子展示了接口声明的多个可能的配置,它们通常是在 standalone.xmlhost.xml 配置文件里定义的。这允许任何远程主机组维护自己所专有的接口属性,且仍然允许对域控制器里的 domain.xml 配置文件里任何接口组的引用。
第一个例子展示了为 managementpublic 相对名称组指定的专有的 inet-address 值。

例 5.1. 用 inet-address 值创建的接口组

<interfaces>
  <interface name="management">
   <inet-address value="127.0.0.1"/>
  </interface>
  <interface name="public">
   <inet-address value="127.0.0.1"/>
  </interface>
</interfaces>


在下面的例子里,全局接口组使用了 any-address 元素来声明通配符地址。

例 5.2. 用通配符声明创建的全局组

<interface name="global">
   <!-- Use the wild-card address -->
   <any-address/>
</interface>


下面的例子声明了名为 external 的相对组下的一个网络接口卡。

例 5.3. 用 NIC 值创建的外部组

        
<interface name="external">
   <nic name="eth0"/>
</interface>


在下面的例子里,根据专有需求,声明作为默认组创建。在这个实例里,其他元素的特征为接口设置了条件以进行有效的匹配。这允许每个专有接口声明组的创建,且能够以当前模式引用它们,从而减少了跨多个服务器实例的配置和管理。

例 5.4. 用专有条件值创建的默认组

<interface name="default">
   <!-- Match any interface/address on the right subnet if it's
        up, supports multicast, and isn't point-to-point -->
   <subnet-match value="192.168.0.0/16"/>
   <up/>
   <multicast/>
   <not>
      <point-to-point/>
   </not>
</interface>


虽然接口声明可以在源配置文件里创建和编辑,管理 CLI 和管理控制台为配置的修改提供了安全的、可控和持久性的环境。

5.1.2. 配置接口

standalone.xmlhost.xml 配置文件里默认的接口配置通常提供三个带有相对接口令牌的命名接口。您可以使用管理控制台或管理 CLI 来配置下表列出的其他属性和值。你也可以按需要用专有值替换相对的接口绑定。请注意,如果您这样做,您将无法在运行时传入接口值,因为 -b 选项只能覆盖相对值。

例 5.5. 默认的接口配置

        
<interfaces>
  <interface name="management">
    <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
  </interface>
  <interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
  </interface>
  <interface name="unsecure">
    <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
  </interface>
</interfaces>

表 5.1. 接口属性和值

接口元素 描述
any 地址排斥类型的空元素,用于约束选择标准。
any-address 空元素表示使用这个接口的套接字应该绑定到通配符地址。除非设置 java.net.preferIpV4Stack 系统属性为 true,否则 IPv6 将使用通配符地址(::),而 IPv4 将使用通配符地址(0.0.0.0)。如果套接字绑定到双栈主机上的任何本地 IPv6 地址,它可以接受 IPv6 及 IPv4 数据。如果绑定到任何的本地 IPv4 地址,它就只能接受 IPv4 数据。
any-ipv4-address 空元素表示使用这个接口的套接字应该绑定到 IPv4 通配符地址(0.0.0.0)。
any-ipv6-address 空元素表示使用这个接口的套接字应该绑定到 IPv6 通配符地址(::)。
inet-address 请输入 IPv6 格式的 IP 地址或者用小数点隔开的 IPv4 地址,或者可以解析为 IP 地址的主机名。
link-local-address 空元素表示接口的部分选择标准应该是或不是和 link-local 关联的地址。
loopback 空元素表示接口的部分选择标准应该是或不是 loopback 接口。
loopback-address 可能实际上不会在主机的 loopback 接口上配置的 loopback 地址。和 inet-addressType 不同的是,即使没有找到和 IP 地址相关的 NIC,给定的值也将被使用。
multicast 空元素表示接口的部分选择标准应该支持或不支持多点传送。
nic 网络接口的名称(如 eth0, eth1, lo) 。
nic-match 常规表达式,表示主机上可以映射可接受的接口的网络接口的名称。
not 地址排斥类型的空元素,用于约束选择标准。
point-to-point 空元素表示接口的部分选择标准是是否为 point-to-point 接口。
public-address 空元素表示接口的部分选择标准应该有或没有公共路由的地址。
site-local-address 空元素表示接口的部分选择标准应该是或不是和 site-local 关联的地址。
subnet-match 网络 IP 地址和地址的网络前缀的位数,以斜杠和数字表示;如 "192.168.0.0/16"。
up 空元素表示接口的部分选择标准应该是或不是正在运行。
virtual 空元素表示接口的部分选择标准应该是或不是虚拟接口。
  • 配置接口属性

    您可以用 Tab Completion 来完成输入的命令,并开放可用的属性。
    • 用管理 CLI 配置接口属性

      使用管理 CLI 来添加新的接口并编写新的接口属性的值。
      1. 添加新的接口

        使用 add 操作来创建新的接口。您可以在管理 CLI 会话的根目录里运行 add 命令,下面的例子创建了一个名为 interfacename 的接口,它将 inet-address 声明为 12.0.0.2
        /interface=interfacename/:add(inet-address=12.0.0.2)
      2. 编辑接口属性

        write 操作将新的值写入属性。下面的例子将 inet-address 的值更新为 12.0.0.8
        /interface=interfacename/:write-attribute(name=inet-address, value=12.0.0.8)
      3. 检验接口属性

        通过 include-runtime=true 参数运行 read-resource 操作来确认值已修改,从而开放服务器模型里所有当前的值。例如:
        [standalone@localhost:9999 interface=public] :read-resource(include-runtime=true)
    • 用管理控制台配置接口属性

      1. 登录到管理控制台。

        登录到受管域或独立服务器实例的管理控制台。
      2. 进入 Interfaces 屏幕

        1. 进入 Configuration 标签页。

          从屏幕顶部选择 Configuration 标签页。
        2. 仅用于域模式

          从屏幕左上角的 Profile 下拉菜单里选择要修改的配置集。
      3. 从导航菜单里选择 Interfaces

        展开 General Configuration 菜单。从导航菜单里选择 Interfaces 菜单条目。
      4. 添加新的接口

        1. 添加
        2. 输入 NameInet AddressAddress Wildcard 的值。
        3. 点击 Save
      5. 编辑接口属性

        1. Available Interfaces 列表里选择要编辑的接口并点击 Edit
        2. 输入 NameInet AddressAddress Wildcard 的值。
        3. 点击 Save