如何将 Incus 暴露到网络¶
默认情况下,Incus 只能通过 Unix 套接字供本地用户使用,不能通过网络访问。
要将 Incus 暴露到网络,您必须将其配置为监听除本地 Unix 套接字以外的地址。为此,请设置 core.https_address
服务器配置选项。
例如,要允许在端口 8443
上访问 Incus 服务器,请输入以下命令
incus config set core.https_address :8443
要允许通过特定 IP 地址访问,请使用 ip addr
查找可用地址,然后设置它。例如
user@host:~$
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:16:3e:e3:f3:3f brd ff:ff:ff:ff:ff:ff
inet 10.68.216.12/24 metric 100 brd 10.68.216.255 scope global dynamic enp5s0
valid_lft 3028sec preferred_lft 3028sec
inet6 fd42:e819:7a51:5a7b:216:3eff:fee3:f33f/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fee3:f33f/64 scope link
valid_lft forever preferred_lft forever
3: incusbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 00:16:3e:8d:f3:72 brd ff:ff:ff:ff:ff:ff
inet 10.64.82.1/24 scope global incusbr0
valid_lft forever preferred_lft forever
inet6 fd42:f4ab:4399:e6eb::1/64 scope global
valid_lft forever preferred_lft forever
user@host:~$
incus config set core.https_address 10.68.216.12
然后所有远程客户端都可以连接到 Incus 并访问标记为公共使用的任何镜像。
使用 Incus 服务器进行身份验证¶
为了能够访问远程 API,客户端必须使用 Incus 服务器进行身份验证。有几种身份验证方法;有关详细信息,请参见 远程 API 身份验证。
推荐的方法是将客户端的 TLS 证书通过信任令牌添加到服务器的信任存储中。要使用信任令牌对客户端进行身份验证,请完成以下步骤
在服务器上,请输入以下命令
incus config trust add <client_name>
该命令将生成并打印一个令牌,该令牌可用于添加客户端证书。
在客户端上,使用以下命令添加服务器
incus remote add <remote_name> <token>
注意
如果您的 Incus 服务器位于 NAT 后面,则在将其作为远程客户端添加时,必须指定其外部公共地址
incus remote add <name> <IP_address>
在服务器上生成令牌时,Incus 会包含一个客户端可以使用它来访问服务器的 IP 地址列表。但是,如果服务器位于 NAT 后面,这些地址可能是客户端无法连接到的本地地址。在这种情况下,您必须手动指定外部地址。
有关详细信息和其他身份验证方法,请参见 远程 API 身份验证。