Ubuntu需充当NAT网关,将Wi-Fi等互联网连接通过另一网口共享给其他设备,而非使用Windows式的“网络共享中心”;配置时须确保源接口活跃、目标接口无冲突IP、UFW放行转发、netplan缩进正确、iptables规则匹配真实接口名且顺序合理,并验证流量走向。

Ubuntu 没有叫“网络共享中心”的独立应用或服务——这个词是 Windows 的概念,直接套用会导致配置路径错误。你要做的其实是:让 Ubuntu 充当一个 NAT 网关,把已有的互联网连接(Wi-Fi 或有线)通过另一个网口(通常是 eth0 或 enp0s25)共享出去。
NetworkManager 图形界面共享为何有时不生效
桌面版 Ubuntu 默认用 NetworkManager,点“与其他计算机共享”看似一键完成,但实际依赖几个隐性前提:
- 被共享的源接口(如
wlan0)必须处于活跃且可上网状态;若 Wi-Fi 连接断开再重连,共享可能不会自动恢复 - 目标接口(如
eth0)不能预先配置了静态 IP 或 DHCP 客户端(dhclient正在运行会冲突) - 系统防火墙(UFW)默认拒绝转发流量,需手动放行:
sudo ufw default allow routed - 分配的子网固定为
10.42.0.0/24,若客户端已有同网段设备(比如 Docker 默认桥接网段),会产生 ARP 冲突
netplan 配置静态内网口时的常见陷阱
手动配 eth0 为 192.168.1.1/24 是可控做法,但 netplan YAML 对缩进和冒号极其敏感:
-
addresses:后必须是列表格式,写成addresses: 192.168.1.1/24(缺方括号)会报错expected sequence - 不能混用
dhcp4: no和routes或nameservers—— 这些属于 DHCP 分配范畴,静态模式下要单独用nameservers:块声明 - 修改后必须执行
sudo netplan apply,仅保存文件无效;若失败,可用sudo netplan try防锁死
iptables NAT 规则必须匹配真实接口名
很多教程硬写 wlan0 和 eth0,但你的实际接口名可能不同:
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 先用
ip -br a查看当前活跃接口,重点关注带 “UP” 状态且有公网 IP 的(如wlp3s0、enx00e04cxxxxxx) - NAT 规则中
-o wlan0若写错,ping 8.8.8.8会卡在 “Destination Host Unreachable” - 规则顺序很重要:
FORWARD链必须先允许in=内网口 out=外网口,再放行返回包,否则客户端能发不能收 - 重启后失效?别只靠
/etc/rc.local—— Ubuntu 22.04+ 默认禁用该机制,改用 systemd service 或iptables-restore+netfilter-persistent
客户端连不上时优先查这三件事
不是 Ubuntu 没配好,而是两端协商出了问题:
- Windows 客户端是否禁用了“网络发现”?即使 IP 配对,SMB 文件共享也会失败 —— 但互联网共享本身不依赖它
- 客户端是否启用了多个网卡(比如同时连 Wi-Fi 和以太网)?路由表可能优先走 Wi-Fi,绕过共享网关
- Ubuntu 上运行
sudo tcpdump -i eth0 icmp,然后在客户端ping 192.168.1.1:没抓到包说明物理链路或 IP 配置错;抓到了但没回包,大概率是 iptables FORWARD 链拦截或 ip_forward 关闭
真正麻烦的从来不是配一条命令,而是确认每个环节的流量走向是否符合预期——尤其当接口名不标准、防火墙策略叠加、或客户端系统自动干预网络栈时。










