You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

单物理网口的Alpine Linux主机借助VLAN/虚拟接口实现防火墙过滤与NAT转发的可行性及配置方案咨询

单物理网口的Alpine Linux主机借助VLAN/虚拟接口实现防火墙过滤与NAT转发的可行性及配置方案咨询

完全可以实现!单网口的Alpine Linux主机完全能靠VLAN虚拟接口区分两个网段,再搭配UFW配置防火墙规则和NAT转发,完美适配你的需求。下面一步步给你讲具体怎么操作:

一、先理清网络拓扑逻辑

你需要把Alpine的物理网口(假设是eth0)拆分成两个VLAN虚拟接口:

  • eth0.10:对接SFR路由器的192.168.1.0/24网段,作为Alpine的互联网出口
  • eth0.20:对接TP-Link AX53的192.168.0.0/24网段,作为这个子网的网关

前提:你的SFR路由器和AX53都要支持VLAN标签(Tagging),把连接到Alpine主机的端口配置为Trunk模式,允许VLAN 10和VLAN 20的流量通过。

二、配置Alpine的VLAN虚拟接口

编辑网络配置文件/etc/network/interfaces,添加两个VLAN接口的配置:

auto eth0.10
iface eth0.10 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1  # SFR路由器的IP地址
    vlan-raw-device eth0

auto eth0.20
iface eth0.20 inet static
    address 192.168.0.1/24
    vlan-raw-device eth0

配置完成后,重启网络服务生效:

service networking restart

三、开启IP转发功能

Alpine需要具备路由转发能力,编辑/etc/sysctl.conf,移除net.ipv4.ip_forward=1行的注释,然后执行以下命令让配置生效:

sysctl -p

四、用UFW配置NAT与防火墙规则

1. 先设置UFW默认策略

ufw default deny incoming
ufw default allow outgoing

2. 配置NAT转发规则

编辑/etc/ufw/before.rules,在*filter部分之前添加NAT规则(把AX53子网的流量通过SFR接口做地址转换):

*nat
:POSTROUTING ACCEPT [0:0]
# 为192.168.0.0/24网段的流量做SNAT,实现互联网访问
-A POSTROUTING -s 192.168.0.0/24 -o eth0.10 -j MASQUERADE
COMMIT

3. 添加必要的转发与放行规则

# 允许AX53子网访问互联网
ufw allow in on eth0.20 out on eth0.10
# 允许从互联网返回的已建立连接流量进入AX53子网
ufw allow in on eth0.10 out on eth0.20 related,established
# 如果你打算让Alpine做AX53子网的DNS服务器,放行DNS端口
ufw allow from 192.168.0.0/24 to any port 53
# 如果你打算让Alpine做AX53子网的DHCP服务器,放行DHCP端口
ufw allow from 192.168.0.0/24 to any port 67:68 udp

4. 启用UFW

ufw enable
  1. 把AX53切换到Access Point模式,关闭自带的DHCP服务器
  2. 设置AX53的LAN口IP为192.168.0.2/24,网关地址设为192.168.0.1(也就是Alpine的eth0.20接口IP)
  3. 把AX53连接到Alpine的端口配置为Trunk模式,允许VLAN 20的流量通过

备选方案:如果设备不支持VLAN怎么办?

如果你的SFR路由器或AX53不支持VLAN标签,可以改用macvlan虚拟接口来替代VLAN。不过macvlan有个限制:同一物理网口的macvlan接口之间无法直接通信,需要借助外部路由,但你的场景里Alpine本身就是路由,所以需要额外调整转发规则。不过优先推荐VLAN方案,稳定性和兼容性更好。

备注:内容来源于stack exchange,提问作者robotshapes

火山引擎 最新活动