Home
avatar

dxk

N100 系统安装记录

这是 N100 小主机安装 Debian13 系统以及简单使用的记录。

其中 主机 表示 N100 小主机,Mac 表示自己的 MacOS 设备,Windows 表示自己的 Windows 设备。

装系统

前提:准备一个 U 盘,一根网线,一根视频连接线(HDMI 线)

下载系统

Debian官网 下载镜像,选择类型 小容量U盘,版本 amd64

创建 USB 启动盘

Rufus官网 下载工具,选择类型 标准,平台 Windows x64

打开 Rufus,会执行运行

选择设备 [你的U盘],选择镜像 [刚下载的那个],分区类型 GPT。其他不变,点击开始

提示 选择用于写入镜像的模式,选择默认的 ISO镜像 模式即可

开装

主机插电源、键盘和 U 盘

主机必须连接网线,因为安装系统需要网络。 你可以直接插到路由器上,或者插到 Windows 电脑上间接连接网络

连接显示器

安装系统必须要连接显示器

如果是直接插到显示器上就不用看下面。

我这里是用 Windows 笔记本作为显示器

Windows 下载 OBS Studio。然后通过视频采集器,将主机的输出采集到 Windows 界面上

使用 Windows 连接网络

如果是网线直连路由器就完全不需要看这个。我这里是网线插到 Windows 上。

第一步:Windows 端(网络共享与路由初始化)

  1. 启动共享:打开 ncpa.cpl(网络连接),右键点击上网的网卡(WLAN) -> 属性 -> 共享 -> 勾选“允许其他网络用户…”,下方选择连接小主机:以太网
  2. 万能重启大法:如果小主机改过配置或断线,Windows 的共享路由会失效。必须在 WLAN 属性里取消勾选共享 -> 确定 -> 重新勾选共享 -> 确定,强行刷新 Windows 底层的 NAT 转发

第二步:Debian 端(固定静态 IP 与网关)由于新版 Debian 默认没有 dhclient 且没有 nmcli(由传统 networking 服务接管),直接修改网络配置文件最稳妥。编辑网络文件:bashsudo nano /etc/network/interfaces

修改有线网卡配置(ip addr 找到你的网卡名,如 enp3s0),改成以下内容:

textallow-hotplug enp3s0
iface enp3s0 inet static
    address 192.168.137.219
    netmask 255.255.255.0
    gateway 192.168.137.1

注:192.168.137.1 是 Windows 开启共享后的默认固定 IP,小主机的 IP 只要是 137.2 ~ 137.254 之间即可

验证方法,在主机里:

ping 192.168.137.1
ping 8.8.8.8

设置 WIFI

安装 network-manager。同时为了方便可以固定下主机 IP

apt install network-manager

systemctl enable NetworkManager --now

nmcli device wifi connect "NewWiFi" password "无线密码"
# 将该无线网络改为静态 IP 
nmcli connection modify "NewWiFi" ipv4.addresses 192.168.0.115/24 ipv4.gateway 192.168.0.1 ipv4.dns "223.5.5.5,114.114.114.114" ipv4.method manual

nmcli connection up "NewWiFi"
nmcli connection show

ping baidu.com

先测试连接下 WIFI 那个 IP,没问题就可以拔网线了

WIFI 电源管理

NetworkManager 默认开启的 Wi-Fi 电源管理(Power Management)

如果局域网 ping 主机的延迟有 50ms 甚至 100+ms,而你又很在意延迟的话,就可以把这个省电模式关了

sudo vi /etc/NetworkManager/conf.d/wifi-powersave-off.conf

[connection]
wifi.powersave = 2

sudo systemctl restart NetworkManager

支持 ssh 连接

使用 openssh-server

apt install -y openssh-server

systemctl enable openssh-server --now

vim /etc/ssh/sshd_config

多播

mDNS (Multicast Domain Name System),就是设备可以自己喊话,说我的域名是 my-name.local

需要安装 avahi-daemon。它是 Linux 系统中的一个后台服务进程,主要用于局域网内设备的“免配置”自动发现和连接

