this is a extra element for clear the floated element
有关用linux作NAT服务(代理,透明代理等)
  • 12/31
  • 2008
备份恢复 | Oracle 592 次查看
  作者: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,都没有作,如果有需要的可以自己去改动

  
您可能感兴趣的:

更多相关内容