ระบบแยกเน็ต+เกม เด็ดขาด 100% (แจกBasicCode)
- เพื่อแบ่งปันโค๊ดดีๆ สร้างเสริมนิสัยการ Open Source ให้กับประชาชนคนไทย มิใช่หวังเอาแต่ได้ เอาผลกำไรอย่างเดียว
- เพื่อให้ร้านเน็ตที่มีทุนน้อย สามารถทำระบบเน็ตสองสายแบบประหยัดได้ด้วยตัวเอง (เบื้องต้น)
หมายเหตุ
========
- Basic Code ชุดนี้ จำเป็นต้องติดตั้ง Squid ด้วยนะคับ เพื่อการแยกเน็ตและเกมที่ถูกต้อง (เวอร์ชั่นใดก็ได้)
- ถ้ามีเกมใหม่ๆ หรือเกมที่ใช้ port แปลกๆ เข้ามา ท่านก็ต้องเขียน code เพิ่มเติมเองนะครับผม
(เดี๋ยวจะมาหาว่า code ของผมแยกไม่ขาดอีก )
2+1 WANs
=========
[ Net ]-----------------
|-------------[linux Server]---------. . .
[Games]----------------
- แบบนี้แยกเน็ต แยกเกมส์ อยู่คนละเส้น
โค๊ดอยู่ตรงนี้นะครับ
# ----- 2 WANs
# ----- change to you local IP
My_Local_Net="192.168.0.0/16"
# ----- Flush
iptables -t mangle -F
modprobe ip_nat_ftp
modprobe ip_tables
modprobe iptable_nat
modprobe ipt_conntrack
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_irc
modprobe ip_nat_snmp_basic
# ----- set default policies
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# ----- set default policies
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# ----- set default policies
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
# ----- IP sharing
# iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE > /dev/null
iptables -t nat -D POSTROUTING -s $My_Local_Net -o ppp+ -j MASQUERADE > /dev/null
# iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
iptables -t nat -A POSTROUTING -s $My_Local_Net -o ppp+ -j MASQUERADE
# ----- Squid
if [ -f /var/run/squid.pid ]; then
iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128 > /dev/null
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
fi
# ----- Frox
if [ -f /var/run/frox.pid ]; then
iptables -t nat -D PREROUTING -p tcp -m multiport --dport 21,5977,10100 -j REDIRECT --to-port 2121 > /dev/null
iptables -t nat -A PREROUTING -p tcp -m multiport --dport 21,5977,10100 -j REDIRECT --to-port 2121
fi
# ----- Msn Yahoo Icq Irc
if [ -f /var/run/imspector.pid ]; then
iptables -t nat -D PREROUTING -p tcp -m multiport --dports 1863,6667,5050,5190 -j REDIRECT --to-port 16667 > /dev/null
iptables -t nat -A PREROUTING -p tcp -m multiport --dports 1863,6667,5050,5190 -j REDIRECT --to-port 16667
fi
# ----- ----- ----- ----- ----- ----- ----- ----- #
# - START - multi wan 2 Line
# ----- ----- ----- ----- ----- ----- ----- ----- #
# ----- Note
# ppp0 = 0x8000 / ppp1 = 0x8001
# ----- Create our own CHAINS
# ----- Create CHECK_SERVICE_PORTS
iptables -t mangle -F CHECK_SERVICE_PORTS
iptables -t mangle -N CHECK_SERVICE_PORTS
iptables -t mangle -A CHECK_SERVICE_PORTS -p tcp -m multiport --dports 20:25,80,443,554,1863,2121,5050,5190,3128,3130,8080,16667 -j ACCEPT
# ----- Create CHECK_GAMES
iptables -t mangle -F CHECK_GAMES
iptables -t mangle -N CHECK_GAMES
# Asiasoft
iptables -t mangle -A CHECK_GAMES -d 203.144.0.0/16 -j MARK --set-mark 0x8000
#
iptables -t mangle -A CHECK_GAMES -d 203.146.0.0/16 -j MARK --set-mark 0x8000
# SF,LN2, Asiasoft International
iptables -t mangle -A CHECK_GAMES -d 61.90.0.0/16 -j MARK --set-mark 0x8000
# ProjectOne, DOMO
iptables -t mangle -A CHECK_GAMES -d 61.19.0.0/16 -j MARK --set-mark 0x8000
# Seal, HY, 3Kingdoms, 16
iptables -t mangle -A CHECK_GAMES -d 61.47.0.0/16 -j MARK --set-mark 0x8000
# PFW, Eco
iptables -t mangle -A CHECK_GAMES -d 61.91.0.0/16 -j MARK --set-mark 0x8000
# HipStreet
iptables -t mangle -A CHECK_GAMES -d 58.97.0.0/16 -j MARK --set-mark 0x8000
# Pangya, Rebirth, Pucca, Flyff
iptables -t mangle -A CHECK_GAMES -d 58.64.0.0/16 -j MARK --set-mark 0x8000
# DotA, Getamped
iptables -t mangle -A CHECK_GAMES -d 210.86.0.0/16 -j MARK --set-mark 0x8000
# LunaOnline, pko, water, SDO, Secret, RYL, cso
iptables -t mangle -A CHECK_GAMES -d 202.43.0.0/16 -j MARK --set-mark 0x8000
# RAN
iptables -t mangle -A CHECK_GAMES -d 203.142.0.0/16 -j MARK --set-mark 0x8000
# TalesRunner
iptables -t mangle -A CHECK_GAMES -d 203.113.0.0/16 -j MARK --set-mark 0x8000
# ----- START rule adding
# Firstly, set mark for packet to go to NET
iptables -t mangle -A PREROUTING -d ! $My_Local_Net -j MARK --set-mark 0x8001
# Service Ports
iptables -t mangle -A PREROUTING -s $My_Local_Net -d ! $My_Local_Net -j CHECK_SERVICE_PORTS
iptables -t mangle -A OUTPUT -s $My_Local_Net -d ! $My_Local_Net -j CHECK_SERVICE_PORTS
iptables -t mangle -A FORWARD -s $My_Local_Net -d ! $My_Local_Net -j CHECK_SERVICE_PORTS
# Games
# PREROUTING
iptables -t mangle -A PREROUTING -s $My_Local_Net -j CHECK_GAMES
# FORWARD
iptables -t mangle -A FORWARD -s $My_Local_Net -j CHECK_GAMES
# DotA (no need cache)
# Create DotA
iptables -t mangle -A PREROUTING -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --sports 7001:7200 -j MARK --set-mark 0x8000
iptables -t mangle -A OUTPUT -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --sports 7001:7200 -j MARK --set-mark 0x8000
iptables -t mangle -A FORWARD -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --sports 7001:7200 -j MARK --set-mark 0x8000
# Join DotA
iptables -t mangle -A PREROUTING -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --dports 6000:7500 -j MARK --set-mark 0x8000
iptables -t mangle -A OUTPUT -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --dports 6000:7500 -j MARK --set-mark 0x8000
iptables -t mangle -A FORWARD -s $My_Local_Net -d ! $My_Local_Net -p tcp -m multiport --dports 6000:7500 -j MARK --set-mark 0x8000
# No match, use Load Balance
iptables -t mangle -A PREROUTING -d ! $My_Local_Net -j ACCEPT
# ----- END rule adding
# ----- ----- ----- ----- ----- ----- ----- ----- #
# - END - multi wan 2 Line
# ----- ----- ----- ----- ----- ----- ----- ----- #
# ----- Load Balance
ppp1_addr=`ip route | grep ppp1 | head -1 | cut -f 1 -d " "`
ip route change default table 250 proto static nexthop via $ppp1_addr dev ppp1 weight 200
หากมีผลบุญกุศลใดๆ อันเกิดจากการแบ่งปันโค๊ดและให้ความรู้ของข้าพตั้งแต ่ในอดีตจนถึงปัจจุบัน
ขอให้ผลบุญนั้นจงตกอยู่แก่ตัวข้าพเจ้าทั้งหมด เพื่อความสุข ความเจริญ ไร้โรคาพยาธิ หมดทุกข์ หมดโศก
หมดโรค หมดภัย ของตัวข้าพเจ้า, ของบิดามารดาของข้าพเจ้า, ของคนรักของข้าพเจ้า, ของครอบครัวของข้าพเจ้า,
ของญาติสนิทมิตรสหายของข้าพเจ้า ตลอดจนเจ้ากรรมนายเวรทั้งหลายของข้าพเจ้าด้วย ขอให้ท่านทั้งหลายที่ข้าพเจ้าได้เอ่ยถึงมาทั้งหมดนี้
จงได้รับส่วนบุญส่วนกุศลที่ข้าพเจ้าได้อุทิศให้นี้ด้ วยเทอญ สาธุ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น
หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น