linux forward

来源:互联网 发布:javascript观察者模式 编辑:程序博客网 时间:2024/05/18 03:07
建议用linux吧.下面是别人写的,后面我有补充1.安装Linux,不管是在图形,还是文体下都可以,选择最小安装,在安装的时候可以先配置一下外网的IP和DNS(不设也行),其它全部默认  安装好后进入提示符2.进入提示符以后,首先配置下网卡:eth0 (外网网卡)配置文件路经为:/etc/sysconfig/network-scripts/ifcfg-eth0用 vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改 eth0的内容,如果安装得时候配好了就不用配了,检下看有错没就行了。eth0的内容为:(注IP为假设IP, #为注释不用写)DEVICE=eth0                 #硬件设备名BOOTPROTO=static              #配置方式BROADCAST=218.28.9.255        #广播地址IPADDR=218.28.9.123           #是你的IP地址NETMASK=255.255.255.0         #子网掩码NETWORK=218.28.9.0            #整个网段的地址ONBOOT=yes                    #是否启用网卡(一般默认是开启的)eth1(内网网卡),配置文件路经为:/etc/sysconfig/network-scripts/ifcfg-eth1用 vi /etc/sysconfig/network-scripts/ifcfg-eth1 修改 eth0的内容eth1的内容为:DEVICE=eth1          #硬件设备名BOOTPROTO=static        #配置方式BROADCAST=192.168.0.255    #广播地址IPADDR=192.168.0.1       #是你的IP地址NETMASK=255.255.255.0      #子网掩码NETWORK=192.168.0.0       #整个网段的地址ONBOOT=yes           #是否启用网卡(一般默认是开启的)网卡配置完了 大家可以用ifconfig命检查下网卡有没配错3. 现在来设置外网网关,和ISP提供的DNS  网关的配置文件路径是 /etc/sysconfig/network 用vi 编辑 如果在安装时已经设好这个不用改。    内容为:      NETWORKING=yes        #这个不知道是什么意思默认为yes 不用改       HOSTNAME=rslinux     #你的主机名   不用改      GATEWAY=218.28.9.120   #你的外网网关下来加上DNS 如果安装时设好就不用改了DNS配置文件路径为: /etc/resolv.conf 用vi  编辑语法是:nameserver 20.2102.224.68 (可以加多条)以上基本工作全部做完以后我可以用 route命令检查下路态如果读出来很顺利则说明没问题.我的做完以后是这样的192.168.0.0 *              255.255.255.0    U  0   0   0  eth1218.28.9.0  *              255.255.255.0    U  0   0   0  eth0169.254.0.0 *              255.255.255.0    U  0   0   0  eth1127.0.0.0   *              255.255.255.0    U  0   0   0  lodefault     hn.pds.kd.adsl 255.255.255.0    U  0   0   0  eth03.用IPTABLES 实现双网卡NAT功能,从而实现代理服务器上网  上面的工作做完了之后我们修改sysctl.conf,也就是IP转发文件。在这里我们一定要起用IP转发才可以。  sysctl.conf 路径为 /etc/sysctl.conf   里面可以这样写:  net.ipv4.ip_forward=1  net.ipv4.conf.default.rp_filter=1  kernel.sysrq=04.最后编辑 rc.local文件  vi /etc/rc.d/rc.local       #编辑起动批处理文件,在文件末尾添加如下几行          iptables -F                            #清除iptables表         iptables -F -t nat                     #清除iptables IP nat表         iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE   #把内网ip伪装为外网的以至接通internet         echo 1>/proc/sys/net/ipv4/ip_forward   #启动ip中转功能.到此,重启机器后代理服务器就能用了。如果不想加载那么多服务可用 ntsysv 命令把服务去掉 只留下iptables服务和networks服务,其它服务的勾全部去掉. 注: 以上请大家注意大小写,写错了是不能用的--------------------------------------------------------------------#!/bin/bashINT="eth0"EXT="eth1"INT_NETWORK="192.168.0.0/24"INT_SERVICES="21 22 80 139"EXT_SERVICES="22"IPTABLES="/sbin/iptables"ANY="0.0.0.0/0.0.0.0"$IPTABLES -F -t filter$IPTABLES -F -t mangle$IPTABLES -F -t nat$IPTABLES -Z$IPTABLES -X####----------public network------------######$IPTABLES -A INPUT -i $EXT -m state --state RELATED,ESTABLISHED -j ACCEPTfor PORTS in $EXT_SERVICES; do  $IPTABLES -A INPUT -i $EXT -p tcp --dport $PORTS -j ACCEPTdone$IPTABLES -A INPUT -i $EXT -p tcp --syn -j REJECT####----------private network------------######$IPTABLES -A INPUT -i $INT -m state --state RELATED,ESTABLISHED -j ACCEPTfor PORTS in $INT_SERVICES; do   $IPTABLES -A INPUT -i $INT -p tcp --dport $PORTS -j ACCEPTdone###----------forward rules--------------#####$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT$IPTABLES -A FORWARD -i $INT -o $EXT -j ACCEPT$IPTABLES -A FORWARD -i $EXT -p tcp --syn -j REJECT###----------nat rules ----------------####$IPTABLES -t nat -A POSTROUTING -s $INT_NETWORK -o $EXT -j MASQUERADE$IPTABLES -t nat -I PREROUTING -i ppp0 -p udp --dport 27015 -j DNAT --to 192.168.0.1###----------squid rule ---------------####$IPTABLES -t nat -I PREROUTING -s $INT_NETWORK -p tcp --dport 80 -j REDIRECT --to 3128这段比你的安全,,,但是还不够好,,,其中$IPTABLES -t nat -I PREROUTING -i ppp0 -p udp --dport 27015 -j DNAT --to 192.168.0.1是映射