记录一下搭建过程
一、安装debian11
1、下载debian11安装光盘iso
建议下载DVD版本,netinst版本安装时比较慢
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.3.0-amd64-DVD-1.iso
2、将ISO镜像写下到U盘或移动硬盘
使用Win32_Disk_Imager工具
加载下载的debian-11.3.0-amd64-DVD-1.iso
并制作启动盘
3、安装debian11
U盘启动后进入安装画面
- 选择install
- 语言选择english
- 区域选择other,选择Asia,选择China
- 语言集选择 United States - en_US.UTF-8
- 键盘选择American English
====等待文件复制过程完毕
-
输入主机名,比如mynas
-
输入域名(可不输入,保持为空)
-
输入root账户密码
-
再次输入root账户密码
-
建立初始用户:输入初始建立的用户名称
-
建立初始用户:输入初始建立的用户账号
-
建立初始用户:输入密码
-
建立初始用户:再次输入密码
-
磁盘分区:小白用户直接选择 Guided - use entire disk
-
磁盘分区:选择需要分区的磁盘,如果只有一个磁盘直接回车,多个磁盘注意选择
-
磁盘分区:选择分区方案,小白用户直接选择使用一个分区,All files in one partition
-
磁盘分区:确认分区信息,无误则选择Finish partitioning and write changes to disk
-
分区信息是否写入磁盘:确认选择 yes
====等待基础系统安装
-
配置包管理:扫描其他媒体,选择 no
-
配置包管理:使用网络源,选择 yes
-
配置包管理:选择china
-
配置包管理:选择源站点,个人习惯选择中国科大 mirrors.ustc.edu.cn
-
配置包管理:输入HTTP代理服务器信息,保持默认为空即可
====等待配置apt
-
配置configuring popularity-contest:选择no
-
选择安装的软件:只选择SSH server及standard system utilities(星号表示已选择)
====等待安装软件
-
安装引导程序:选择yes
-
安装引导程序: 选择 /dev/sda
====等待安装完成
-
安装完成,选择Continue
-
拨出U盘,等待系统重记完成
4、启用ssh
使用root账户登录debian
输入以下命令启用ssh
nano /etc/ssh/sshd_config
输入
PermitRootLogin yes
按Ctrl+x存盘退出
重启SSH服务
service ssh restart
去掉安装时的光盘源
nano /etc/apt/sources.list
注释掉deb cdrom行
apt-get update
apt-get install iptables
iptables -L -n
查看端口开放情况
二、安装omv6
执行
cat <<EOF >> /etc/apt/sources.list.d/openmediavault.list
deb http://packages.openmediavault.org/public shaitan main
# deb http://downloads.sourceforge.net/project/openmediavault/packages shaitan main
## Uncomment the following line to add software from the proposed repository.
# deb http://packages.openmediavault.org/public shaitan-proposed main
# deb http://downloads.sourceforge.net/project/openmediavault/packages shaitan-proposed main
## This software is not part of OpenMediaVault, but is offered by third-party
## developers as a service to OpenMediaVault users.
# deb http://packages.openmediavault.org/public shaitan partner
# deb http://downloads.sourceforge.net/project/openmediavault/packages shaitan partner
EOF
export LANG=C.UTF-8
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
apt-get install --yes gnupg
wget -O "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc" https://packages.openmediavault.org/public/archive.key
apt-key add "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc"
apt-get update
apt-get --yes --auto-remove --show-upgraded \
--allow-downgrades --allow-change-held-packages \
--no-install-recommends \
--option DPkg::Options::="--force-confdef" \
--option DPkg::Options::="--force-confold" \
install openmediavault-keyring openmediavault
# Populate the database.
omv-confdbadm populate
# Display the login information.
cat /etc/issue
三、安装docker
执行
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
四、安装openwrt-旁路模式
1、开启网卡混杂模式
2、建立容器
3、改配置参数
sudo ip link set ens33 promisc on
ip route show
docker network create -d macvlan --subnet=192.168.83.0/24 --gateway=192.168.83.2 -o parent=ens33 macnet
docker network ls
docker run -d --restart always --name openwrt --privileged --network macnet --ip=192.168.83.10 sulinggg/openwrt:x86_64 /sbin/init
docker exec -it openwrt bash
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 '192.168.83.10'
option gateway '192.168.83.2'
option dns '192.168.83.2 114.114.114.114 8.8.4.4'
#只做旁路由
#删除wan配置
#删除vpn0配置
#存盘退出
/etc/init.d/network restart
#重置openwrt密码
passwd
浏览器进入openwrt
http://192.168.83.10
进入 【网络】->【接口】->LAN(br-lan)->修改
【物理设置】
去掉【桥接接口】的勾选
DHCP基本设置
勾选【忽略此接口】
点击【保存&应用】
五、安装openwrt-主路由模式
参考https://www.zhihu.com/question/50679880
1、宿主机设置网卡混杂模式
ip link set eno1 promisc on
ip link set enp4s0 promisc on
修改网卡配置
nano /etc/network/interfaces
allow-hotplug enp4s0
#iface enp4s0 inet dhcp
iface enp4s0 inet static
address 172.16.10.250
netmask 255.255.255.0
gateway 172.16.10.1
dns-nameservers 172.16.10.1
allow-hotplug eno1
iface eno1 inet dhcp
2、宿主机加载pppoe模块
echo pppoe >> /etc/modules
modprobe pppoe
3、配置docker
# 为 docker 创建 macvlan 虚拟接口,并链接到 host 网卡
# LAN 口 enp4s0
docker network create -d macvlan \
--subnet=172.16.10.0/24 --gateway=172.16.10.1 \
--ipv6 --subnet=fe80::/16 --gateway=fe80::1 \
-o parent=enp4s0 \
-o macvlan_mode=bridge \
macvLan
# WAN 口 eno1
docker network create -d macvlan \
--subnet=192.168.254.0/24 --gateway=192.168.254.1 \
--ipv6 --subnet=fe81::/16 --gateway=fe81::1 \
-o parent=eno1 \
-o macvlan_mode=bridge \
macvWan
#创建容器
docker run -d \
--restart always \
--network macvLan \
--privileged \
--name openwrt \
sulinggg/openwrt:x86_64 \
/sbin/init
#将第二网卡的 macvlan 挂接到 openwrt
docker network connect macvWan openwrt
4、配置openwrt
#进入容器
docker exec -it openwrt /bin/sh
#编辑
nano /etc/config/network
config interface 'lan'
option type 'bridge'
option ifname 'eth0' # 需要与 docker netwrok 中的虚拟接口匹配(macvLan)
option proto 'static'
option ipaddr '172.16.10.1'
option netmask '255.255.255.0'
option ip6assign '60'
config interface 'wan'
option ifname 'eth1' # 需要与 docker netwrok 中的虚拟接口匹配(macvWan)
option proto 'dhcp'
option ip6assign '60'
#重启 openwrt 网络
/etc/init.d/network restart
#改密码
passwd
5.宿主机出口
由于 docker
网络采用 macvlan
的 bridge
模式,即使宿主机与容器在同一网段,相互之间也是无法通信的。 为了解决这个问题,需利用多个 macvlan
接口之间是互通的原理,在 LAN
口新建一个 macvlan
虚拟接口:
# 使用 ip 命令
ip link add link enp4s0 mac40 type macvlan mode bridge # 在 enp4s0 接口下添加一个 macvlan 虚拟接口
ip addr add 172.16.10.253/24 brd + dev mac40 # 为 mac40 分配 ip 地址
ip link set mac40 up
ip route del default #删除默认路由
ip route add default via 172.16.10.250 dev mac40 # 设置静态路由
echo "nameserver 172.16.10.1" > /etc/resolv.conf # 设置静态 dns 服务器
# 或者使用 nmcli
nmcli connection add type macvlan dev enp4s0 mode bridge ifname mac40 autoconnect yes save yes
或者,若是在 debian 中可以编辑 /etc/network/interface
并加入:
auto mac40
iface mac40 inet manual
pre-up ip link add link enp4s0 mac40 type macvlan mode bridge
pre-up ip addr add 172.16.10.249/24 brd + dev mac40
up ip link set mac40 up
post-up ip route del default
post-up ip route del 172.16.10.0/24 dev enp4s0
post-up ip route add default via 172.16.10.1 dev mac40
post-down ip link del dev mac40
六、安装防火墙
执行
apt-get install ufw
ufw default deny incoming
ufw allow 22/tcp
ufw allow 80/tcp
ufw enable