LinuxSir.cn,穿越时空的Linuxsir!

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

(已解决)用iptables配置共享上网老是不能成功?

[复制链接]
发表于 2007-5-18 08:06:22 | 显示全部楼层 |阅读模式
我想用ittables来带局域网共享上网,总是不行

服务端
RHEL4  
两块网卡  
WAN---192.168.2.180----eth0   (由DHCP获取,IP-192.168.2.180  掩码:255.255.255.0)
LAN----192.168.10.1-----eth1   (手动设置,ip:192.168.10.1  掩码:255.255.255.0)
可以浏览Web页面

客户端
Win2000
192.168.10.*
ping 服务端LAN,是通的
ping 服务端 WAN 不通
也不能上网

谢谢roamingo,是我的客户机网关没设好,在八楼写出总结
请帮忙看看,问题出在哪里,先谢谢了?

我所做的是:
1.
ip_forward打开
vi /etc/sysctl.conf  将  net.ipv4.ip_forward=1
2.
nat脚本  /etc/rc.d/nat
也执行了 chmod u+x
内容如下(这个是修改论坛上的版友的)
#!/bin/bash
# define const here
Open_ports="80" # 自己机器对外开放的端口 80 web 25 smtp 110 pop3 #
Allow_ports="53 80 20 21" # internet的数据可以进入自己机器的端口

#init

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

# The follow is comment , for make it better
# iptables -P INPUT DROP

iptables -A INPUT -i ! eth0 -j ACCEPT

# define ruler so that some data can come in.

for Port in "$Allow_ports" ; do
iptables -A INPUT -i eth0 -p tcp -sport $Port -j ACCEPT
iptables -A INPUT -i eth0 -p udp -sport $Port -j ACCEPT

for Port in "$Open_ports" ; do
iptables -A INPUT -i eth0 -p tcp -dport $Port -j ACCEPT
iptables -A INPUT -i eth0 -p udp -dport $Port -j ACCEPT
done

# This is the last ruler , it can make you firewall better
# iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
# iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable

# define NAT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j MASQUERADE

3.
修改/etc/rc.local
在最后添加/etc/rc.d/nat

4.
重启

5.
iptables -L内容:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

6.
iptables -L -t nat内容:
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.10.0/24      anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

7.
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
192.168.10.0    *               255.255.255.0   U     0      0        0 eth1
169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
default         192.168.2.1     0.0.0.0         UG    0      0        0 eth0

我能想到的就这些信息
发表于 2007-5-18 08:30:07 | 显示全部楼层
你确定你的forward打开了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 08:47:11 | 显示全部楼层
确定
[root@nat fcitx-3.4.2]# cat /proc/sys/net/ipv4/ip_forward
1
[root@nat fcitx-3.4.2]#
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 10:21:20 | 显示全部楼层
客户机
ping eth1是通的
ping eth0(internet)不通
显示Destination host unreachable

现在不知道问题出在哪里
或者考虑的思路,解决问题从哪地方入手也不知道
请高手帮忙,谢谢
回复 支持 反对

使用道具 举报

发表于 2007-5-18 20:11:42 | 显示全部楼层
客户端的默认网关设了吗?不然的话,客户端不知道通过10.1可以出去。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 21:21:05 | 显示全部楼层
谢谢roamingo
没有设
有没有作用,我要等星期天才能去试试(这两天要出去一下)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-20 18:00:58 | 显示全部楼层
谢谢roamingo
的确是网关没有设
现在客户ping 服务端LAN WAN都是通的,
但是客户端还是上不了网
是DNS错误
我设成
192.168.10.1  (server : LAN ip)
192.168.2.180 (Server:  WAN ip)
192.168.0.104 (Server:   WAN DNS ip)
192.168.2.104 (Server:   WAN DNS ip)
都不可以

问一下,是不是服务端要设置DNS什么呀?怎么设?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-20 21:38:35 | 显示全部楼层
服务端
RHEL4
两块网卡
WAN---192.168.2.180----eth0
(由DHCP获取
IP-192.168.2.180
掩码:255.255.255.0 
网关:192.168.2.1
DNS:192.168.2.104
)

LAN----192.168.10.1-----eth1
(手动设置,
ip:192.168.10.1
掩码:255.255.255.0
网关:192.168.10.1

)
可以浏览Web页面


客户端
Win2000
ip--192.168.10.*
网关--192.168.10.1
DNS--192.168.2.104


iptables 脚本  /etc/rc.d/nat
vi编辑,并修改权限
chmod +x nat

脚本如下:
修改这个链接里的

echo "Enable IP Forwarding..."
## open ip_forward
echo 1 >/proc/sys/net/ipv4/ip_forward
## open modules
echo "Starting iptables rules..."
/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
## support PASV FTP
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
## support NETMEETING


## Flush the iptables
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat

## filter Table
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

## nat Table
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j MASQUERADE

将nat路径添加到启动文件
vi /etc/rc.d/rc.local

/etc/rc.d/nat

保存退出重启
回复 支持 反对

使用道具 举报

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

本版积分规则

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