您的位置:首页 > 理论基础 > 计算机网络

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

2017-08-18 10:36 519 查看

实际背景

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

网络大致如下:



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

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

实现方案

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



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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iptables nat 内外网