apt install avahi-daemon -y

安装完后就已经自动启动了

在同局域网下,可以直接

# hostname.local
ping n100.local

ssh spencer@n100.local

利用热点保持可访问

因为 WIFI 可能会换,所以我们提前配好手机热点的连接。之后如果没有 WIFI,可以用电脑和主机都连手机 WIFI,来临时登录主机

nmcli dev wifi rescan
nmcli dev wifi list

nmcli dev wifi connect "s-hotspot" password "z12345678"


# 查看当前 wifi
nmcli connection show --active
# 显示优先级
nmcli -f NAME,TYPE,AUTOCONNECT-PRIORITY,DEVICE connection show
# 设置优先级
nmcli connection modify "s-hotspot" connection.autoconnect-priority -10

这样一来,如果没有 WiFi,只需要用主机和电脑都连上热点,就可以 ssh 了

配置代理

先直接使用局域网的代理就行。之后可以给主机自己配置

Mac 查询自己的 IP:

ipconfig getifaddr en0
# 192.168.0.100

Clash 要点击 允许局域网连接 (Allow LAN),然后复制终端代理命令确定端口

然后编辑主机的 .bashrc

# === PROXY CONFIGURATION (Modify here if needed) ===
PROXY_IP="192.168.0.100"
PROXY_PORT="52731"

# === PROXY SWITCHES ===
# Turn on proxy
alias proxyon='export http_proxy="http://${PROXY_IP}:${PROXY_PORT}" https_proxy="http://${PROXY_IP}:${PROXY_PORT}" ALL_PROXY="socks5://${PROXY_IP}:${PROXY_PORT}"'

# Turn off proxy
alias proxyoff='unset http_proxy https_proxy ALL_PROXY && echo "🛑 Proxy DISABLED"'

proxyon

# === DOCKER SWITCHES ===
# Turn ON Docker proxy & sync variables
dockeron() {
    sudo mkdir -p /etc/systemd/system/docker.service.d
    sudo bash -c "cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment=\"HTTP_PROXY=http://${PROXY_IP}:${PROXY_PORT}\"
Environment=\"HTTPS_PROXY=http://${PROXY_IP}:${PROXY_PORT}\"
Environment=\"NO_PROXY=localhost,127.0.0.1\"
EOF"
    sudo systemctl daemon-reload && sudo systemctl restart docker
    echo "🐳 Docker Proxy ENABLED and RESTARTED!"
}

# Turn OFF Docker proxy cleanly
alias dockeroff='sudo rm -f /etc/systemd/system/docker.service.d/http-proxy.conf && sudo systemctl daemon-reload && sudo systemctl restart docker && echo "❌ Docker Proxy DISABLED and RESTARTED!"'

后续可以给主机自己 [[配置代理]],修改下 PROXY_IP 即可

创建用户

为了系统安全,我们不要直接用 root 身份,而是创建一个新的用户

普通用户是没法使用 sudo 的,用户必须是一个 sudoer

# 进入 root 身份
su -
# 如果没有安装的话
# apt install sudo

# 添加到 sudo 组
adduser spencer sudo

# 退出 root 身份
exit

# 刷新权限
newgrp sudo

安装 docker

可以去官网

或者查看快速安装 Docker Install,需要网络代理

安装完成后

sudo systemctl start docker

# 验证
sudo systemctl run hello-world

国内没法直连官方仓库。配置 Docker 仓库

可选,推荐直接使用代理

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io"
  ]
}
EOF

配置 Docker 组

如果不配置的话,普通用户使用 docker 需要一直加 sudo

# 创建组
sudo groupadd docker
# groupadd: group 'docker' already exists

# 添加用户
sudo usermod -aG docker $USER

# 退出重新登录就好了
exit

外部访问

需要主机所在的网络环境,具有外部可访问的 IP。如果是家里的话,必须关闭路由器的 IPv6 防火墙

同时,如果宽带运营商屏蔽了外部访问,就需要去跟运营商沟通

