将笔记本网口作为 NAT 网关

将笔记本网口作为 NAT 网关

本文以 Linux 笔记本为例:笔记本通过 Wi-Fi 接入家庭路由器,再通过有线网口为下游设备提供网络。

1. 网络拓扑

Internet
   |
家庭路由器(192.168.0.1)
   |
Wi-Fi:笔记本获得 192.168.0.225
   |
笔记本(NetworkManager)
   |  有线网口:192.168.50.1/24
   |
下游设备:192.168.50.10、192.168.50.11、192.168.50.138 ...

下游设备应把 192.168.50.1 作为默认网关。ipv4.method shared 会让 NetworkManager 自动配置内网地址、DHCP、DNS 转发和 IPv4 NAT。因此通常不需要手动启动独立的 dnsmasq 服务;若系统已有独立 dnsmasq,可能发生端口冲突。

2. 前提条件

  • 已安装并运行 NetworkManager;
  • 笔记本已通过 Wi-Fi 正常上网;
  • 有线网口已连接到下游设备或交换机;
  • 以下命令中的连接名和接口名按实际情况替换。

查看名称:

nmcli device status
nmcli connection show

本文假设有线连接名为 Wired connection 1,接口名为 enp49s0。

3. 配置有线连接为 NAT 内网

sudo nmcli connection modify "Wired connection 1" \
  connection.interface-name enp49s0 \
  ipv4.method shared \
  ipv4.addresses 192.168.50.1/24 \
  ipv4.gateway "" \
  ipv4.dns "" \
  ipv6.method disabled

sudo nmcli connection down "Wired connection 1" 2>/dev/null || true
sudo nmcli connection up "Wired connection 1"

确认地址和路由:

ip -4 addr show dev enp49s0
ip route

有线接口应显示 192.168.50.1/24。不要给这个内网连接设置 ipv4.gateway,默认路由应继续由 Wi-Fi 连接提供。

4. 确认 IPv4 转发

shared 模式通常会由 NetworkManager 处理转发和防火墙规则。可以显式打开 IPv4 转发:

sudo sysctl -w net.ipv4.ip_forward=1
printf '%s\n' 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-ip-forward.conf
sudo sysctl --system

5. 验证下游设备

下游设备应通过 DHCP 获得 192.168.50.x 地址、255.255.255.0 子网掩码、192.168.50.1 默认网关和可用 DNS。

在笔记本上查看邻居表和 DHCP 租约:

ip -4 neigh show dev enp49s0
sudo cat /var/lib/NetworkManager/dnsmasq-enp49s0.leases

在下游设备上依次测试:

ping 192.168.50.1
ping 192.168.0.1
ping 223.5.5.5
ping baidu.com

只能访问 IP、不能解析域名时,通常是 DNS 问题;连 192.168.50.1 都无法访问时,先检查网线、接口状态和下游地址配置。

6. 恢复有线连接为普通 DHCP

sudo nmcli connection modify "Wired connection 1" \
  connection.interface-name "" \
  ipv4.method auto \
  ipv4.addresses "" \
  ipv4.gateway "" \
  ipv4.dns "" \
  ipv6.method auto
sudo nmcli connection down "Wired connection 1" 2>/dev/null || true
sudo nmcli connection up "Wired connection 1"

如果不再需要永久启用 IPv4 转发:

sudo rm -f /etc/sysctl.d/99-ip-forward.conf
sudo sysctl --system

7. 下游设备的路由测试

一般不需要手动删除默认路由。若设备上存在旧路由,先查看:

ip route

确认旧网关无效后,再按实际接口和网关删除,例如:

sudo ip route del default via 192.168.0.8 dev wlP1p1s0

按照实际网络连接名称可恢复
或重启

sudo nmcli connection down "Wired connection 1" 2>/dev/null || true
sudo nmcli connection up "Wired connection 1"

上面的接口名和网关只是示例,必须替换为设备的实际值。随后重新连接网络,或让设备通过 DHCP 重新获取地址、网关和 DNS。

posted @ 2026-10-08 12:06  icebooy  阅读(6)  评论(0)    收藏  举报