红联Linux门户
Linux帮助

把linux打造成一个路由器

发布时间:2009-08-25 13:02:58来源:红联作者:h_h
要想使LINUX系统达到这种目的,首先得查看LINUX系统的内核中是否打开了IP转发功能,可以通过下列命令来查看:
  # cat /proc/sys/net/ip_forward

  如果用此命令返回的结果是0,那么就表明LINUX内核没有启用IP转发功能。就可以通过下示命令来启用:

  # echo 1 > /proc/sys/net/ip_forward

  但这种方式只能保证当次有效,如果你不小心或应某种需要重启了系统,那么又得重新输入上述这个命令一次。因此,为了保证每次系统都能自动设置,你就可以用VI编辑器打开/etc/sysctl.conf配置文件,在此配置文件中加如下容:

  ipv_ipforward=1

  保存退出后,这样,每次重启系统都不用重新设置内核IP转发了。

  在打开内核IP转发功能后,我们就该为我们所假设的网络添加路由功能了。

  在LINUX系统下实现路由功能,两种方法来实现,一种是通过IPTABLES工具的NAT转发功能,一种是使用IPROUTER2工具集中的IP ROUTE命令子集来实现。这两种方法各有优缺点,使用哪种方法,主要看你所在的网络使用哪种方法连接互联网。IPTABLES工具适合动态IP地址以及固定公网IP地址方式,同时,还提供了网络地址转换功能,此功能不仅能使使用私有IP地址的内网PC连接上互联网,而且还提供外网能过DNAT功能访问处于内网中的各种网络服务,以用隐藏内容IP网络段,增加了安全性。IP ROUTE工具同样适应与IPTABELS相同的两种上网方式,但不能提供NAT功能。

  不过,有许多特殊的网络路由功能,是通过这两个工具共同合作的才能实现的,例如,将要讲到的策略路由、负载均衡、多WAN出口路由等。因此,笔者在此分别列出这个工具实现路由功能的命令内容,其后,在介绍如何通过这两个工具合作,完成更加高级的功能。

  1、IPTABLES工具的NAT方式开启LINUX路由功能,其通过动态拔号方式连接互联网的命令如下所示:

  # iptables -t nat -A POSTROUTING -d 192.168.1.0/24 -s 0/0 -o ppp0 -j MASQUERD

  其中,ppp0是你拔号网络接口别名,在此之前,你得先设置好与拔号相关的内容,这可以通过直接编

  辑/etc/sysconfig/network_scripts/ifcfg_ppp0配置文件来达到目的。

  通过固定公网IP地址方式连接互联的实现方法如下:

  # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT -to 202.103.224.58

  其中,这个固定公网IP地址是由当地ISP分配给你的,在这也是由笔者自行假设的,具体的IP地址得根据你所在ISP所在地来决定。

  2、通过IP ROUTE工具来实现LINUX系统的路由功能

  通过动态拔号上网方式连接互联网的命令如下所示产:

  # ip route add via ppp0 dev eth0

  通过固定公网IP连接互联网的命令如下所示:

  # ip route add via 202.103.224.58 dev eth0

  经过以上两种方法中的任何一种的设置,我们的LINUX系统就具有路由功能了。这样,所处在局域网内部的PC都能够通过这台LINUX路由器共享上网了,便前题条件是要设置这些局域网中的PC的IP地址为此IP地址段中的任何一个,但不能相同,192.168.1.2-192.168.1.254,同时,设置它们的网关地址全部为192.168.1.1,这是LINUX路由器中连接局域网网卡的IP地址。因为,在这里全部使用固定IP地址,没有使用DHCP服务器,因此,这此IP地址都必需由用户自行指定的。
文章评论

共有 8 条评论

  1. ty8080 于 2009-09-04 12:54:52发表:

    引用:
    这些本来就是Linux的强项,如果这些功能都实现不了那还行呀
    雨夜花 发表于 2009-9-4 11:48


    (e:e2s
    linux 路由功能直接由内核实现的。linux之所以这么强就是有许许多多多爱好者。无私的奉献

  2. 雨夜花 于 2009-09-04 11:48:13发表:

    这些本来就是Linux的强项,如果这些功能都实现不了那还行呀

  3. 满脸胡子 于 2009-09-04 10:54:28发表:

    想不到linux 这么厉害。今天有学到了一些只是
    (e:e2s

  4. ty8080 于 2009-09-03 13:22:30发表:

    好贴顶上去

  5. l460618498 于 2009-08-25 18:58:19发表:

    Linux本来就可以做软路由啊

  6. ty8080 于 2009-08-25 14:58:50发表:

    思科的路由里的系统不就是,FreeBSD演变过来的吗 ?
    q):-s

  7. 路西法 于 2009-08-25 13:05:42发表:

    好!发朵小红花给lz

  8. h_h 于 2009-08-25 13:04:26发表:

    linux太强大了。配上两块好网卡,pc机就能当router用了