支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-09-15 01:16:10 Ubuntu iptables 网络共享 Netplan
最近把一台旧机器当软路由用,系统是 Ubuntu 20.04,两张网卡,无线连外网,有线接内网交换机。配置过程中踩了几个坑,整理一下。
拓扑很简单:外网走 wlp0s20f3,内网走 eth0,目标就是让 eth0 下面的设备通过 wlp0s20f3 上网。网卡名不一定跟我一样,用 ip addr 看清楚再往下配。
开启 IP 转发是第一步。
临时生效可以 sudo sysctl net.ipv4.ip_forward=1,但重启就没了。要永久的话,把 net.ipv4.ip_forward = 1 追加到 /etc/sysctl.conf 再 sysctl -p 一下。
sudo sysctl net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/net/ipv4/ip_forward
最后那个 cat 输出 1 就说明转发已经开了。这里其实容易漏,很多人只做了临时开启,重启后内网又上不了网。
iptables 这边主要两件事:在 nat 表的 POSTROUTING 链上对出接口做 MASQUERADE,以及放行转发。
我习惯先把现有规则清一下,然后默认策略设成 ACCEPT,省得后面排查。核心规则就三条:
sudo iptables -t nat -A POSTROUTING -o wlp0s20f3 -j MASQUERADE
sudo iptables -A FORWARD -i wlp0s20f3 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlp0s20f3 -o eth0 -j ACCEPT
第三条把所有从外网到内网的转发都放行了,如果你的内网只是上网用,没有对外服务,这条可以不加。我一开始没注意,全放开了,后来才改掉。
内网网卡配个静态地址,我选的是 192.168.137.1/24。Ubuntu 20.04/22.04 默认用 netplan,在 /etc/netplan/ 下建一个 yaml 文件,比如 01-eth0-cfg.yaml:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.137.1/24]
配置完执行 sudo netplan apply。如果是 networkd 渲染器,有时还需要 sudo systemctl restart systemd-networkd,不过通常 netplan apply 会处理好。
客户端配置就简单了,连 eth0 的设备手动设 IP 192.168.137.x(x 从 2 到 254),网关填 192.168.137.1,DNS 用 8.8.8.8 或 114.114.114.114。如果是 Windows 或手机,在网卡设置里手动指定就行。
iptables 规则重启会丢,需要装 iptables-persistent 然后保存。装的时候会问是否保存现有规则,直接 yes 也行。
sudo apt update
sudo apt install iptables-persistent
sudo netfilter-persistent save
检查规则可以用 iptables -L -v -n 和 iptables -t nat -L -v -n,重点看 nat 表里 MASQUERADE 有没有挂上去。
还有几个容易忽略的点。
如果系统开了 UFW,记得允许路由转发:sudo ufw default allow routed,以及允许内网 DNS 查询:sudo ufw allow in on eth0 to any port 53 proto udp。另外内网网段不要和外网网段重叠,不然路由会乱。
基本配置就这些,跑通之后内网设备就能通过这台主机上网了。
如果内网有设备要对外提供 HTTPS 服务,需要证书的话,可以用 lcjmSSL 这类免费申请 SSL 证书的平台,支持自动申请、自动验证、自动部署,比手动跑 acme.sh 省事不少。
上一篇: Qt布局里给子组件加圆角,QSS这几个坑我替你踩过了
下一篇: 正则匹配多行注释的几个坑
本文为您详细解析Ubuntu系统字体安装与调整的全过程,从图形化工具Font Manager到命令行操作,助您轻松驾驭自定义字体。更有GNOME Tweak Tool深度美化秘籍,提升视觉体验。附带等宽字体使用提示,避免终端显示问题,让您的Ubuntu界面焕然一新。
Ubuntu下使用curl命令访问HTTPS站点时遇到的SSL证书验证错误,通常由系统缺少受信任的CA证书或证书路径配置不当引起。解决方案包括安装或更新CA证书包、更新证书列表、手动指定证书路径以及临时禁用SSL验证(仅限测试环境)。生产环境应优先确保系统证书完整性,避免使用跳过验证的方式。通过对比不同解决方案的适用场景、安全性和实施难度,可根据实际需求选择最合适的方法。