LK 博客
配置服务器简单旁路由记录
嵌入式
约 1 分钟阅读 0 赞 1 条评论 鸿蒙黑体

配置服务器简单旁路由记录

Jokerbai
Jokerbai @Jokerbai
累计点赞 0 登录后每个账号只能点一次
内容长度 0 正文词元数
正文
目录会跟随阅读位置移动。
阅读进度

Debian 单网口旁路由配置记录

先说结论(也是成功学到gpt的精髓了)

本次并没有配置成真正的软路由,而是配成了旁路由,原因是这个小工控机他只有一个WAN口,并且只有一个网卡,如果要配成那种常规的软路由,那么网速非常慢,180是有原因的。

1. 当前目标

给debian服务器打造成会路由的服务器

当前网络结构:

主路由 / 上级网关:192.168.1.1
Debian 旁路由:192.168.1.101
实验室 / 局域网设备:192.168.1.x

旁路由工作方式:

普通设备:
    默认网关 = 192.168.1.1

需要走 Debian 旁路由的设备:
    默认网关 = 192.168.1.101

当前 Debian 只有一个有线网口,因此不做真正的 WAN / LAN 隔离。

真正主软路由至少需要两个网口:

上级网络 -> Debian WAN
Debian LAN -> 实验室交换机 / AP / 电脑

本次采用更稳妥的单网口旁路由方式。

2. SSH 连接 Debian

Debian 当前 IP 为:

192.168.1.101

从另一台电脑连接:

ssh 普通用户名@192.168.1.101

不建议长期使用(其实根本连不上):

ssh root@192.168.1.101

更推荐使用普通用户登录,然后通过 sudosu - 获取管理员权限。

3. SSH 网络问题排查

最开始出现:

ssh: connect to host 192.168.1.101 port 22: No route to host

原因是本机开了代理 / VPN / 梯子,导致局域网路由异常。

解决方式:

# 关闭 VPN / 代理后重新测试
ping -c 4 192.168.1.101
ssh 普通用户名@192.168.1.101

如果必须开代理,需要在代理客户端里开启类似选项:

绕过局域网
Bypass LAN
Bypass private IP
Allow LAN
Split tunnel

需要绕过的私有网段通常包括:

192.168.0.0/16
10.0.0.0/8
172.16.0.0/12

4. 查看 Debian 网络状态

在 Debian 上执行:

ip -br a
ip route

实际结果:

lo               UNKNOWN        127.0.0.1/8 ::1/128
enp1s0           UP             192.168.1.101/24 fe80::e4bc:6a84:ce47:7d28/64
wlp2s0           DOWN

路由表:

default via 192.168.1.1 dev enp1s0 proto dhcp src 192.168.1.101 metric 1002
192.168.1.0/24 dev enp1s0 proto dhcp scope link src 192.168.1.101 metric 1002

说明:

enp1s0 = 当前有线网卡
192.168.1.101 = Debian 当前 IP
192.168.1.1 = 主路由 / 上级网关
wlp2s0 = 无线网卡,当前未启用

5. 开启 IPv4 转发

Debian 要作为旁路由转发流量,必须开启 IPv4 forwarding。

执行:

echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-router.conf
sysctl --system

检查:

cat /proc/sys/net/ipv4/ip_forward

如果输出:

1

说明 IPv4 转发已经开启。

6. 安装 nftables

安装防火墙 / NAT 工具:

apt update
apt install nftables -y

设置开机自启:

systemctl enable --now nftables

7. 处理 nano 终端类型错误

SSH 进入 Debian 后,使用 nano 时出现:

Error opening terminal: xterm-ghostty.

原因是本机终端使用 Ghostty,Debian 不认识 xterm-ghostty 这个终端类型。

临时解决:

export TERM=xterm-256color

之后即可正常使用:

nano /etc/nftables.conf

也可以写入 .bashrc,让它永久生效:

echo 'export TERM=xterm-256color' >> ~/.bashrc

8. 配置 nftables NAT

直接覆盖 /etc/nftables.conf

cat > /etc/nftables.conf <<'EOF'
#!/usr/sbin/nft -f

flush ruleset

define IFACE = enp1s0

table inet filter {
    chain input {
        type filter hook input priority 0;
        policy accept;
    }

    chain forward {
        type filter hook forward priority 0;
        policy accept;
    }

    chain output {
        type filter hook output priority 0;
        policy accept;
    }
}

table ip nat {
    chain postrouting {
        type nat hook postrouting priority 100;
        policy accept;

        oifname $IFACE masquerade
    }
}
EOF

检查配置语法:

nft -c -f /etc/nftables.conf

如果没有输出错误,说明语法正确。

重启 nftables:

systemctl restart nftables

查看当前规则:

nft list ruleset

正常应看到类似内容:

table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain forward {
                type filter hook forward priority filter; policy accept;
        }

        chain output {
                type filter hook output priority filter; policy accept;
        }
}

table ip nat {
        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                oifname "enp1s0" masquerade
        }
}

其中关键是:

oifname "enp1s0" masquerade

这表示 Debian 会对从 enp1s0 出去的流量做 NAT 伪装。

9. 当前 Debian 旁路由状态确认

执行:

