
配置服务器简单旁路由记录
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
更推荐使用普通用户登录,然后通过 sudo 或 su - 获取管理员权限。
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 和实验室内网。