操作系统:Ubuntu 15.10
LXD:2.0.0.rc5
我想知道如何从同一本地网络上的另一台计算机访问容器。
我的 PC 的地址(LXD 主机):192.168.1.112 (enp3s0)
Xenial 容器:10.0.3.181 (eth0), 10.0.4.1 (lxcbr0)
其他 PC(Fedora 23):192.168.2.118 (wlp3s0)
我可以从另一台 PC ping 到 LXD 主机,否则。
有几种不同的方法可以完成你想要的。
选项 1 和 2 需要在主机上启用 ip-forwarding:
# 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
Run Code Online (Sandbox Code Playgroud)
如果您想访问来宾上的特定服务,例如 http(端口 80)(您使用主机 ip-address+port 访问来宾端口 80),则最简单的是 1,但您不能在同一端口上运行主机服务。
# 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)
Run Code Online (Sandbox Code Playgroud)
选项 2 更棘手,取决于您可以修改网络的程度。
检查 ( sudo iptables -L -n) 是否表示链 FORWARD(策略接受)或sudo iptables -I FORWARD -s 192.168.2.118 -j ACCEPT明确允许。现在,要么在网络防火墙上将 10.0.3.0/24 路由到 192.168.1.112 主机,要么在 192.168.2.118 上测试路由。
sudo ip route add 10.0.3.181 via 192.168.1.112 dev wlp3s0
Run Code Online (Sandbox Code Playgroud)
第三个选项是将您的 lxd 访客作为局域网的一部分带到您的局域网。请参阅说明转换 eth0(在您的情况下为 enp3s0)以桥接如何执行此操作。简而言之:
eth0或enp3s0到该桥enp3s0)将 lxd 来宾设备绑定到该网桥
stop network-manager
brctl addbr br0
brctl addif br0 enp3s0
ifconfig enp3s0 up
ifconfig br0 up
dhclient br0
lxc profile edit default
- change lxcbr0 to br0
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
8652 次 |
| 最近记录: |