cat /proc/sys/net/ipv4/ip_forward
nft list ruleset
ip -br a
ip route

理想状态:

ip_forward = 1
enp1s0 = 192.168.1.101/24
default via 192.168.1.1
nftables 中存在 masquerade 规则

10. 客户端手动走 Debian 旁路由

在需要走旁路由的电脑上,手动设置网络:

IP 地址:192.168.1.50
子网掩码:255.255.255.0
默认网关:192.168.1.101
DNS:223.5.5.5
备用 DNS:119.29.29.29

也可以根据实际情况使用其他未占用 IP,例如:

192.168.1.60
192.168.1.70
192.168.1.80

但不要和已有设备冲突。

11. 连通性测试

在客户端电脑上测试:

ping -c 4 192.168.1.101
ping -c 4 192.168.1.1
ping -c 4 223.5.5.5
ping -c 4 baidu.com

含义:

ping 192.168.1.101
    测试客户端到 Debian 是否连通

ping 192.168.1.1
    测试 Debian 是否能转发到主路由

ping 223.5.5.5
    测试是否能访问外网 IP

ping baidu.com
    测试 DNS 是否正常

如果四个都通,说明 Debian 单网口旁路由已经工作。

12. 固定 Debian IP

为了避免 Debian 重启后 IP 变化,需要在主路由后台做 DHCP 静态绑定。

查看 Debian 有线网卡 MAC:

ip link show enp1s0

实际结果:

link/ether 00:30:18:53:fa:18

因此需要在主路由后台绑定:

设备名:Debian-Router
MAC 地址:00:30:18:53:fa:18
固定 IP:192.168.1.101

主路由后台中可能叫:

DHCP 静态分配
地址保留
静态租约
Static DHCP
IP & MAC Binding
LAN DHCP Reservation

绑定完成后,重启 Debian 或重新获取 DHCP:

reboot

重启后检查:

ip -br a
ip route

确认 Debian 仍然是:

192.168.1.101/24

13. 不建议现在开启 DHCP

当前是单网口旁路由,不建议让 Debian 发 DHCP。

原因:

主路由已经在发 DHCP
如果 Debian 也发 DHCP,会出现两个 DHCP 服务器
客户端可能随机拿到不同网关
网络会变得不稳定

当前推荐方式:

主路由继续发 DHCP
Debian 固定为 192.168.1.101
需要走旁路由的设备手动把网关改成 192.168.1.101
不需要走旁路由的设备继续使用 192.168.1.1

14. 回滚方式

如果旁路由出问题,客户端只需要把网关改回主路由:

默认网关:192.168.1.1
DNS:223.5.5.5 / 119.29.29.29

如果要临时关闭 Debian 转发能力:

systemctl stop nftables

如果要关闭 IPv4 转发:

echo "net.ipv4.ip_forward=0" > /etc/sysctl.d/99-router.conf
sysctl --system

15. 可选:安装流量观察工具

安装工具:

apt update
apt install iftop nload tcpdump -y

查看实时网速:

nload enp1s0

查看连接:

iftop -i enp1s0

抓 DNS 请求:

tcpdump -i enp1s0 port 53

抓所有经过网卡的包:

tcpdump -i enp1s0

16. 非常建议:安装 Cockpit Web 管理面板

如果希望通过网页管理 Debian,可以安装 Cockpit。

安装:

apt update
apt install cockpit -y
systemctl enable --now cockpit.socket

访问:

https://192.168.1.101:9090

使用 Debian 普通用户登录。 为什么一定要用Debian进去呢,因为本人亲测,如果用root也是进不去的

如果普通用户没有管理员权限,需要加入 sudo 组:

usermod -aG sudo 用户名

然后重新登录 SSH。

Cockpit 适合查看:

CPU
内存
磁盘
系统服务
日志
网络状态
软件包
终端

它不会把 Debian 改成专用路由系统,适合当前这种“通用 Debian 服务器 + 旁路由能力”的定位。

17. 当前最终方案

当前 Debian 的定位:

一台会路由的 Debian 服务器

当前推荐使用方式:

1. Debian 固定 IP:192.168.1.101
2. 主路由继续作为默认 DHCP 服务器
3. Debian 开启 ip_forward
4. Debian 使用 nftables 做 NAT
5. 需要走旁路由的设备手动设置网关为 192.168.1.101
6. 其他设备继续走主路由 192.168.1.1
7. 暂时不启用 Debian DHCP

优点:

稳定
容易回滚
不会影响整个实验室网络
Debian 后续还能继续作为普通服务器使用

限制:

没有真正 WAN / LAN 隔离
不能完全替代双网口软路由
不适合强行接管整个实验室所有设备

如果以后需要升级成真正主软路由,建议增加第二张有线网卡:

enp1s0 = WAN
USB / PCIe 网卡 = LAN

然后再让 Debian 接管 DHCP、DNS、防火墙、NAT 和实验室内网。

作者名片

Jokerbai
Jokerbai
@Jokerbai

这个作者暂时还没有填写个人简介。

评论区
文章作者和管理员都可以管理这里的评论。
1 条评论
登录后即可参与评论。 去登录
111111
程佳豪 @111111 2026-05-02 14:08
🙌 😭 🙌