通过iptable使内网的机器能访问外网
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过iptable使内网的机器能访问外网相关的知识,希望对你有一定的参考价值。
环境:
Centos 6.8-1
VMware模拟方法,将一张网卡设置为VMnet1,一张设置为桥接
(桥接设备)eth0 :
IP地址:192.168.199.55
子网掩码:255.255.255.0
网关:192.168.199.1
(VMnet1)eth1:
IP地址:192.168.43.129
子网掩码:255.255.255.0
Centos 6.8-2
VMware模拟方法,将一张网卡设置为VMnet1
(VMnet1)eth0:
IP地址:192.168.43.128
子网掩码:255.255.255.0
网关:192.168.43.129
iptables的结构:
Iptables用于建立,维护和检查IPv4数据包的表过滤规则在Linux内核中。 可以定义几个不同的表。 每个表包含多个内置链,并且还可以包含用户 - 定义链。每个链是可以匹配一组数据包的规则列表。 每个规则指定如何处理匹配的数据包。 这被称为“目标”, 这可能是在同一个表中跳转到用户定义的链。
iptables的表与链:
iptables具有4张内建表Filter,NAT,Mangle,Raw
Filter表示iptables默认的表
例:
iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
等同于
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
1、Filter表中有3个链:
INPUT链:处理来自外部的数据,理解为过滤进入linux系统的数据
OUTPUT链:处理准备向外发送的数据,理解为是否允许一些数据包去别的网络,比如公网
FORWARD链:将数据转发到本机的其他网卡设备上
2、NAT表
PREROUTING链:处理到达本机,但并没有路由出去的数据包,它会改变数据包中的目标IP地址DNAT
POSTROUTING链:处理即将向外发送的数据包,它会改变数据包中的源IP地址SNAT
OUTPUT链:处理本机产生的数据包
3、Mangle表
Mangle表用于指定如果处理数据包,它能改变TCP头中的Qos位。Mangle表具有5个内建链:
PREROUTING
OUTPUT
FORWARD
INPUT
POSTROUTING
4、Raw表
Raw表用于处理异常,内含2个内建链
PREROUTING 链
OUTPUT链
操作步骤:
Centos6.8-1
1、开启内核转发功能
vim /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
2、使参数生效
sysctl -p
3、查看iptables现有的规则
查看默认表Filter的FORWARD链
....................
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
......................
4、删除Filter表中的FORWARD链中的REJECT规则,做实验也不管严不严谨了,工作中谨慎谨慎再谨慎。
iptables -t filter -D FORWARD -j REJECT service iptables save iptables -L
5、添加转发规则
iptables -t nat POSTROUTING -s 192.168.43.0/24 -J SNAT --to-source 192.168.199.55 service iptables save
6、在Centos6.8-2上修改网卡参数
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.43.128
NETMASK=255.255.255.0
GATEWAY=192.168.43.129
DNS1=202.101.172.35
DNS2=8.8.8.8
7、测试Centos6.8-1和Centos6.8-2的连通性
ping 192.168.43.129
8、查看本地的默认网关是否为192.168.43.129
rount -n
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.43.129 0.0.0.0 UG 0 0 0 eth0
9、测试能ping通Centos6.8-1的路由网关
ping 192.168.199.1
10、测试能否ping通外网
ping 114.114.114.114
11、测试能否正确解析域名
ping www.vperson.win
12、以上测试都通过,即完成实验。
以上是关于通过iptable使内网的机器能访问外网的主要内容,如果未能解决你的问题,请参考以下文章
sockets+proxychains代理,使内网服务器可以访问外网