红联Linux门户
Linux帮助

linux实现共享上网

发布时间:2007-12-16 00:16:28来源:红联作者:Promises
练习iptables的使用,实现linux下的双网卡共享上网。

环境:
windows xp 作为局域网客户机
redhat linux 作为网关

步骤:
因为我只有一台电脑,又要模拟两块网卡,所以我在xp装了一个virtualPC,装的是linux系统。又到网上找了一个Linux单网卡双IP的的配置。照着做:

引用:
#cd /etc/sysconfig/network-scripts
#cp ifcfg-eth0 ifcfg-eth0:1


并把内容改一下:

引用:
DEVICE=”eth0:1″
IPADDR=”192.168.0.1″
BROADCAST=”192.168.0.255″
NETMASK=”255.255.255.0″
ONBOOT=”yes”


重启一下网卡:
/etc/init.d/network restart

[提示] 用ifup eth0:1不起作用,ping不通。请用network restart

配置Linux的NAT和ip_forward: 这里我直接从网上找了一个scripts。非常好用。[code]#!/bin/sh
# Name: nat.sh
# Author: Bixuan
# Date: 2003/04/04

echo "Your user the iptables firewall.";
ETH="eth0" #有外网IP的网卡
SRC="192.168.0.0/24" # 内网地址段


case $1 in
start)
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F POSTROUTING -t nat
/sbin/iptables -P FORWARD DROP
/sbin/iptables -t nat -A POSTROUTING -o $ETH -s $SRC -j MASQUERADE
/sbin/iptables -A FORWARD -i $ETH -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -s $SRC -j ACCEPT
echo "Nat is strating ...... [ OK ]"
;;
stop)
echo 0 > /proc/sys/net/ipv4/ip_forward
;;
*)
echo $"Usage: $0 {start|stop}";
esac[/code]把上面的scripts存起来nat.sh执行一下
#chmod u+x nat.sh
#./nat.sh

再配置局域网的机器如下配置:

ip: 192.168.0.x
netmask: 255.255.255.0
gw: 192.168.0.1
dns: 你的dns,我是网通,我配的是202.106.0.20

测试机器连通:

ping 192.168.0.1
ping www.163.com

都正常的话,再打开firefox上网,一切OK. 操练结束。

[提示]:
如果是真实环境,linux有双网卡,那么设置eth0为外网IP,eth1为192.168.0.1的内网IP。如果你本机不一定,修改ETH=为你的外网网卡标识。 一般是eth0,eth1

虽然是成功配置好了,但是我对MASQUERADE和forward 那一句还是不理解,响应包的source然道是192.168.0.x? 不然网关怎么知道转给谁?
文章评论

共有 0 条评论