hello world ! and say something say anything~
最近弄了个自动签到.但是有几个网站需要扶梯.
就需要让容器走单独的线路.
打开网卡的混杂模式
ip link set eth0 promisc on
# 这里eth0是网卡名称,你必须改成你机器的实际网卡名称
ifconfig # 命令可以查询当前网卡名称.
这里开混杂模式是因为eth0网卡必须接收不同ip的数据包
而且这个网卡下的IP可以固定IP.
创建macvlan网络
docker network create -d macvlan --subnet=10.10.10.0/24 --gateway=10.10.10.251 --ip-range 10.10.10.230/28 -o parent=ovs_eth0 clash
- -d 指定网络类型为macvlan
- –subnet 指定该网络的cidr,它必须和路由/主机同处于一个网段
- –gateway 指定网关,指定openwrt地址即可
- -o parent 指定要从哪个网卡创建macvlan
- macvlan0 区分网络名称,这个后面创建容器的时候使用
- –ip-range 通过限定IP范围绕开IP冲突.
创建容器
docker run --restart always --name qiandao-clash -p 8923:80 -d --network clash --ip 10.10.10.231 --privileged qdtoday/qd
- name 容器名字
- p 外部端口:容器端口
- network 指定之前的网络
- IP 可以固定IP.
配置容器网络
编辑/etc/config/network文件
# nano /etc/config/network ... config interface 'lan' option type 'bridge' option ifname 'eth0' option proto 'static' option netmask '255.255.255.0' option ip6assign '60' option ipaddr '10.10.10.254' option gateway '10.10.10.251' option dns '10.10.10.251' ...
编辑完成后,保存并重启network服务
/etc/init.d/network restart
最后还必须将br-lan网口设置成混杂模式(这一步还是在容器中执行)ip link set br-lan promisc on
如果不行就export ALL_PROXY='socks5://10.10.10.251:7891'
最后我发现macvlan网卡不互通.所以容器都应该在一个网卡下才能顺利访问.