QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2368|回复: 28

单网卡局域网共享求助

[复制链接]
发表于 2003-5-15 21:06:52 | 显示全部楼层 |阅读模式
本寝室有3台机器,我做主机,单网卡,PPPoE拨号上网,三台机器接在hub上,PPPoE的线接在hub的uplink上面,这样任何人都可以拨号。

这在windows下面没有问题,windows把pppoe的虚拟连接也看作和一块网卡一样的单独的物理连接,但是在Linux下面却不行,我不知道要怎么改nat段,尝试了很多,都失败了。

我的PPPoE拨号是这样的,windows下拨号会随机分配到一个218.80.xxx.xxx的IP,掩码是255.255.255.255,网关就是自己的IP,而我的网卡指定IP 192.168.0.5,掩码255.255.255.0,同学都是192.168.0.xxx,我要让他们通过我的机器做的网关上网,nat段改怎么写?
发表于 2003-5-16 08:33:23 | 显示全部楼层
你试试看
echo 1 >/proc/sys/net/ipv4/ip_forward

modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
回复

使用道具 举报

发表于 2003-5-16 08:43:57 | 显示全部楼层
我看这可能性不大,我又想了一下。拨号比需要一个物理网卡。共享的话也必须要一个物理网卡。虚拟的不可能。因为。如果你设置了不同的IP绑定到一个mac地址,这样就会出现错误,现在网卡那么便宜。你ADSL都买了。30元钱的网卡难道不能再买一个嘛?最好买8139C的,兼容性高点:)
谢谢,希望对你有帮助
回复

使用道具 举报

发表于 2003-5-16 09:27:45 | 显示全部楼层
可以实现,

先用以下命令
ifconfig eth0:0 192.168.0.x 255.255.255.0

使它起作用。

最好写入文件,
在/etc/sysconfig/network-scripts/下面仿照你的ifcfg-eth0建一个ifcfg-eth0:0
回复

使用道具 举报

发表于 2003-5-16 14:40:55 | 显示全部楼层
[quote:0d14b9b9f9="tjgs"]可以实现,

先用以下命令
ifconfig eth0:0 192.168.0.x 255.255.255.0

使它起作用。

最好写入文件,
在/etc/sysconfig/network-scripts/下面仿照你的ifcfg-eth0建一个ifcfg-eth0:0[/quote]

你成功过吗????
我也很想知道行不行。理论上不行
回复

使用道具 举报

 楼主| 发表于 2003-5-18 20:43:29 | 显示全部楼层
[quote:89623994a0="ttii"]我看这可能性不大,我又想了一下。拨号比需要一个物理网卡。共享的话也必须要一个物理网卡。虚拟的不可能。因为。如果你设置了不同的IP绑定到一个mac地址,这样就会出现错误,现在网卡那么便宜。你ADSL都买了。30元钱的网卡难道不能再买一个嘛?最好买8139C的,兼容性高点:)
谢谢,希望对你有帮助[/quote]
我不是缺钱买网卡,而是我不想用两块网卡。
回复

使用道具 举报

发表于 2003-5-18 22:30:04 | 显示全部楼层
我设置了一个虚拟网卡eth0:1
ip为192.168.1.1,netmask为255.255.255.0
结果我有一部分网站我连不上了
禁用后,我就可以连上了
不知道这是什么原因
大家能帮我解释一下吗
回复

使用道具 举报

发表于 2003-5-19 09:23:39 | 显示全部楼层
可以实现,没有问题的。

至于为什么你有一部分网站连不上,你不妨仔细查一下nat段是否设置正确.
回复

使用道具 举报

发表于 2003-5-19 11:38:37 | 显示全部楼层
iptables的配置是系统默认的,内容如下
*filter
:INPUT ACCEPT [0]
:FORWARD ACCEPT [0]
:OUTPUT ACCEPT [0]
:RH-Lokkit-0-50-INPUT - [0]
-A INPUT -j RH-Lokkit-0-50-INPUT
-A FORWARD -j RH-Lokkit-0-50-INPUT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth0 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 0/0 --sport 67:68 -d 0/0 --dport 67:68 -i eth1 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT
-A RH-Lokkit-0-50-INPUT -i eth0 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s xxx.115.64.33 --sport 53 -d 0/0 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s xxx.115.64.34 --sport 53 -d 0/0 -j ACCEPT
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --syn -j REJECT
-A RH-Lokkit-0-50-INPUT -p udp -m udp -j REJECT
COMMIT
参照文章
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=3632
的配置,我成功的开启了DHCP服务
也就是说我用那个虚拟网卡做DHCP服务的网关
//////////////////////////////////////////////////////
eth0:1的配置如下
ip: 192.168.1.1 subnet-mask: 255.255.255.0
路由: 0.0.0.0, 0.0.0.0, 我的公网IP/我的网关(这两种情况我都试过了)
///////////////////////////////////////////////////////
dhcpd.conf内容如下:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers dns.my.net;
option time-offset -18000;
range dynamic-bootp 192.168.1.2 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
}
//////////////////////////////////////////////////////////
别人可以自动获取ip,但是不能连到局域网外
请问我还需要配置什么?
回复

使用道具 举报

发表于 2003-5-20 09:38:37 | 显示全部楼层
要连到网外的话,在主机上作一下数据转发。
回复

使用道具 举报

发表于 2003-5-20 09:43:41 | 显示全部楼层
TO: tjgs
我现在只有把虚拟网卡禁用才能连到外网
你需要知道什么就尽管说吧
#route -n显示结果如下
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
xxx.xxx.80.0     0.0.0.0         255.255.252.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         xxx.xxx.80.251   0.0.0.0         UG    0      0        0 eth0
0.0.0.0         xxx.xxx.80.251   0.0.0.0         UG    0      0        0 eth0
0.0.0.0         xxx.xxx.80.251   0.0.0.0         UG    1      0        0 eth0

其中xxx.xxx.80.251为我的公网的网关
#
# iptables -t nat -L -n结果如下
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
回复

使用道具 举报

发表于 2003-5-20 09:56:27 | 显示全部楼层
我早就把/etc/sysctl.conf中的net.ipv4.ip_forward设置成1了
回复

使用道具 举报

发表于 2003-5-20 11:05:53 | 显示全部楼层
如果我启动后再激活eth0:1
但不运行/etc/rc.d/init.d/network restart的话
我可以正常上网,客户机也可以自动获取IP,但客户机仍不能连到外网
此时route -n显示的结果如下:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
xxx.xxx.80.0     0.0.0.0         255.255.252.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         xxx.xxx.80.251   0.0.0.0         UG    0      0        0 eth0

按文章
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=3632
的说法,iptables里应该配置一下
但我不知道该怎么配置
望指教!!
回复

使用道具 举报

发表于 2003-5-20 14:58:30 | 显示全部楼层
启用你的eth0:1

然后加入以下规则

modprobe ip_conntrack_ftp

iptables -F
iptables -F -t nat

iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
回复

使用道具 举报

发表于 2003-5-21 18:20:47 | 显示全部楼层
好像还是没什么用啊
如果route -n显示的结果没有最后的两行
0.0.0.0 xxx.xxx.80.251 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 xxx.xxx.80.251 0.0.0.0 UG 1 0 0 eth0
的话,我就可以正常上网了
iptables应该不是关键吧?
顺便问一下,你自己测试过吗?
不是不相信你,实在是忙了太长的时间而一直都是那样
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-15 06:05 , Processed in 0.066941 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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