LinuxSir.cn,穿越时空的Linuxsir!

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

(已解决)请教DEBIAN + WIN XP通过ADSL共享上网的问题

[复制链接]
发表于 2008-12-4 23:03:51 | 显示全部楼层 |阅读模式
网络拓扑是这样的:
两台机器,一台使用WIN XP,一台使用DEBIAN,都是用的单网卡,连接到一台小型的D-link交换机,交换机再连接到ADSL猫。
请教一种方法:
WIN XP可以通过DEBIAN连接因特网,前提是不改变现有的硬件配置,比如把交换机换成路由器、增加网卡等等。能否在DEBIAN上面通过软件设置达到这个目的?
发表于 2008-12-5 09:31:58 | 显示全部楼层
网上找找单网卡nat,有人试过的。我在VM虚拟机下怎么试也不成功
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-5 11:30:25 | 显示全部楼层
谢谢楼上的,我找找看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-5 23:24:15 | 显示全部楼层
我的问题已经解决了,谢谢icatman的提示。
下面说说我的解决过程。

(google是个不错的工具)
在google里面输入关键词: debian 和 单网卡nat,就会出现很多办法。

其中一个办法是:http://hiei.yeax.com/archives_10.html
   真是太简单了。。。
   原来网卡设置了IP和网关等参数,可以正常上网了。如果别的机器需要通过这台机器上网,只要运行下面的命令就可以了。

ifconfig eth0:1 192.168.1.22
echo 1 > /proc/sys/net/ipv4/ip_forward

其中 192.168.1.22 和其他内网的机器IP段相同。然后其他机器设置网关为 192.168.1.22, dns服务器随便找一个可用的就行了。

这个办法看上去十分的简单,但是我没有成功。

下一个办法是成功的:http://www.linuxdiyf.com/bbs/thread-18507-1-1.html
1。修改/etc/network/interfaces设置局域网地址
代码:
        auto eth0
        iface eth0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        dns-nameservers *.*.*.* (此处根据当地ISP提供的设定) (我在重庆,所以我设置的是61.128.128.68 --southcross)

2.修改localnet,    将/etc/networks中的localnet设定为192.168.0.0

    如:localnet 192.168.0.0

3.修改/etc/network/options中的ip_forward=yes (我的机器里面就没有options这个文件,但是我用vi自己创建了一个,里面只有ip_forward=yes --southcross注)

4.设置iptables做NAT转换,敲入下列命令
代码:
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
(以上代码需仔细录入 --southcross注)

5。将iptables规则导出至任意目录,如:/opt/
代码: iptables-save > /opt/ip.roules6.再次编辑/etc/network/interfaces,在iface eth0 inet static中加入
代码: pre-up iptables-restore < /opt/ip.roules一行,以便开机自动执行!



把xp的网络地址设置到192.168.0.0/24 网段就可以了,现在我发的帖正是通过debian主机在win xp上面完成。
(本来我都打算明天去买路由器来解决这个问题,这下子可以节省一笔银子了,^_^)
回复 支持 反对

使用道具 举报

发表于 2008-12-8 16:17:17 | 显示全部楼层
复制内容到剪贴板???
lz转帖也要稍微编辑一下吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-8 22:47:11 | 显示全部楼层
Post by wblue;1921038
复制内容到剪贴板???
lz转帖也要稍微编辑一下吧?



对不起,不好意思,转的时候疏忽了。
对这个问题感兴趣的朋友可以到原帖去看看
http://www.linuxdiyf.com/bbs/thread-18507-1-1.html

我还想对这个问题补充一下。
其实我照这种方法做了之后,我发现重启之后不仅XP不能上网了,而且连debian也不能上网了(我保证PPP0是正常的),后来我发现是
pre-up iptables-restore < /opt/ip.roules
这句代码的原因,因为我是个菜鸟,我也不知道原因何在,我把这句代码删除之后debian就能上网了。
可是这样又回到原来的问题上了,XP又不能上网了。

得到一个朋友的指教后,他教了我一个简单点的办法
就是用vi把那段很长的代码做成一个文件,如natconfig之类的
然后 chmod 777 natconfig
以后每次重启debian之后,如果要让XP也能上网,就要先运行natconfig。
当然他也给我讲了开机自启动这些代码的方法,但是我比较菜,觉得这个办法也不算太费事,就先将就着用了。
大侠不要见笑。
回复 支持 反对

使用道具 举报

发表于 2008-12-9 22:06:45 | 显示全部楼层
直接安装ipmasquade这个软件包,它修改默认的ip规则,使系统允许NAT
回复 支持 反对

使用道具 举报

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

本版积分规则

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