出于安全考虑,建议直接使用 [[#组网]]。如果打开了外部访问,需要关闭系统端口

配置 DDNS-GO

DDNS-GO (Dynamic DNS),动态域名解析。因为主机的 IP 地址一直变化,所以可以用它来跟你在某个平台购买的域名绑定起来,就可以直接通过域名访问了

# 创建目录
mkdir -p ~/ddns-go

# 直接通过docker运行
docker run -d \
  --name ddns-go \
  --restart unless-stopped \
  --net=host \
  -v /home/spencer/ddns-go:/root \
  jeessy/ddns-go

然后就可以在 Mac 打开 http://n100.local:9876/

直接输入账号密码,会自动新建:

u: ddns-go
p: [见密码本]

申请 HTTPS 证书

通过 nginx-proxy-manager

# 1. 创建属于普通用户的数据文件夹
mkdir -p ~/npm/data ~/npm/letsencrypt

# 2. 启动 NPM 容器
docker run -d \
  --name nginx-proxy-manager \
  --restart unless-stopped \
  --net=host \
  -v ~/npm/data:/data \
  -v ~/npm/letsencrypt:/etc/letsencrypt \
  jc21/nginx-proxy-manager:latest

使用 Mac 访问 http://192.168.0.100:81

设置用户密码

u: bymdxj@126.com
p: [见密码本]

登录成功后,按照以下步骤为你的子域名配置转发并申请证书:

  1. 添加代理主机 (Proxy Host)

点击顶部菜单的 Hosts ➡️ Proxy Hosts ➡️ 点击右上角的 Add Proxy Host

  1. 配置「Details」标签页(流量路由)
  • Domain Names: 输入你在腾讯云解析好的完整子域名(例如:://domain.com),输入后按回车键确认
  • Scheme: 保持默认的 http
  • Forward Host / IP: 输入 127.0.0.1(由于容器使用 host 网络模式,此处 127.0.0.1 直接代表 Debian 宿主机本身)
  • Forward Port: 输入该域名对应的后端应用在宿主机上监听的真实端口(例如 DDNS-GO 的 9876,或测试服务的 8080
  • 功能勾选开关:
    • [ ] Cache Assets(保持不勾选,避免管理后台页面缓存不刷新)
    • [x] Block Common Exploits必须勾选,开启 Web 基础安全拦截过滤)
    • [x] Websockets Support必须勾选,支持现代应用的实时双向长连接)
  1. 配置「SSL」标签页(证书申请)

不要点击保存,直接切换到顶部的 SSL 选项卡:

  • SSL Certificate: 在下拉菜单中选择 Request a new SSL Certificate
  • 功能勾选开关
    • [x] Force SSL必须勾选,强制将所有 HTTP 流量重定向至加密的 HTTPS)
    • [x] HTTP/2 Support(保持默认勾选,优化传输性能)
    • [x] HSTS Enabled建议勾选,通知浏览器仅通过加密通道连接)(其实不用选)
    • [ ] HSTS Sub-domains(保持不勾选)
    • [x] Use DNS Challenge关键步骤:国内家用宽带 80 端口被封锁,必须开启此项以通过修改 DNS 记录来验证域名所有权)
  • DNS Provider 配置
    • DNS Provider 下拉列表中选择 Tencent Cloud(或 Dnspod)
    • 在下方的文本框中,找到代码块里的 dns_tencent_secret_iddns_tencent_secret_key(或对应的 idtoken 字段),将等号后面的默认值替换为你在腾讯云申请的真实 IDToken

测试

如果设置的 https 服务是 8080 端口,在 8080 端口起个服务,直接用手机输入域名测试下就行

组网

组网是为了不在家时访问主机,或是玩 P2P 联机游戏

[[#外部访问]] 是直接的方法,但是由于运营商的限制,或出于安全的考虑,还是不太实用

通过 Tailscale

见 [[Tailscale]]

通过 EazyTier

见 [[EasyTier]]

n100 linux