linux

位置:IT落伍者 >> linux >> 浏览文章

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


发布日期:2023年08月28日
 
有关用linux作NAT服务 (代理,透明代理等)

作者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都没有作如果有需要的可以自己去改动

上一篇:Turbolinux 在IDC 中的角色

下一篇:从Unix到Oracle的日期转换