• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

手把手教您用LINUX做网吧双线接入服务器

发布: 2007-5-26 11:31 | 作者: yo | 来源: 互连网 | 查看: 43次 | 进入软件测试论坛讨论

领测软件测试网  在网上经常看到很多朋友对linux平台下架设网吧服务器的问题问得比较多,真正意义上解答的也不是很多,在参考了很多文章之后经过不断测试终于成功了,所以有了这篇文章,废话少说,我们开始。我用的是RED9版本,其他的也是大同小异了

  安装过程非常简单,安装完毕之后,我们需要修改的文件主要有下面几个:

 .network 这个文件的意思是主网络设置文件

  ifcfg-eth0 eth0 这个文件的意思是网卡设置文件

  ifcfg-eth1 eth1 这个文件的意思是网卡设置文件

  hosts 这个文件的意思是网络主机名配置

  static-routes 这个文件的意思是静态路由表文件

  rc.local IPTABLES 这个文件的意思是脚本

  sysctl.conf Linux 这个文件的意思是内核IP转发启用文件

  这几个文件对应的目录是:

  /etc/sysconfig/network

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

  /etc/sysconfig/network-scripts/ifcfg-eth1

  /etc/hosts

  /etc/sysconfig/static-routes

  /etc/rc.d/rc.local

  /etc/sysctl.conf

  首先我们修改一下ifcfg-eth2(我们以后接网通IP:11.11.11.11) ifcfg-eth1(电信IP:22.22.22.22)和ifcfg-eth0(内网)三个文件。这是网卡的IP地址文件!

  ifcfg-eth0就对应你内网的IP和网关(当然这些可以根据你的实际情况进行设置,你想让那个做内网都是没有问题的)而ifcfg-eth1跟ifcfg-eth2就是外网的IP和网关。

  这是里面的内容:

  DEVICE=eth1硬件设备名

  BOOTPROTO=static 配置方式

  BROADCAST=192.168.0.255 广播地址

  IPADDR=192.168.0.1 是你的IP地址

  NETMASK=255.255.255.0 子网掩码

  NETWORK=192.168.0.0 整个网段的地址

  GATEWAY=192.168.0.1 的网关

  ONBOOT=yes 是否启用网卡(一般默认是开启的)

  其他的网卡设置都是差不多的,我就不说废话了。

  设置完了之后我们设置host文件,也就是设置好工作组

  上面的工作做完了之后我们修改sysctl.conf,也就是IP转发文件。在这里我们一定要起用IP转发才可以。里面可以这样写:

  net.ipv4.ip_forward=1

  net.ipv4.conf.default.rp_filter=1

  kernel.sysrq=0

  然后就是static-routes文件。这个文件是静态路由表文件!这个文件记得一定添加才可以!里面的语法是这样的:

  eth0(设备名) net(网络地址) 192.168.0.0 (子网)netmask 255.255.255.0 (网关地址)gw 192.168.0.1

  接下来该修改resolv文件。这个文件是你DNS服务器的地址文件,语法是:

  nameserver(DNS服务器) 10.0.0.1

  这上面这些是大体上的设置问题,其实很简单。下面这些就要大家好好看了,也就是我们需要的双线接入的策略了。

  首先将从两个WAN口出去的数据包进行IP伪装masquerade

  /sbin/iptables -t nat -A postrouting -o eth1 -j masquerade

  /sbin/iptables -t nat -A postrouting -o eth2 -j masquerade

  (上面提到的A的意思是append,是追加,当然也可以用-I,不过I是insert,是插入,默认插入到第一条 )

  然后,给系统增加一个标示为11的路由表,增加一个默认网关,这个默认网关是网通提供的网关。

  ip route add 0/0 via 11.11.11.11table 11

  然后给系统主路由表配置网关,这个网关是电信的网关

  ip route add 0/0 via 22.22.22.22

  然后添加路由规则,让所有通向网通的数据查询标示为11的路由表:

  ip rule add to 60.0.0.0/13 table 11

  ip rule add to 60.8.0.0/15 table 11

  ip rule add to 60.10.0.0/16 table 11

  ..........

 这些规则,大家可以借鉴一下routeros的,网上很多,我就不说了,没有的可以跟我要。我的是MMS的,应该是比较全了

  经过我们的设置所有通向网通的数据会查询路由表11,而通向其他的地方的数据,通向电信。(如果还有其他的线路,再增加路由表,再增加策略就可以了)

  要注意的是,在配置网卡的时候,先不要配置网关,不要使用老的ifconfig命令来配置网关,而要使用iproute2来配置网关,否则会造成冲突,或者 使用 ip route replace 命令来替换 ip route add 命令。

  还有一个做法是:

  Internet

  | |

  | |

  电信 网通

  | |

  |

  交换机

  |

  eth1 eth2

  Server

  eth0

  |

  _____________

  客户机 客户机 客户机 客户机192.168.0.0/24 网关192.168.0.254

  其中eth0 ip 192.168.0.0/24

  eth1 222.168.1.3/255.255.255.252

  eth2 218.62.3.3/255.255.255.252

  默认网关为网通的218.62.3.2

  加上ip route add的电信网关 222.168.1.2

  部分疟疚?/P>

  iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -d $电信ip -j SNAT --to 222.168.1.3

  ***

  ***

  ***

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 218.62.3.3

  这样呢就实现了一个网段的电信网通自动切换

  前期测试:如果单独切换ip,内网同时并存192.168.0.254/24 192.168.2.254/24两个网关,速度很稳定,可以实现预期效果

  # echo "200 DIANXIN" >;>; /etc/iproute2/rt_table(这个是添加到文件,执行一次即可)

  # ip route replace default via 222.168.1.2 table DIANXIN

  # ip rule add fwmark 1 table DIANXIN(这个注意顺序,用ip rule可以查看)

  # iptables -t nat -F

  # iptables -t mangle -F

  # iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.222.5.0/15 -j MARK --set-mark 1

  # iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.0/24 -d 222.240.0.0/13 -j MARK --set-mark 1

  # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.222.5.0/15 -j SNAT --to $DIANXIN

  # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 222.240.0.0/13 -j SNAT --to $DIANXIN

  # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to $接网通线路网卡的地址

  # ip route flush cache

  这样的结果,是访问222.222.5.0/15和222.240.0.0/13走电信网卡、电信路由,伪装成电信出口地址,其他默认网通

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网