歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> 手把手教您Linux做網吧雙線接入服務器

手把手教您Linux做網吧雙線接入服務器

日期:2017/2/27 11:58:19   编辑:Linux文化

在網上經常看到很多朋友對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走電信網卡、電信路由,偽裝成電信出口地址,其他默認網通

Copyright © Linux教程網 All Rights Reserved