首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从本地网络到达lxd集装箱

从本地网络到达lxd集装箱
EN

Ask Ubuntu用户
提问于 2016-03-22 17:53:59
回答 3查看 10.1K关注 0票数 8

操作系统: Ubuntu 15.10

LXD: 2.0.0.rc5

我想知道如何从同一本地网络上的另一台计算机访问容器。

我的PC ( LXD主机)地址:192.168.1.112 (enp3s0)

二项式容器:10.0.3.181 (eth0), 10.0.4.1 (lxcbr0)

其他个人电脑(Fedora 23):192.168.2.118 (wlp3s0)

我可以从另一台PC到LXD主机,或者其他的。

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2016-03-26 13:44:44

有几种不同的方法来完成你想要的。

  1. 将所需端口从主机转发到客户
  2. 路由网络
  3. 桥接装置

选项1和2要求在主机上启用ip转发:

代码语言:javascript
复制
# run time:
sudo sysctl -w net.ipv4.ip_forward=1

# permanent:
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/30-virt-network

如果您想访问客户端上的特定服务,如http (端口80) (使用主机ip地址+端口访问客户端口80 ),则最简单的是1,但不能在同一端口上运行主机服务。

代码语言:javascript
复制
# on lxd host: (-i HOSTDEVICE to lan, usually enp3s0 or eth0)
sudo iptables -t nat -A PREROUTING -i enp3s0 -p tcp -m tcp --dport 80 -j DNAT --to 10.0.3.181:80
# making this permanent is left to the reader (because that depends on your choice of fw setup)

选项2更棘手,取决于您可以修改多少网络。

检查(sudo iptables -L -n)是否允许链式转发(策略接受)或sudo iptables -I FORWARD -s 192.168.2.118 -j ACCEPT允许它。现在,要么在网络防火墙路由10.0.3.0/24上访问您的192.168.1.112主机,要么在192.168.2.118上测试路由。

代码语言:javascript
复制
sudo ip route add 10.0.3.181 via 192.168.1.112 dev wlp3s0

第三种选择是将您的lxd客人带到您的局域网作为局域网的一部分。请看指令转换eth0 (在您的情况下是enp3s0)到桥接如何做到这一点。简言之:

  1. 在主机上创建桥接设备
  2. eth0enp3s0添加到该桥
  3. 将主机地址设置为桥(不是enp3s0)
  4. 将lxd来宾设备绑定到桥接停止网络管理器brctl addbr br0 brctl addif br0 enp3s0 ifconfig enp3s0 up ifconfig br0 up dhclient br0 lxc配置文件编辑默认更改lxcbr0到br0
票数 7
EN

Ask Ubuntu用户

发布于 2016-03-25 14:15:25

您需要告诉另一台计算机如何到达容器,因为另一台计算机位于与容器不同的子网上。也就是说,你需要建立一条“路线”。下面是您可以在另一台计算机上创建的示例路径。它说:“要到达容器(.181),首先要使用与主机(eth0)位于同一网络上的设备通过主机(.112)。如果另一台计算机使用不同的设备,则相应地进行更改。请注意,该路由不是永久的;它不会在重新启动后存活。谷歌将找到如何设置永久路由。

代码语言:javascript
复制
sudo ip route add 10.0.3.181 via 192.168.1.112 dev eth0
票数 0
EN

Ask Ubuntu用户

发布于 2022-03-16 13:05:18

另一种方法是安装rinetd,在/etc/rinetd.conf内部指定转发:

代码语言:javascript
复制
192.168.1.112    80      10.0.3.181    80

并重新启动rinetd

我认为这更方便,因为您可以随时检查正在转发的端口,并在需要的情况下向文件中添加注释。如果绑定到docker,也可以以同样的方式将其用于127.0.0.1 (例如:docker ... -p 127.0.0.1:80:80 ...和UFW将按预期工作。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/749063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档