Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux LXC容器作为VPS_Linux_Containers_Vps_Lxc - Fatal编程技术网

Linux LXC容器作为VPS

Linux LXC容器作为VPS,linux,containers,vps,lxc,Linux,Containers,Vps,Lxc,我一直在研究LXC容器,我想知道是否可以像普通VPS一样使用LXC容器 我的意思是 如何将外部IP地址分配给LXC容器? 如何直接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服务 要使任何容器服

我一直在研究LXC容器,我想知道是否可以像普通VPS一样使用LXC容器

我的意思是

如何将外部IP地址分配给LXC容器? 如何直接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服务

要使任何容器服务对世界可用,请配置从主机到容器的端口转发

例如,如果容器中有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可用。

听起来您想要的是将主机NIC桥接到容器。在这种情况下,您需要做的第一件事就是创建一个桥。首先确保系统上安装了桥接UTIL,然后打开/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名为我的NIC名为enp5s0。完成更改后,可以通过发出命令来启动桥接器

sudo ifup br0
假设一切顺利,您应该保持internet访问,甚至您的ssh会话也应该在此过程中保持在线。我建议您对主机进行物理访问,因为弄乱上述步骤可能会阻止主机访问internet。您可以通过运行ifconfig并检查br0是否有分配的IP地址,而eth0没有,来验证您的设置是否正确

设置完毕后,打开/etc/lxc/default.conf并进行更改

lxc.network.link = lxcbr0

就这样。您启动的任何容器都将自动桥接到eth0,并将与主机有效地存在于同一LAN上。此时,如果还没有安装ssh,可以使用新分配的IP地址将ssh安装到容器中

lxc.network.link = br0