配置双网卡Linux主机作为路由器(连接NAT网络和仅主机模式网络)
1. 实验目标
- 通过一台双网卡Linux主机连接两个隔离网络:
- NAT网络(模拟外网,接口
eth0
,IP:172.25.254.100
) - 仅主机模式网络(模拟内网,接口
eth1
,IP:192.168.0.1
)
- NAT网络(模拟外网,接口
- 实现内网主机通过双网卡主机访问外网(NAT功能)。
- 可选:允许外网通过端口映射访问内网服务(DNAT)。
拓扑图大致如下(ip地址不是)
(1) 配置双网卡主机的IP地址
# 配置NAT接口(eth0)
sudo ip addr add 172.25.254.100/24 dev eth0
sudo ip link set eth0 up# 配置仅主机接口(eth1)
sudo ip addr add 192.168.0.1/24 dev eth1
sudo ip link set eth1 up
(2) 启用内核IP转发
# 临时启用
sudo sysctl -w net.ipv4.ip_forward=1# 永久生效
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
(3) 配置防火墙NAT规则
# 允许流量转发
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT# 设置SNAT(内网访问外网时隐藏真实IP)
sudo iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100# 可选:设置DNAT(外网访问内网Web服务)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.100
(4) 配置内网主机的网关
在仅主机模式主机(192.168.0.100
)上执行:
# 设置网关为双网卡主机的eth1 IP
sudo ip route add default via 192.168.0.1# 验证路由表
ip route show
(5) 测试通信
测试1:内网主机访问外网
# 在192.168.0.100上执行
ping 172.25.254.1 # 测试连通性
curl ifconfig.me # 应返回172.25.254.100(SNAT生效)