如何配置网络转发¶
网络转发允许将外部 IP 地址(或其上的特定端口)转发到转发所属网络中的内部 IP 地址(或其上的特定端口)。
如果您有有限的外部 IP 地址并希望在多个实例之间共享一个外部地址,此功能非常有用。在本例中,您可以通过两种不同的方式使用网络转发
- 将来自外部地址的所有流量转发到一个实例的内部地址。这种方法使将目标为外部地址的流量移动到另一个实例变得很容易,只需重新配置网络转发即可。 
- 将来自外部地址的不同端口号的流量转发到不同的实例(以及可选的这些实例上的不同端口)。这种方法允许“共享”您的外部 IP 地址并同时公开多个实例。 
创建网络转发¶
使用以下命令创建网络转发
incus network forward create <network_name> <listen_address> [configuration_options...]
每个转发都分配给一个网络。它需要一个外部监听地址(有关可转发地址的更多信息,请参见 监听地址的要求,具体取决于您使用的网络)。
您可以通过添加 target_address=<IP_address> 配置选项来指定一个可选的默认目标地址。如果您这样做,任何与端口规范不匹配的流量都将转发到此地址。请注意,此目标地址必须与转发关联的网络在同一个子网中。
转发属性¶
网络转发具有以下属性
| 属性 | 类型 | 必需 | 描述 | 
|---|---|---|---|
| 
 | 字符串 | 是 | 要监听的 IP 地址 | 
| 
 | 字符串 | 否 | 网络转发的描述 | 
| 
 | 字符串集 | 否 | 配置选项作为键/值对(仅支持  | 
| 
 | 端口列表 | 否 | 端口规范 的列表 | 
监听地址的要求¶
有效监听地址的要求因转发关联的网络类型而异。
- 桥接网络
- 任何不冲突的监听地址都是允许的。 
- 监听地址不得与其他网络使用的子网重叠。 
 
- OVN 网络
- 允许的监听地址必须在上行链路网络的 - ipv{n}.routes设置或项目的- restricted.networks.subnets设置(如果设置)中定义。
- 监听地址不得与其他网络使用的子网重叠。 
 
配置端口¶
您可以将端口规范添加到网络转发中,以将来自监听地址上特定端口的流量转发到目标地址上特定端口。此目标地址必须与默认目标地址不同。它必须与转发关联的网络在同一个子网中。
使用以下命令添加端口规范
incus network forward port add <network_name> <listen_address> <protocol> <listen_ports> <target_address> [<target_ports>]
您可以指定单个监听端口或一组端口。如果您希望将流量转发到不同的端口,则有两个选项
- 指定单个目标端口,将来自所有监听端口的流量转发到此目标端口。 
- 指定一组目标端口,其端口数量与监听端口数量相同,将来自第一个监听端口的流量转发到第一个目标端口,第二个监听端口转发到第二个目标端口,依此类推。 
端口属性¶
网络转发端口具有以下属性
| 属性 | 类型 | 必需 | 描述 | 
|---|---|---|---|
| 
 | 字符串 | 是 | 端口( | 
| 
 | 字符串 | 是 | 监听端口(例如  | 
| 
 | 字符串 | 是 | 要转发到的 IP 地址 | 
| 
 | 字符串 | 否 | 目标端口(例如  | 
| 
 | 字符串 | 否 | 端口描述 | 
编辑网络转发¶
使用以下命令编辑网络转发
incus network forward edit <network_name> <listen_address>
该命令以 YAML 格式打开网络转发以进行编辑。您可以编辑通用配置和端口规范。
删除网络转发¶
使用以下命令删除网络转发
incus network forward delete <network_name> <listen_address>