LXC 容器作为 VPS
LXC Container as VPS
我一直在研究 LXC 容器,我想知道是否可以像普通容器一样使用 LXC 容器VPS?
我的意思是;
- 如何为 LXC 容器分配外部 IP 地址?
- 如何直接通过 ssh 进入 LXC 容器?
我对 LXC 容器还很陌生,所以如果有任何其他我应该注意的差异,请告诉我。
lxc-create -t download -n cn_name
lxc-start -n cn_name -d
lxc-attach -n cn_name
然后在容器中 cn_name 安装 openssh 服务器,以便您可以使用 ssh 然后重新启动它或重新启动 ssh 服务。
要使任何容器 "services" 对世界可用,请配置从主机到容器的端口转发。
例如,如果您在容器中有一个 Web 服务器,要将端口 80 从主机 IP 192.168.1.1 转发到 IP 为 10.0.3.1 的容器,您可以使用下面的 iptables 规则。
iptables -t nat -I PREROUTING -i eth0 -p TCP -d 191.168.1.1/32 --dport 80 -j DNAT --to-destination 10.0.3.1:80
现在容器的 80 端口上的 Web 服务器将可以通过主机的 80 端口访问 OS。
听起来你想要的是将主机网卡桥接到容器。在这种情况下,您需要做的第一件事就是创建一座桥。为此,首先确保系统上安装了 bridge-utils,然后打开 /etc/networking/interfaces 进行编辑并更改为:
auto eth0
iface eth0 inet dhcp
对此:
auto br0
iface br0 inet dhcp
bridge-interfaces eth0
bridge-ports eth0
up ifconfig eth0 up
iface eth0 inet manual
如果您的 NIC 未命名为 eth0,则应将 eth0 替换为您的 NIC 的任何名称(我的名称为 enp5s0)。进行更改后,您可以通过发出命令
来启动网桥
sudo ifup br0
假设一切顺利,您应该保持互联网访问,甚至您的 ssh 会话在此过程中也应该保持在线。我建议您对主机进行物理访问,因为弄乱上述步骤可能会阻止主机访问互联网。您可以通过 运行 ifconfig 验证您的设置是否正确,并检查 br0 是否已分配 IP 地址而 eth0 没有。
设置完成后,打开 /etc/lxc/default.conf 并更改
lxc.network.link = lxcbr0
到
lxc.network.link = br0
就是这样。您启动的任何容器都将自动桥接到 eth0,并且将有效地与主机存在于同一 LAN 上。此时,您可以安装 ssh(如果尚未安装)并使用新分配的 IP 地址将 ssh 连接到容器中。
"Converting eth0 to br0 and getting all your LXC or LXD onto your LAN"
我一直在研究 LXC 容器,我想知道是否可以像普通容器一样使用 LXC 容器VPS?
我的意思是;
- 如何为 LXC 容器分配外部 IP 地址?
- 如何直接通过 ssh 进入 LXC 容器?
我对 LXC 容器还很陌生,所以如果有任何其他我应该注意的差异,请告诉我。
lxc-create -t download -n cn_name
lxc-start -n cn_name -d
lxc-attach -n cn_name
然后在容器中 cn_name 安装 openssh 服务器,以便您可以使用 ssh 然后重新启动它或重新启动 ssh 服务。
要使任何容器 "services" 对世界可用,请配置从主机到容器的端口转发。
例如,如果您在容器中有一个 Web 服务器,要将端口 80 从主机 IP 192.168.1.1 转发到 IP 为 10.0.3.1 的容器,您可以使用下面的 iptables 规则。
iptables -t nat -I PREROUTING -i eth0 -p TCP -d 191.168.1.1/32 --dport 80 -j DNAT --to-destination 10.0.3.1:80
现在容器的 80 端口上的 Web 服务器将可以通过主机的 80 端口访问 OS。
听起来你想要的是将主机网卡桥接到容器。在这种情况下,您需要做的第一件事就是创建一座桥。为此,首先确保系统上安装了 bridge-utils,然后打开 /etc/networking/interfaces 进行编辑并更改为:
auto eth0
iface eth0 inet dhcp
对此:
auto br0
iface br0 inet dhcp
bridge-interfaces eth0
bridge-ports eth0
up ifconfig eth0 up
iface eth0 inet manual
如果您的 NIC 未命名为 eth0,则应将 eth0 替换为您的 NIC 的任何名称(我的名称为 enp5s0)。进行更改后,您可以通过发出命令
来启动网桥sudo ifup br0
假设一切顺利,您应该保持互联网访问,甚至您的 ssh 会话在此过程中也应该保持在线。我建议您对主机进行物理访问,因为弄乱上述步骤可能会阻止主机访问互联网。您可以通过 运行 ifconfig 验证您的设置是否正确,并检查 br0 是否已分配 IP 地址而 eth0 没有。
设置完成后,打开 /etc/lxc/default.conf 并更改
lxc.network.link = lxcbr0
到
lxc.network.link = br0
就是这样。您启动的任何容器都将自动桥接到 eth0,并且将有效地与主机存在于同一 LAN 上。此时,您可以安装 ssh(如果尚未安装)并使用新分配的 IP 地址将 ssh 连接到容器中。
"Converting eth0 to br0 and getting all your LXC or LXD onto your LAN"