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 端(网络共享与路由初始化)
- 启动共享:打开
ncpa.cpl(网络连接),右键点击上网的网卡(WLAN) -> 属性 -> 共享 -> 勾选“允许其他网络用户…”,下方选择连接小主机:以太网 - 万能重启大法:如果小主机改过配置或断线,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.100Clash 要点击 允许局域网连接 (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: [见密码本]登录成功后,按照以下步骤为你的子域名配置转发并申请证书:
- 添加代理主机 (Proxy Host)
点击顶部菜单的 Hosts ➡️ Proxy Hosts ➡️ 点击右上角的 Add Proxy Host
- 配置「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(必须勾选,支持现代应用的实时双向长连接)
- 配置「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_id和dns_tencent_secret_key(或对应的id和token字段),将等号后面的默认值替换为你在腾讯云申请的真实 ID 和 Token
- 在
测试
如果设置的 https 服务是 8080 端口,在 8080 端口起个服务,直接用手机输入域名测试下就行
组网
组网是为了不在家时访问主机,或是玩 P2P 联机游戏
[[#外部访问]] 是直接的方法,但是由于运营商的限制,或出于安全的考虑,还是不太实用
通过 Tailscale
见 [[Tailscale]]
通过 EazyTier
见 [[EasyTier]]
