LinuxSir.cn,穿越时空的Linuxsir!

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

[已解决]一台拨号路由器,一台linux主机,一台台式机利用iptables实现共享上网的问题?

[复制链接]
发表于 2010-2-10 10:11:02 | 显示全部楼层 |阅读模式
路由器(192.168.0.1)通过PPPOE协议拨号连接外网(动态IP)
linux主机(eth1:192.168.0.2)通过设置网关(192.168.0.1)和DNS(8.8.8.8)可以实现上网,此外还有一个无线网卡(wlan0:192.168.1.123)我把它设置ad-hoc模式与台式机相连
台式机(192.168.1.124)利用无线网卡与linux主机相连,网关(192.168.1.123),DNS(192.168.0.1)
linux主机这边已经设置好route,台式机可以ping通路由。l

inux主机的iptables设置如下:
iptables -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

我现在思绪很乱,我不知道大家能不能看明白我的问题。我就是想让台式机通过linux主机共享上网。现在的情况是linux主机可以上网,客户机不行。希望大家能多交流一下,如何实现,多谢了。
发表于 2010-2-10 20:30:09 | 显示全部楼层
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j --to-source 192.168.0.2

客户机设置,
ip: 192.168.1.x
gw: 192.168.1.123
DNS: 随便
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-10 21:20:02 | 显示全部楼层
Post by sipingal;2068894
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j --to-source 192.168.0.2

客户机设置,
ip: 192.168.1.x
gw: 192.168.1.123
DNS: 随便


谢谢您的回复,好像语法有点问题是不是应该这样:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 192.168.0.2
回复 支持 反对

使用道具 举报

发表于 2010-2-10 22:03:04 | 显示全部楼层
对,我太大意了,没有测试,应该是这样的
  1. iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 192.168.0.2
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-10 22:21:01 | 显示全部楼层
Post by sipingal;2068933
对,我太大意了,没有测试,应该是这样的
  1. iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 192.168.0.2
复制代码


谢谢你兄弟,我已经设置了,不过打不开网页,只能显示网页的标题,但内容是空白的。不知道哪里出了问题。
回复 支持 反对

使用道具 举报

发表于 2010-2-10 22:57:35 | 显示全部楼层
多重nat**后网页空白的问题。不知道注意没,debian在pppoe拔号后会调整mss大小,参考 /etc/ppp/ip-up.d/0clampmss 文件的一句:
iptables -t mangle -o "$PPP_IFACE" --insert FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu

$PPP_IFACE要换成出口接口,试试在nat的机子运行。(我不肯定的,姑且试试。)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-10 23:08:52 | 显示全部楼层
Post by abby;2068956
多重nat**后网页空白的问题。不知道注意没,debian在pppoe拔号后会调整mss大小,参考 /etc/ppp/ip-up.d/0clampmss 文件的一句:

$PPP_IFACE要换成出口接口,试试在nat的机子运行。(我不肯定的,姑且试试。)


谢谢还是不行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-11 09:24:44 | 显示全部楼层
我猜想路径应该是这样
首先台式机(192.168.1.124)发出www(119.75.213.61)请求,由于不在同一个网段,那么这个包就被转到网关192.168.1.123,网关有nat转换,所以源地址是192.168.0.2,当www(119.75.213.61)接收到包以后要按路径返回,这时候源地址是192.168.0.2了,所以我觉得这个时候应该把源地址改成192.168.1.124,但是现在没什么好办法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-11 09:33:57 | 显示全部楼层
不知道这样行不行
iptables -A PREROUTING -nat -s 192.168.1/32 -o wlan0 -j DNAT --to 192.168.1.124
回复 支持 反对

使用道具 举报

发表于 2010-2-11 12:21:04 | 显示全部楼层
我不觉得是规则的问题,换个浏览器试试。
回复 支持 反对

使用道具 举报

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

本版积分规则

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