Featured image of post 我的家庭网络设计思路,开启debian的旁路由之路(二)

我的家庭网络设计思路,开启debian的旁路由之路(二)

本篇主要讲解安装Debian的一些注意事项,初始的网络配置,以及一些必要软件的安装。

安装

安装Debian的详细过程我就不提了,网上的教程很多,我只提一部分内容。如果对其他安装内容真有需要,可以在本文下方评论区提出。

主机名和域名

在配置主机名和域名时,可以考虑设置为你的DDNS域名的三级域名下,详见下面两图,后续就可以使用gate.evine.com来访问旁路由。

Debian主机名

Debian域名

安装哪些内容

仅安装核心系统和SSH服务端,不要安装其他东西,连“标准系统工具”都不需要选择。

仅安装核心系统和SSH服务端

首次安装后

首次安装完成后进入系统,系统进程只有这些(请手动安装htopapt install htop),非常清爽。下图是虚拟机安装的,并且创建时启用了qemu-guest-agent,所以额外有个qemu-ga进程,物理机安装甚至连这个进程都没有。在我们还没有配置其他服务时,内存也只占用了120M左右,也并没有比OpenWRT多多少。

Debian刚刚安装完成后的进程

配置

SSHD

如果你想以root用户进行ssh登陆,可以将/etc/ssh/sshd_config中的#PermitRootLogin prohibit-password修改为PermitRootLogin yes,如果要修改ssh端口,可以将#Port 22修改为Port 2222(2222端口仅为示例)。最后重启一下sshd服务systemctl restart sshd.service

你也可以关闭密码登陆仅允许私钥登陆,将#PasswordAuthentication yes修改为PasswordAuthentication no即可,不过在关闭前请先以700权限创建好$HOME/.ssh文件夹,以600权限上传公钥$HOME/.ssh/authorized_keys,并在其他地方保存好私钥。

配置网络

输入 nano /etc/network/interfaces,编辑为以下内容,编辑好后以 Ctrl+X 退出。说明:

  • 其中的 ens18 是我的网卡名,可以输入 ip a 这个命令查看到。

  • IPv4地址进行静态配置 inet static,设置自身的IP和掩码为 10.0.0.2/24,网关为 10.0.0.1,后续我还将以adguardhome和mosdns在旁路由中自建DNS服务,所以设置默认DNS服务器为 127.0.0.1不过下面的示例是最终的状态,我们在配置旁路由过程中,需要科学上网环境,所以在完全配置好旁路由以前,网关 gateway 和默认DNS服务器 dns-nameservers 建议先暂时设置为局域网中另一台可以实现科学上网的OpenWRT,在完全配置好后再改成下面这样。

  • IPv6地址采用DHCPv6形式,配置为 inet6 dhcp,这仅仅表示旁路由自身可以从主路由爱快处获取IPv6地址,并不代表它将作为IPv6网关。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# allow-hotplug ens18
auto ens18
iface ens18 inet static
        address 10.0.0.2/24
        network 10.0.0.0
        broadcast 10.0.0.255
        gateway 10.0.0.1
        dns-nameservers 127.0.0.1

iface ens18 inet6 dhcp

保存好该文件后,输入以下命令重启网络服务:

1
systemctl restart networking.service

然后你就会发现系统启动了DHCPv6客户端以获取IPv6地址。不过虽然配置了静态IPv4地址,但需要在重启系统以后,dhclient -4这个用来获取DHCPv4地址的进程才会消失。

系统启动了DHCPv6客户端

查看IP:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
ip a

## 输出可见ip已经是所设置的了
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 0e:■■:■■:■■:■■:■■ brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 10.0.0.2/24 brd 10.0.0.255 scope global ens18
       valid_lft forever preferred_lft forever
    inet6 240e:■■■:■■■■:■■■■::dfc/128 scope global dynamic 
       valid_lft 5242sec preferred_lft 5242sec
    inet6 240e:■■■:■■■■:■■■■:■■■:■■■■:■■■■:ff2f/64 scope global dynamic mngtmpaddr 
       valid_lft 215432sec preferred_lft 129032sec
    inet6 fe80::■■■:■■■■:■■■■:ff2f/64 scope link 
       valid_lft forever preferred_lft forever

配置网关功能

由于我仅将旁路由作为IPv4的网关,IPv6网关仍然为主路由爱快,所以只需要配置IPv4的转发。

1
2
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

安装一些后续必要的软件

后续我们会用到一些软件包,在这里可以先安装好。如果你暂时不想增加系统体积,也可以根据下方的注释选择性的安装,或者在后续配置旁路由的过程中根据需要再进行安装。

你可以先将源更改为国内源后再安装下面的包。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
apt update

## 后续会用到的
apt install -y --no-install-recommends \
    arp-scan                              `# arp扫描用的,后续监测外来陌生设备会用到` \
    bind9-dnsutils                        `# dns工具` \
    binutils                              `# 二进制文件处理工具,在本系统最后的脚本汇总中会用到` \
    bzip2                                 `# 解压bz2`  \
    curl                                  `# 下载工具` \
    git                                   `# 从github下载东西` \
    htop                                  `# 监测进程` \
    jq                                    `# 后续在各种脚本中、命令中解析json会用到` \
    lsof                                  `# 后续监测打开的TCP/UDP端口会用到` \
    nginx                                 `# 后续配置文件服务器会用到` \
    libnginx-mod-http-headers-more-filter `# nginx的一个模块,后续如果用不到可以不安装` \
    openssh-server                        `# 安装Debian时应该已经安装好了` \
    snmpd                                 `# 解决爱快查到不到以旁路由为网关的设备信息的问题` \
    sudo                                  `# 如果不是root用户登陆的话,需要这个` \
    unzip                                 `# 解压zip` \
    wget                                  `# 下载工具` \
    xz-utils                              `# 解压xz` \
    yt-dlp                                `# youtube下载工具,unblockneteasemusic的依赖项`

## 一些好用的工具,按需安装
apt install -y --no-install-recommends \
    duf                                   `# 美观的磁盘使用情况查看工具` \
    etherwake                             `# 网络唤醒用的` \
    ethtool                               `# 网卡工具` \
    fzf                                   `# 配合zsh插件fzf和zsh-interactive-cd` \
    iftop                                 `# 监测网络流量` \
    iperf3                                `# 测速工具` \
    lsd                                   `# 比ls美观`  \
    gdu                                   `# 美观的查看文件夹体积大小的工具` \
    qemu-guest-agent                      `# qemu宿主机管理虚拟机的工具` \
    rsync                                 `# 同步工具` \
    socat                                 `# 自动签发ssl证书的工具acme.sh的依赖` \
    tmux                                  `# 虚拟屏幕,运行长任务的好帮手` \
    zoxide                                `# 配合zsh的插件zoxide` \
    zsh                                   `# 一个好用的shell`

总结

截止目前,我们安装好了Debian,并配置了它的基础网络服务,开启了IPv4流量转发,这个时候,它已经可以做一个旁路由了。不过,如果仅仅是这样,我们要这旁路由有何用!!!所以,我将在接下来的 软路由系列文章 继续设置adguardhome、mosdns、clash、nftables、subconverter、unblockneteasemusic、snmpd、cron、nginx等等,让它成为一台合格的旁路由。

系列

Built with Hugo
主题 StackJimmy 设计