一:拓扑、网络结构介绍
Eth1 外网卡的IP 地址, GW和DNS 按照提供商提供配置。配置如下:
IP:114.242.25.18
NETMASK:255.255.255.0
GW:114.242.25.1
DNS:202106.0.20
DNS:202106.46.151
Linux 主机的 eth0 指向内网, IP 地址为: 172.100.10.1/24 。
Eth 0
IP:172.100.10.1
NETMASK:255.255.255.0
内部办公区 IP 地址段是 172.100.10.X/24 段的 IP , eth0 的 IP 是所有内网主机的网关,而DNS 设置为 eth1网卡配置 的 DNS,我的内网办公电脑设置如下:
172.100.10.188
NETMASK:255.255.255.0
GW:172.100.10.1
DNS:202106.0.20
DNS:202106.46.151
二: 配置
1.开启转发
以上配置完成后,办公终端 应该可以ping通Linux系统主机的eth0 的IP,因为他们是通过交换机链接的。但是,办公终端 ping不通Linux系统主机的eth1 的IP,应为并未开启Linux系统主机的转发功能。
开启Linux的转发功能,执行如下命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
查看系统是否启用了转发功能,可以执行如下命令:
cat /proc/sys/net/ipv4/ip_forward
如果结果为1,代表已启用,0代表未启用。
开启转发后,就能ping 同ETH 1 的IP 地址和网关和DNS。
2.配置NAT规则
经过上面配置后,虽然可以ping相关的IP地址,但是此时linux 服务器是可以上网,但是内网办公电脑还是无法上网。问题在于内网主机的IP地址是无法在公网上路由。因此我们只需将内网办公终端 的IP转换成Linux系统eth1 接口的IP。
3.配置的NAT
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
NAT 转换:
iptables -t nat -A POSTROUTING -s 172.100.10.0/24 -o eth1 -j MASQUERADE
也可以通过使用 SNAT target 实现:
iptables -t nat -A POSTROUTING -s 10.50.10.0/24 -o eth1 -j SNAT --to-source 114.242.25.18
FORWARD 配置规则如下:
iptables -A FORWARD -i eth0 -j ACCEPT
保证所有进入 eth0 的包都被 FORWARD 点 ACCEPT 。
经过以上的配置之后, 内网办公电脑就可以正常的访问外网了。
本文出自 “康建华” 博客,请务必保留此出处http://michaelkang.blog.51cto.com/1553154/788472