200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 用iptables做软路由实现共享上网

用iptables做软路由实现共享上网

时间:2018-09-29 06:40:20

相关推荐

用iptables做软路由实现共享上网

我们平时使用的大多数家用路由器都是通过NAT(Network Address Translation,网络地址转换)功能实现共享上网的,iptables是linux内核里整合的一个ip信息包过滤系统,使用iptables配置nat就可以实现和家用路由器一样的上网效果。(本文永久地址:http://woymk./10000269/1923952)

环境:两台电脑,都是centos6的系统,其中一台能上网,一台不能上网,两台电脑通过内网相连。

A电脑:外网(eth0) ip为192.168.1.1,内网(eth1) ip为10.1.1.1

B电脑:内网(eth0) ip为10.1.1.2

配置方法如下:

1、启用Linux的ip转发功能

首先查看ip转发功能是否已经打开

sysctl -a |grep 'net.ipv4.ip_forward'

如果值为1,则说明已经打开,否则执行以下操作

echo "1" >/proc/sys/net/ipv4/ip_forward

这是临时修改,系统重启后失效

或者直接修改配置文件

vi /etc/sysctl.conf

找到

net.ipv4.ip_forward = 0

改成

net.ipv4.ip_forward = 1

然后运行 sysctl -p

2、设置iptables规则

在A电脑上执行

iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -j SNAT --to-source 192.168.1.1

保存配置

service iptables save

这个语句就是告诉系统把即将要流出本机的数据的source ip address修改成为192.168.1.1。这样,数据包在达到目的机器以后,目的机器会将包返回到192.168.1.1。如果不做这个操作,那么数据包在传递的过程中,reply的包肯定会丢失。

假如当前系统用的是ADSL/3G/4G动态拨号方式,那么每次拨号,出口ip都会改变,snat是把源地址转换为固定的ip地址,这样就会有局限性。这时可以使用:

iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE

与snat不同的是,masquerade可以自动读取外网卡获得动态ip地址,然后进行地址转换。

POSTROUTING:在通过Linux路由器之后做的策略,也就是路由器的外网接口。

-s 10.1.1.0/24:源数据所来自这个网段,也可以是单个ip,不写表示所有内网ip。

-o eth0 -j MASQUERADE:表示在eth0这个外网接口上使用IP伪装。

3、 在B电脑上设置网关

vi/etc/sysconfig/network-scripts/ifcfg-eth0

添加或修改

GATEWAY=10.1.1.1

保存后重启网络服务

service network restart

4、测试

在B电脑上执行

ping

[root@www ~]# ping

PING 163. (58.216.21.93) 56(84) bytes of data.

64 bytes from 58.216.21.93: icmp_seq=1 ttl=128 time=8.23 ms

64 bytes from 58.216.21.93: icmp_seq=2 ttl=128 time=9.72 ms

64 bytes from 58.216.21.93: icmp_seq=3 ttl=128 time=8.78 ms

64 bytes from 58.216.21.93: icmp_seq=4 ttl=128 time=8.97 ms

curl -I

[root@www ~]# curl -I

HTTP/1.0 200 OK

Expires: Tue, 09 May 15:21:02 GMT

Date: Tue, 09 May 15:19:42 GMT

Server: nginx

Content-Type: text/html; charset=GBK

Vary: Accept-Encoding,User-Agent,Accept

Cache-Control: max-age=80

Via: 1.1 :80 (squid)

X-Via: 1.0 czdx87:3 (Cdn Cache Server V2.0), 1.0 adxxz41:6 (Cdn Cache Server V2.0)

Connection: keep-alive

结果显示已经可以正常上网!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。