如何配置网络转发¶
网络转发允许将外部 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>