eth0
连接到有线路由器,设置固定IP(192.168.1.30),用于内部LAN和桌面应用程序,浏览...
eth1
在模式下直接连接到另一个 ISP bridge
,因此它可以获得外部 IP,并应用于lxc
在各种容器中提供服务(Web、Torrent 等)。
route -n
显示:
Dest Gateway Genmask Iface
0.0.0.0 192.168.1.1 0.0.0.0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 eth0
80.9.9.0 0.0.0.0 255.255.0.0 eth1
当我这样做时:dhclient eth1
,我的 Slackware 系统添加了第二条默认路由,现在为eth1
,并且无法连接到 Internet。所以我把它删除了,对吗?
在/etc/lxc/default.conf
:
lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up
在容器之一lxc
( /var/lib/lxc/alpine/config
) 中:
lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up
这样,容器就可以获取第二个 ISP 的外部 IP。
将这些规则添加到firewall
fortransmission
:
iptables -A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -p udp --dport 51413 -j ACCEPT
iptables -A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -p tcp --dport 9091 -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp --sport 51413 -j ACCEPT
我有一些疑问:
什么是正确的路线设置?
出了什么问题导致无法从 Internet 连接到容器?
这种桥接模式是让一些容器共享 eth1 连接的最佳模式吗?如果是其他的话怎么办?
答案1
尝试路由器lxc 虚拟网卡的模式。
lxc.net.0.veth.mode = router
我建议给虚拟网卡一个一致的名称
lxc.net.0.veth.pair = vethlxc
现在您可以删除桥接器br0
、路由和防火墙,就像它是另一个普通的物理网卡一样。