需求:
-
运营商有提供ipv6
-
设备支持ipv6
-
linux主机
-
安装好docker
-
拉好bitcomet镜像
以下步骤都是以root身份进行。
步骤:
首先得知道要给ovs的物理网口叫什么名字。我的叫ens32。
ip a
安装openvswitch-switch,我不知道你们用的是哪个linux的版本,我用debian。
apt install openvswitch-switch -y
然后新建个叫ovsbr0的bridge。
ovs-vsctl add-br ovsbr0
为了ovsbr0可以连上网,需要接上个物理网口。温馨提示,进行以下命令会让这物理网口ens32的网络断开!!!
ovs-vsctl add-port ovsbr0 ens32
如果有2个及以上端口,忽略/* 到*/的内容。
/*
如果是只有这物理网口的话,用以下命令创建个叫host的虚拟网口让宿主机连上网络。
ovs-vsctl add-port ovsbr0 host – set Interface host type=internal
当然现在是没网络的,必须得设置,当然设置网络得看用的是什么网络管理器,我没用NetworkManager和Systemd,所以直接编辑/etc/network/interfaces。
auto ens32
allow-hotplug ens32
iface eno1 inet manual
auto host
allow-hotplug host
iface host inet dhcp
iface host inet6 auto
然后重启下网络。方法和网络管理器有关。
service networking restart
*/
新建个bitcomet容器,网络必须为none.
services:
sandbox:
container_name: bitcomet
image: wxhere/bitcomet:latest
volumes:
- /mnt/docker/appdata/BitComet:/home/sandbox/.config/BitComet:rw
- /mnt/Downloads:/home/sandbox/Downloads:rw
network_mode: none
environment:
- VNC_PASSWORD=123456
- HTTP_PASSWORD=123456
- USER=sandbox
- PASSWORD=123456
然后手动给容器分配ip。ovsbr0是前面建的bridge,eth0好像是所有容器的默认网口,bitcomet是容器名称,192.168.0.80/24是我给容器设的ipv4的ip,192.168.0.1是我的网关。至于ipv6,SLACC会通过RA自己获得,只要路由器设置好就行了。
ovs-docker add-port ovsbr0 eth0 bitcomet –ipaddress=192.168.0.80/24 –gateway=192.168.0.1
成品图长这样,TCP和UDP在路由器上端口映射就绿灯了。截图完,我就重新拨号了,不用担心我的ip。这容器也会删除。