banner
miaoer

miaoer

喵二の小博客 https://www.miaoer.net xLog 分站
tg_channel
telegram
bilibili

1Panel 中跑 CatWrt 旁路网关 Docker 版 OpenWrt

1Panel で CatWrt バイパスゲートウェイを実行するために、ここでは Debian に 1Panel をインストールしました。ホストマシンは PVE 仮想の Debian で、今日は CatWrt-rootfs のインストール方法を簡単に紹介します。

昨日、rootfs のファイルを dockerhub にアップロードしましたので、皆さんは今後直接イメージを取得できます。これは非常に便利です。この rootfs バージョンの CatWrt をネットワークドライブや GitHub からダウンロードする必要はありません。具体的には、この rootfs のインストール方法を示します。

私たちの docker-compose を使用して CatWrt を設定することをお勧めします。1Panel がなくても使用可能で、宝塔などのパネルも必要ありません。

image

root@Debian:~# neofetch 
       _,met$$$$$gg.          root@Debian 
    ,g$$$$$$$$$$$$$$$P.       ----------- 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux 12 (bookworm) x86_64 
 ,$$P'              `$$$.     Host: KVM/QEMU (Standard PC (i440FX + PIIX, 1996) pc-i440fx-9.0) 
',$$P       ,ggs.     `$$b:   Kernel: 6.1.0-9-amd64 
`d$$'     ,$P"'   .    $$$    Uptime: 42 mins 
 $$P      d$'     ,    $$P    Packages: 711 (dpkg) 
 $$:      $$.   -    ,d$$'    Shell: bash 5.2.15 
 $$;      Y$b._   _,d$P'      Resolution: 1280x800 
 Y$$.    `.`"Y$$$$P"'         Terminal: /dev/pts/0 
 `$$b      "-.__              CPU: AMD Ryzen 5 1600 (8) @ 3.199GHz 
  `Y$$                        GPU: 00:02.0 Vendor 1234 Device 1111 
   `Y$$.                      Memory: 507MiB / 1482MiB 
     `$$b.
       `Y$$b.                                         
          `"Y$b._                                     
              `"""

ネットワークカードの混雑モード#

まず、Debian 上でネットワークカードの混雑モードを有効にする必要があります。ここでの私のネットワークカードは ens18 です。

root@Debian:~# ip addr
2: ens18: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 92:64:15:a8:91:63 brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 10.0.0.1/24 brd 10.0.0.255 scope global ens18
       valid_lft forever preferred_lft forever
    inet6 fd61:e296:244b:0:9064:15ff:fea8:9163/64 scope global dynamic mngtmpaddr 
       valid_lft forever preferred_lft forever
    inet6 2408:8256:c84:9a4c:XXXX:XXXX::1/64 scope global dynamic mngtmpaddr 
       valid_lft 189872sec preferred_lft 103472sec
    inet6 fe80::9064:15ff:fea8:9163/64 scope link 
       valid_lft forever preferred_lft forever

ens18 ネットワークカードを混雑モードに設定すると、コンテナが直接ローカルネットワークにアクセスできるようになります。

sudo ip link set ens18 promisc on

ネットワークカードの作成#

ここで、subnet=10.0.0.0/24gateway=10.0.0.4のネットワークカードを作成する必要があります。自分のネットワーク環境に応じて設定してください。

  • あなたのネットワークセグメントが 192.168.1.4 の場合、対応するsubnet=192.168.1.0/24サブネットマスクです。

  • gateway=10.0.0.4はあなたのメインルーターのアドレスで、ゲートウェイとして設定します。

docker network create -d macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.4 -o parent=enp0s18 maclan

設定が完了したら、docker network lsを確認して設定が正しいかどうかを確認します。

root@Debian:~# docker network ls
NETWORK ID     NAME                                      DRIVER    SCOPE
d9dd5df71c88   1panel-network                            bridge    local
70a316d0b976   host                                      host      local
779d06aebc6f   maclan                                    macvlan   local

オーケストレーション#

1Panel コンテナ - オーケストレーション - オーケストレーションの作成

フォルダにCatWrtと入力し、以下の内容をエディタに入力してから確認をクリックします。

ここで使用する CatWrt-rootfs は最新の v24.9 バージョンで、tun モジュールの読み込みが有効になっています。

version: '3.8'

services:
  catwrt:
    image: miaoer/catwrt:latest
    container_name: CatWrt
    restart: always
    privileged: true
    volumes:
      - /lib/modules:/lib/modules:ro
      - /dev:/dev
    command: /sbin/init

    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    devices:
      - /dev/net/tun
    networks:
      - maclan

networks:
  maclan:
    external: true

ここで、tun モジュールが自動的に読み込まれているかどうかを確認するのを忘れました。もし tun が読み込まれていない場合は、sudo modprobe tunを実行し、lsmod | grep tunで正常に読み込まれているか確認してください。

root@Debian:~# sudo modprobe tun
root@Debian:~# lsmod | grep tun
tun                    61440  4
root@Debian:~# 

CatWrt の設定#

まず、Debian 上で CatWrt ターミナルに接続します。

docker exec -it CatWrt /bin/bash

CatWrt に入ったら、Cattools を使用して IP アドレスを変更する手助けをしてもらいます。もちろん、ネットワークウィザードを使用して正しく情報を入力することもできます。

cattools

1

注:ここで CatWrt はネットワークに接続されていないため、指定されたゲートウェイがないので、最新バージョンの Cattools を取得するために何度も再試行します。絶対に中断しないでください!

root@Debian:~# docker exec -it CatWrt /bin/bash
bash-5.2# cattools 
Please wait for the script to be updated.
Attempt 1 failed. Retrying...
Attempt 2 failed. Retrying...
Attempt 3 failed. Retrying...
Unable to download the latest version, continue to use the current offline version.


----------------------------------------------------------
                         CatTools                         
           https://github.com/miaoermua/cattools          
----------------------------------------------------------
1. SetIP                                  -  IPを設定
2. Network_Wizard                         -  ネットワークウィザード
3. Apply_repo                             -  ソフトウェアソースの設定
4. Diagnostics                            -  ネットワーク診断
5. Debug                                  -  ログを取得
6. Catwrt_update                          -  更新を確認
7. Sysupgrade                             -  システム更新
8. Restore                                -  パッケージを復元
9. Utilities(more)                        -  ユーティリティ
0. Exit                                   -  終了
----------------------------------------------------------
数字を入力してEnterを押してください(Please enter your choice): 1
IPアドレスを入力してEnterを押してください /// 请输入 IP (默认为 192.168.1.4): 10.0.0.233
デフォルトのIPが10.0.0.233に設定されました。

プラグインをインストールしたい場合は、Cattools 内のソフトウェアソースの設定を使用することもできます。

終了#

CatWrt-rootfs にはまだ多くのプラグインやソフトウェアが特別な設定が必要だったり、使用できなかったりします。私もこの rootfs を扱うのは初めてで、まだ使っていません。何か問題があればコメント欄で交流してください。

参考:ブログ園:双網口主機通過 docker 安裝 openwrt 實現軟路由功能

この記事はMix Spaceによって xLog に同期更新されました。元のリンクはhttps://www.miaoer.net/posts/network/1panel-deploy-catwrt-rootfsです。

Footnotes#

  1. https://www.miaoer.net/posts/blog/cattools

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。