Linux iptables nat 实现不同网络间(内外网)的互联

实际背景

公司对网络环境管理的比较严格,开发环境全部在虚拟主机上,无法连接外网,同时提供了wifi,笔记本可以通过wifi联网查阅资料,但是网速极慢,还常常断网。

网络大致如下:
Linux iptables nat 实现不同网络间(内外网)的互联_第1张图片

此外,公司还有很多零零散散的上网机(单网卡,只能连接外网),主要用于资料下载,尤其是资源较大时。

由于工作需要,分配给我一个专用上网机,双网卡,主要用于部署/试用/研究一些开源软件/工具/组件/框架等。于是决定打通公司的网络任督二脉,逃离龟速wifi的折磨。

实现方案

IPTABLES 是 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

Linux iptables nat 实现不同网络间(内外网)的互联_第2张图片

1 主机B环境准备

操作系统为 CentOS 7

#安装并配置iptables
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum clean all
yum makecache
yum install iptables-services
#启动Linux的数据包转发功能

#临时生效
echo "1" > /proc/sys/net/ipv4/ip_forward

#永久生效
echo 'net.ipv4.ip_forword=1' >> /etc/sysctl.conf
sysctl -p

2 打开 iptables 的 NAT 功能

iptables -t nat -A POSTROUTING -o eth01 -j MASQUERADE 
# eth01 为连接外网的网卡名称,可用ifconfig查看
service iptables save

3 启动 iptables

systemctl start iptables.service

4 配置 主机A 中的 DNS Sever 和默认路由

添加默认路由:

#添加临时路由
route add 0.0.0.0 mask 0.0.0.0 192.168.0.10 metric 1 
#添加永久路由
route -p add 0.0.0.0 mask 0.0.0.0 192.168.0.10 metric 1

ping百度的ip地址,验证网络是否联通

ping 61.135.169.121

如果能ping通,说明已经能够联通外网了,接下来配置DNS Server。

查看主机 B 的DNS Server 配置文件 /etc/resolv.conf
然后配置到主机A上;

验证DNS

ping www.baidu.com

OVER!

你可能感兴趣的:(技术杂文,Linux,系统,系统运维)