作者wind
准备一台linux主机(这是必备的)
两块网卡
系统支持iptables (如有人不清楚iptables可以先到网上去看一下相关的资料)
针对于此我这几天写了一个简单的小脚本大家可以利用他来作代理服务如果有能力可以添加一些相关的规则
程序如下
#! /bin/sh
IPTABLES=/usr/sbin/iptables
EXTERNAL=eth > 外网的接口
INTERNAL=eth> 内网的接口
IP=/> 内网地址
$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 IPV Packet Forwarding
echo > /proc/sys/net/ipv/ip_forward
for i in /lib/modules/`uname r`/kernel/net/ipv/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/ipv/netfilter/*
do
t=`echo $i |sed s/\o$//g`
module=`basename $t`
modprobe r $module
done
# Disale IPV Packet Forwarding
echo > /proc/sys/net/ipv/ip_forward
echo_success
}
restart()
{
stop
start
}
# See how we were called
case $ in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $Usage: $ {start|stop|restart}
exit
esac
按照需要将你所对应的变量改动一下应该没有问题的!
说明这个基本上能保证代理上网的功能其他的什么都没有作包括SNATDNAT都没有作如果有需要的可以自己去改动