Linux下用iptables上網
在linux下用iptables代理上網
1、網關/代理服務器(proxy server)
iptables: linux下的防火墻軟件
iptables具備兩種功能:
1、firwall
2、nat地址轉換
rpm -qa | grep iptables <查看有沒有安裝iptables>
iptables-1.2.11-3.1.RHEL4
service iptalbes start <啟動iptables服務>
iptables有兩張表:1、當你用filter表時它認為是做防火墻
2、當你用nat表時它認為你做代理上網
iptables -t nat -L <查看nat表>
nat表下面是鏈(Chain)
1、PREROUTING <一般用來做透明代理上網>
2、POSTROUTING <一般用來做單純的nat地址轉換>
3、OUTPUT <出去的鏈>
iptables -t nat -A(添加) POSTROUTING(添加一個POSTROUTING鏈) -s 202.106.20.0/24(代動哪個網段/哪些電腦去上網) -j(執行一個動作) MASQUERADE(ip地址偽裝)
target <執行什么動作>
prot <協議>
source <源地址>
destination <目標地址>
echo "1" > /proc/sys/net/ipv4/ip_forward <轉發數據>
想讓代理上網永久生效我們要在linux下寫一個腳本(可執行文件)
腳本都放在 cd /bin
- cd /bin
- touch daili
- chmod a+x daili
- vi daili
- #!/bin/bash
- adsl-stop
- adsl-start
- route add default ppp0
iptables -t nat -F <清空nat表里的所有規則>
iptables -t filter -F <清空防火墻里的所有規則>
- echo "1" > /proc/sys/net/ipv4/ip_forward
- iptables -t nat -A POSTROUTING -s 202.106.20.0/24 -j MASQUERADE
- iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
要想每一次開機就能自動帶動下面的機器上網的話就執行下面的命令
- vi /etc/rc.local
把 /bin/daili 寫到rc.local里
(注:nat的客戶端的網關都指向做代理上網那個電腦的ip)
squid代理上網(緩存代理)
端口號:tcp 3128
rpm -qa | grep squid <查看有沒有安裝squid>
- squid-2.5.STABLE6-3
- vi /etc/squid/squid.conf
http_port 3128 <把這名話放開>
cache_mem 8 MB <代理上網的緩存用多大的內存去做緩存>
cache_dir ufs /var/spool/squid 100 16 256 <把用戶瀏過的網存放在哪個位置>
(100是這個目錄可以存放多少100MB的東西這個可以改,它會在這個目錄下建立16子目錄用來存放網頁,在16子目錄下會建立256個子目錄)
acl LAN1 src 202.106.20.0/24
acl LAN2 src 192.168.0.0/24 <定義哪個網段/哪些電腦能上網>
http_access allow localhost LAN1 LAN2 <允許哪些電腦能上網,如:允許LAN1 LAN2C能上網>
http_access deny <拒絕哪些電腦上網>
squid -z <創建緩存目錄>
service squid start <啟動squid服務>
(注:squid的客戶端要把IE瀏覽器中的Internet選項中的連接局域網設置下的代理服務器的ip和squid的端口3128)。這樣,就可以在Linux下用iptables上網了。
【編輯推薦】