LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1053|回复: 11

gentoo下单网卡怎么共享上网?(已解决,内有解决方案)

[复制链接]
发表于 2006-6-22 22:13:47 | 显示全部楼层 |阅读模式
gentoo系统,电信adsl,单网卡,一台交换机,没有路由功能,到底要怎么做才能让另一台机器上网。这两天参考了许多人的方法,但就是不行,弄得我的头都快炸了。
还请知道的人不吝指教,在这里先说声谢谢了
--------------------------------------
--------------------------------------
花了一天时间,自己解决了,下面是我用的办法,设定很简单,不过安全性不在考虑范围之内(反正也是个人用,linux够安全了)
总结一下我的设定和步骤,需要的人可以根据自己的情况更改

***服务端设定如下:
首先是/etc/conf.d/net
config_eth0=("192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255")
然后重新启动,拨号,
接着给网卡绑定另一个IP地址:
ifconfig eth0:0 192.168.0.1
最后执行下面的脚本:
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -F
/sbin/iptables -F
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

***客户端
注意:因为服务端没有安装dns服务,所以客户端dns应该设成本地ISP运营商(我的是电信)的dns,也就是配置rp-pppoe时输入的dns。
网关设为192.168.0.1,子网掩码:255.255.255.0,ip:192.168.0.x

大功告成!!!

如果有人能帮我完善一下那就感激不尽了。
发表于 2006-6-22 22:17:52 | 显示全部楼层
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -j MASQUERADE

这样可以允许IP为192.168.0.1-192.168.0.254的使用,根据自己需要改下就行了
回复 支持 反对

使用道具 举报

发表于 2006-6-22 22:18:49 | 显示全部楼层
网线都插到交换机上。在 gentoo 里面给网卡配置两个网络地址 A , B。 把 A 当成外网地址, B 当成内网地址,用 iptables 配置就可以。
回复 支持 反对

使用道具 举报

发表于 2006-6-23 08:16:25 | 显示全部楼层
只有一台交换机,没有路由器,而且只有一个网卡,能共享上网?
回复 支持 反对

使用道具 举报

发表于 2006-6-23 08:26:26 | 显示全部楼层
看Theseus的回答,似乎关键在于给网卡配俩个IP地址,没试过,不过觉得很有趣。
回复 支持 反对

使用道具 举报

发表于 2006-6-23 08:53:53 | 显示全部楼层
就算能给一个网卡配两个IP也不能在一个网卡上插两跟网线吧。呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-23 09:01:09 | 显示全部楼层
在网上找了一篇文章:
《《《《《《《《《《《《《《《《《
        xiaosuo.cublog.cn
单网卡网关脚本
此脚本针对于只有一个网卡,还需将此台Linux主机作为网关,代理其它处于同一个网段内的主机上网,效率应该没有双网卡高,但是作为应急还是不错的。
#!/bin/bash

IPTABLES=/sbin/iptables
IFCONFIG=/sbin/ifconfig
MODPROBE=/sbin/modprobe

if [ $# -lt 1 ]; then
        echo Usage $0 GatewayIP
        exit
fi
GATEWAYIP=$1

echo -n Setup network card ...
public_ip=`ifconfig eth0 | sed -n 's/\([ \t]*\)inet addr:\([^ \t]*\)\(.*\)/\2/p'`
$IFCONFIG eth0:1 $GATEWAYIP netmask 255.255.255.0
[ $? -eq 0 ] || exit
echo OK

echo Load necessary modules
MODULEPATH=/lib/modules/`uname -r`/kernel/net/ipv4/netfilter
KERNELMAJOR=`uname -r`
KERNELMAJOR=${KERNELMAJOR%%-*}
left=${KERNELMAJOR#*.}
left=${left#*.}
left=".$left"
KERNELMAJOR=${KERNELMAJOR%$left}
if [ -d $MODULEPATH ]; then
        for i in $MODULEPATH/ip_nat_*; do
                if [ "X$KERNELMAJOR" = "X2.6" ]; then
                        i=${i%.ko}
                else
                        i=${i%.o}
                fi
                i=${i##*/}
                echo -n Load module $i ...
                $MODPROBE $i
                [ $? -eq 0 ] || exit
                echo OK
        done
fi

echo -n Allow forwarding ...
echo 1 > /proc/sys/net/ipv4/ip_forward
[ $? -eq 0 ] || exit
echo OK

echo -n Set default rules ...
$IPTABLES -P FORWARD DROP &&
$IPTABLES -F FORWARD &&
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT &&
$IPTABLES -t nat -F POSTROUTING
[ $? -eq 0 ] || exit
echo OK

while read ip ; do
        echo -n Allow $ip ...
        $IPTABLES -A FORWARD -s $ip/32 -j ACCEPT &&
        $IPTABLES -t nat -A POSTROUTING -s $ip/32 -j SNAT --to-source  $public_ip
        [ $? -eq 0 ] || exit
        echo OK
done < /etc/iplist.conf
应有此脚本的条件是你的Linux主机需要打开NAT支持,并且安装有iptables用户空间软件。接下来你只要把你需要代理的机器的IP加入到/etc/iplist.conf就行了,一行一个ip地址。
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
然后运行上面的脚本:
gateway.sh 192.168.0.1
享受上网吧,就这么简单。
》》》》》》》》》》》》》》》》》》》
我的服务端设定如下:
-----/etc/conf.d/net:
config_eth0=("192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255")
重新启动后,运行脚本,提示成功,但我另一台机器无论如何都上不去,大家看看我有什么地方弄错了
-----ifconfig显示:
eth0      Link encap:Ethernet  HWaddr 00:E0:1F:0F:23:60
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2389 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2168 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2105068 (2.0 Mb)  TX bytes:264285 (258.0 Kb)
          Interrupt:10 Base address:0x2000

eth0:1    Link encap:Ethernet  HWaddr 00:E0:1F:0F:23:60
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1875 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1850 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2016250 (1.9 Mb)  TX bytes:210751 (205.8 Kb)
          Interrupt:10 Base address:0x2000

lo        Link encapocal Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

ppp0      Link encapoint-to-Point Protocol
          inet addr:220.187.107.113  P-t-P:61.174.85.34  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:1875 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1850 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:2016250 (1.9 Mb)  TX bytes:210751 (205.8 Kb)
-----route显示:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
61.174.85.34    *               255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
default         61.174.85.34    0.0.0.0         UG    0      0        0 ppp0

另一台机器:windowsxp
IP:192.168.0.3
子网掩码:255.255.255.0
网关:192.168.0.1
DNS:192.168.0.1  //也试过当地电信的DNS,也就是/etc/resolv.conf里的两个
ip地址可以相互ping通,但就是上不了网


若是让windowsxp做主机就太简单了,为何linux这么难
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-23 09:08:12 | 显示全部楼层
其实这里也有指南:
http://linux-vbird.3322.org/linux_server/0320nat.htm#client
但我就是整不好,不过一块网卡应该是可以的
回复 支持 反对

使用道具 举报

发表于 2006-6-23 09:35:12 | 显示全部楼层
他有交换机啊,不需要插两根线
回复 支持 反对

使用道具 举报

发表于 2006-6-23 10:17:51 | 显示全部楼层
电脑做个网关,加NAT应该就可以了吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表