|
我来回复下,我一直用unraid,稳的一比。看见pve,也尝试了pve,用了lxc,最后就想回到unraid里用lxc。
装了unraid的lxc插件,目前是5.03的plg; openwrt的模板下来后,修改成自己的openwrt,还是比较方便的。注意原机下来的openwrt模板默认的是wan接口,修改为lan接口就可以连上。
先添加unraid的ppp模块,go文件添加modprobe pppoe,重启。
楼主说的对,容器里的文件和文件夹权限尽量别改,不小心就不启动。我需要的目的就是替代unraid的openwrt拨号主机,所以需要添加另外一个网卡到容器(openwrt)。
查了不少资料,没正确配置到。最后问了LXC插件的作者,给了我配置方法。摸索后,修改容器中config文件,直接修改为直通网卡的配置。
lxc.net.1.type = phys
lxc.net.1.flags = up
lxc.net.1.link = eth1
lxc.net.1.name = eth1
lxc.net.1.hwaddr=xxxxxxxxx
net.1.link = eth1 这里的eth1就是unraid里的物理网卡,用ip a命令看下就知道。net.1.name = eth1 这指直通给openwrt里的作为wan口用的网卡。
如果网卡用veth模式,需要在unraid的网络配置界面,把网卡eth1,修改为可以桥接,那么ip a命令下,会有br1和eth1,实际就是一个网卡。配置文件则修改为
lxc.net.1.type = veth
lxc.net.1.flags = up
lxc.net.1.link = br1
lxc.net.1.name = eth1
lxc.net.1.hwaddr=xxxxxxxxx
在添加网卡到OPENWRT后,直接添加接口wan,设置pppoe,但提示内核不支持。回到楼主帖子里的,config文件,添加:
lxc.include = /etc/lxc/default.conf
lxc.include = /usr/share/lxc/config/userns.conf
lxc.mount.auto = proc:mixed sys:ro cgroup:mixed
lxc.mount.entry = /dev/net/tun dev/net/tun none rw,bind,create=file 0 0
lxc.mount.entry = /dev/ppp dev/ppp none rw,bind,optional,create=file 0 0
lxc.cgroup.devices.allow = a
lxc.cgroup2.devices.allow = a
-----启动容器,结束---
测试了单独重启openwrt,重启lxc插件,均可以自动启动openwrt,都可以自动拨号,不需要啥钩子啊啥。
我用的openwrt.ai编译的openwrt版本,包括主页上02.01-GENERIC-ROOTFS.TAR.GZ也可以尝试。需要在防火墙里加
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -I PREROUTING -j MASQUERADE
iptables -t nat -I POSTROUTING -j MASQUERADE
至于那一条起作用,没去试,反正添加这3条后,作为拨号主机,客户端上网没问题。作为旁路由,翻W-all也没问题。比docker里好用多了。最主要的,重启unraid,也是自动启动,不像需要在docker里手动做macvlan连接,而且docker里面,试过了n个openwrt版本,没有一个可以翻W-all。 |
|