有关用linux作NAT服务(代理,透明代理等)

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

作者:wind521

准备:

一台linux主机(这是必备的)

两块网卡

系统支持iptables (如有人不清楚iptables,可以先到网上去看一下相关的资料)

针对于此,我这几天写了一个简单的小脚本,大家可以利用他来作代理服务,如果有能力,可以添加一些相关的规则。。。

程序如下:

#! /bin/sh

IPTABLES=/usr/sbin/iptables

EXTERNAL="eth1" --- 外网的接口

INTERNAL="eth0"

--- 内网的接口

IP=192.168.0.0/24

--- 内网地址

$IPTABLES -P INPUT ACCEPT

$IPTABLES -P FORWARD ACCEPT

$IPTABLES -P OUTPUT ACCEPT

$IPTABLES -t nat -P PREROUTING ACCEPT

$IPTABLES -t nat -P POSTROUTING ACCEPT

$IPTABLES -t nat -P OUTPUT ACCEPT

$IPTABLES -F

$IPTABLES -t nat -F

$IPTABLES -X

$IPTABLES -t nat -X

start() {

echo -n $"Starting firewall "

# Enable IPV4 Packet Forwarding

echo 1

/proc/sys/net/ipv4/ip_forward

for i in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/*

do

t=`echo $i |sed 's/\.o$//g'`

module=`basename $t`

modprobe $module

done

#

#允许ICMP数据包(ping)

$IPTABLES -A INPUT -p icmp -j ACCEPT

#允许内部网之间的数据通讯

$IPTABLES -A INPUT -i $INTERNAL -s $PRINET -j ACCEPT

$IPTABLES -A OUTPUT -o $INTERNAL -d $PRINET -j ACCEPT

$IPTABLES -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE

echo_success

}

stop(){

echo -n $"Stopping Firewall"

flush

for i in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/*

do

t=`echo $i |sed 's/\.o$//g'`

module=`basename $t`

modprobe -r $module

done

# Disale IPV4 Packet Forwarding

echo "0"

/proc/sys/net/ipv4/ip_forward

echo_success

}

restart()

{

stop

start

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

restart

;;

*)

echo $"Usage: $0 {start|stop|restart}"

exit 1

esac

按照需要将你所对应的变量改动一下,应该没有问题的!

说明:这个基本上能保证代理上网的功能,其他的什么都没有作,包括SNAT,DNAT,都没有作,如果有需要的可以自己去改动

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航