5

【笔记】iKuai通过Docker安装OpenWRT旁路由

 11 months ago
source link: https://blog.loli.fj.cn/2023/05/07/iKuai%E9%80%9A%E8%BF%87Docker%E5%AE%89%E8%A3%85OpenWRT%E6%97%81%E8%B7%AF%E7%94%B1/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【笔记】iKuai通过Docker安装OpenWRT旁路由

2023-05-07

iKuai通过Docker安装OpenWRT旁路由

  • iKuai可以使用Docker的特权模式

传送门

  • 通过Web控制台进入Ubuntu容器,安装vim编辑器

通过vim编辑文件

apt update && apt install -y vim
  • 通过Web控制台进入Ubuntu容器,安装ssh,并允许远程访问

如果不通过ssh而是直接通过Web控制台进入终端,当使用vim编辑器时会无法跳转,所以必须通过ssh进入Ubuntu容器

apt update && apt install -y openssh-server
# 备份ssh配置
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.default
# 创建ssh陪你
echo "Include /etc/ssh/sshd_config.d/*.conf" > /etc/ssh/sshd_config
echo "Port 22" >> /etc/ssh/sshd_config
echo "ListenAddress 0.0.0.0" >> /etc/ssh/sshd_config
echo "ListenAddress ::" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo "ChallengeResponseAuthentication no" >> /etc/ssh/sshd_config
echo "UsePAM yes" >> /etc/ssh/sshd_config
echo "X11Forwarding yes" >> /etc/ssh/sshd_config
echo "PrintMotd no" >> /etc/ssh/sshd_config
echo "AcceptEnv LANG LC_*" >> /etc/ssh/sshd_config
echo "Subsystem sftp /usr/lib/openssh/sftp-server" >> /etc/ssh/sshd_config

开启网卡的混杂模式(混淆模式)

  • Docker容器正常情况下不能和宿主机在相同的网段,但是如果配置双路由最好是在同一网段,所以必须通过开启网卡的混杂模式(混淆模式)来创建macvlan
ip link set lan1 promisc on
  • 由于不能通过ssh直接进入iKuai的shell,所以需要使用小技巧绕过

  • 通过ssh访问Ubuntu容器,进入挂载的iKuai系统内部目录,修改iKuai预装脚本文件

iKuai系统内部的/usr/ikuai/script/目录下存放了所有iKuai的预装脚本,可以选择一个无害的脚本就行修改,通过Web管理平台间接执行脚本,经测试,iKuai的Web管理平台在执行脚本时,使用的是root用户
我这里选择备份脚本进行修改,在Web页面点击备份按钮就能执行脚本中的shell代码

/media/:挂载的iKuai系统根目录

vim /media/usr/ikuai/script/backup.sh
  • backup.sh文件的119行处新加一条命令,开启lan1的混杂模式
#导出当前配置
create_tmpfile()
{
ip link set lan1 promisc on # 开启lan1网卡的混杂模式
local KEY=""
if [ ! -f "$IK_DIR_CONF" ];then
cd /etc/mnt/
local filename="$BACKUP_TMPFILE_NAME"
rm -f $IK_DIR_EXPORT/$filename
if tar -zcf $IK_DIR_EXPORT/$filename.tmp ikuai >/dev/null 2>&1 ;then
openssl aes-128-cbc -in $IK_DIR_EXPORT/$filename.tmp -out $IK_DIR_EXPORT/$filename.tmp.ssl -k $KEY >/dev/null 2>&1
mv $IK_DIR_EXPORT/$filename.tmp.ssl $IK_DIR_EXPORT/$filename
rm -f $IK_DIR_EXPORT/$filename.tmp
return 0
else
Autoiecho backup write_disk_fail
return 1
fi
else
Autoiecho backup already_is_default
return 1
fi
}
  • 在Web管理页面,调用能执行自定义命令

我这里选择到处当前配置功能来执行命令,实现开启网卡混杂模式

01.png

通过混杂模式创建macvlan

--subnet=:设置和宿主机相同的网段
--gateway=:设置和宿主机相同的网段的网关
parent:设置已经设置为混杂模式的网卡
doc_macvlan:docker网络名称

docker network create -d macvlan --subnet=192.168.200.0/24 --gateway=192.168.200.1 -o parent=lan1 doc_macvlan

通过Docker运行OpenWRT容器

docker run --restart always --name openwrt -d --network doc_macvlan --privileged sulinggg/openwrt:x86_64 /sbin/init

设置OpenWRT的网络

  • 通过Web控制台修改网卡配置

02.png
  • 修改静态IP地址和网关
vim /etc/config/network

03.png
/etc/init.d/network restart

设置OpenWRT网络接口作为旁路由

  • 访问OpenWRT的Web管理页面

用户名:root
密码:password

04.png
  • 设置OpenWRT的IP地址和网关的IP地址,网关的IP地址指向iKuai,勾选忽略此接口来禁用OpenWRT的DHCP服务

05.png

哔哩哔哩——小黑智能


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK