我有一个运行着一堆 Linux 容器的家庭服务器,它们都通过我的路由器上的 dhcp 自动分配 IP 地址。
我希望能够手动为每个容器分配 IP 地址,但我似乎在找到如何准确执行此操作的工作示例时遇到了一些麻烦。
我设置了容器,以便它们获取以 192.168.1.xxx 开头的地址,并且可以由我网络上的其他设备(而不是专用设备)访问?默认 LXD 设置给出的地址(10.whatever)。
我的一些容器的示例(deluge 也连接到 VPN):
+------------+---------+--------------------------------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------------+---------+--------------------------------+------+------------+-----------+
| deluge | RUNNING | 192.168.1.17 (eth0) | | PERSISTENT | 0 |
| | | 10.3.83.122 (tun0) | | | |
+------------+---------+--------------------------------+------+------------+-----------+
| emby | RUNNING | 192.168.1.19 (eth0) | | PERSISTENT | 0 |
+------------+---------+--------------------------------+------+------------+-----------+
| grocery | RUNNING | 192.168.1.52 (eth0) | | PERSISTENT | 0 |
+------------+---------+--------------------------------+------+------------+-----------+
我尝试过的一个示例教程似乎不起作用这篇博文发表在媒体上。我喜欢他的方法的简单性,但不幸的是,它似乎对我的容器有 0 效果。不过他的/etc/default/lxd-bridge
文件与我的略有不同。他有LXD_BRIDGE=""
,而我的则设置为LXD_BRIDGE="br0"
。
我的内容主持人 /etc/network/interfaces
# this is empty
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto br0
iface br0 inet dhcp
bridge_ports enp7s0
iface enp7s0 inet manual
我的默认 lxc 配置文件的内容当前分配给所有容器:
config:
environment.http_proxy: ""
user.network_mode: ""
description: Default LXD profile
devices:
eth0:
name: eth0
nictype: bridged
parent: br0
type: nic
name: default
used_by: []
我的所有容器都运行最新版本的 ubuntu。
LXD版本2.0.11