荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: charmfox.bbs@bbs.nankai.edu.cn (学习ARM), 信区: Linux
标  题: 单网卡实现网关并提供透明代理
发信站: 我爱南开站 (Thu Oct  3 15:44:47 2002)
转信站: SZUBBS!news2.happynet.org!news.happynet.org!NanKai

单网卡实现网关并提供透明代理

国庆了,实验室没人,呵呵,把我的机器折腾了一下做了个网关。
把做过的东西整理整理,就贴了出来。

我只有一块网卡,没办法只能用单网卡架一个网关。

环境:

只有一块网卡,/dev/eth0
内网:192.168.0.0网段,netmask:255.255.255.0,作为内网网关,本机地址:192.168.
0.254

外网:202.113.25.0网段,netmask:C类地址,本机IP: 202.113.25.x
外网网关:202.113.25.1

一.给单片网卡加上双IP

1.先使用netconfig命令配置内网192.168.0.0网段,但是网关设定为202.113.25.1

2.编辑文件/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=test.com
GATEWAY=202.113.25.1
GATEWAYDEV=eth0
FORWARD_IPV4=yes

3.建立文件/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0:0
USERCTL=no
BOOTPROTO=
ONBOOT=yes
BROADCAST=202.113.25.255
IPADDR=202.113.25.x
NETMASK=255.255.255.0
NETWORK=202.113.25.0

#这是设定另一个网卡地址,当然了手动用ifconfig也可以实现的。
#这样设定保证机器启动时也加上两个地址。

#第一个网卡地址也可以这么设定,只要编辑文件ifcfg-eth0就可以了。
#我图简单,就用了netconfig

4.重新启动/etc/rc.d/init.d/network restart
使设定的网卡地址生效。这是你使用ifconfig命令看一下就可以看见,
除了eth0,lo设备外,还有eth0:0设备。

二.使用iptables建立转发

echo 1 > /proc/sys/net/ipv4/ip_forward
#打开ip转发功能

modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp

#flush chain
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -t nat -F

iptables -P FORWARD DROP

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
#接受子网的转发

iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#这段的意思是:如果一个包是对从防火墙原先发出去的包的回复,则自动不用检
#查任何规则就立即允许回复包进入并返回给请求者,这样我们不用设置许多规则定义就
#可实现应有的功能.

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to 202.11
3.25.x

#将从192.168.0.0/24上转发的数据包,在路由之后,将源地址改为202.113.25.x

可以在客户机上设定网络地址为192.168.0.x,网关为192.168.0.254.
ping一下bbs,如果可以的话网关就建立完毕了。

三.使用squid代理web请求

1.下载squid软件包,编译,安装,启动,这别的文章都有的。

需要注意的是,在squid的配置文件,squid.conf中需要增加配置。

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

#这是看什么的我没细看,但是httpd_accel_uses_host_header的说明
#中指出,要想实现透明代理,必须打开该选项。

2.用iptables将端口转换

iptables -t nat -A POSTROUTING -p tcp --dport 80 -s 192.168.0.0/24 -j REDIRE
CT --to-port 3128

#3128是默认的squid的监听端口,将192.168.0.0/24网段上的80端口请求转发到
#3128端口上。

这样的话,客户端仅仅需要设定网关为192.168.0.254,使用浏览器时,自动将请求转给
squid代理。

同时,其他非web方式的访问直接通过网关连到外界去。
--
※ 来源:·我爱南开站 bbs.nankai.edu.cn·[FROM:     *     ]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店