LinuxSir.cn,穿越时空的Linuxsir!

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

iptables 怎放行QQ和aMule?

[复制链接]
发表于 2009-7-17 17:11:36 | 显示全部楼层 |阅读模式
RT,现在QQ登不上,aMule完全没速度。
我的是个人电脑ADSL上网,

规则如下:

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:www
ACCEPT     udp  --  anywhere             anywhere            udp spt:domain
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:4662
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:4672
ACCEPT     udp  --  anywhere             anywhere            udp spt:4662
ACCEPT     udp  --  anywhere             anywhere            udp spt:4672
DROP       icmp --  anywhere             anywhere            
ACCEPT     udp  --  anywhere             anywhere            udp spt:8000
ACCEPT     udp  --  anywhere             anywhere            udp spt:433
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:433
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:8000

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  


PS,
aMule的标准用户TCP端口为4662,扩展用户UDP端口4672;
QQ官方说QQ for Linux 需要打开433,8000,80端口,我难道没开?
发表于 2009-7-28 15:07:55 | 显示全部楼层
你执行一下iptables -L -n看一下你的防火墙规则
回复 支持 反对

使用道具 举报

发表于 2009-8-18 20:19:46 | 显示全部楼层
楼主你的设置有问题。
控制能否访问外部服务是最好设置在OUTPUT链上,这样从逻辑上比较容易理解。
INPUT链一般是用来控制别人访问你本机的服务的,让它人无法访问你其它端口。

所以,你应该在OUTPUT链路设置 访问外部DPORT 8000的可以放行,不过这样的话比较麻烦,默认设置为DROP的话,还需要放行外部80端口等一些常用端口的访问。

每次访问外部你的用户进程都会启动一个随机的端口,去和外部服务器建立链接,当外部服务器给你的用户进程发来数据包,目标地址都是一个随机地址,你没法把随机地址一个个的加上去,所以需要加上一句。
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
这样的话,iptable会自动去看哪些端口是去和外部服务器建立链接的,并且放行。

通过以下命令,就能看到进程启用的哪个端口去访问外部端口,你可以多启动几次QQ去查看是否是一个随机端口。
$ netstat -anp | grep qq

tcp        0      0 0.0.0.0:33060                 0.0.0.0:*                            LISTEN      5843/qq            
tcp        0      0 127.0.0.1:33060             127.0.0.1:45857             ESTABLISHED 5843/qq            
tcp        0      0 127.0.0.1:45857            127.0.0.1:33060        ESTABLISHED  5843/qq            
udp        0      0 192.168.2.127:6563          58.60.14.44:8000            ESTABLISHED 5843/qq
回复 支持 反对

使用道具 举报

发表于 2009-12-22 23:49:56 | 显示全部楼层
Post by N596;2007105
RT,现在QQ登不上,aMule完全没速度。
我的是个人电脑ADSL上网,

规则如下:

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:www
ACCEPT     udp  --  anywhere             anywhere            udp spt:domain
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:4662
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:4672
ACCEPT     udp  --  anywhere             anywhere            udp spt:4662
ACCEPT     udp  --  anywhere             anywhere            udp spt:4672
DROP       icmp --  anywhere             anywhere            
ACCEPT     udp  --  anywhere             anywhere            udp spt:8000
ACCEPT     udp  --  anywhere             anywhere            udp spt:433
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:433
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:8000

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  


PS,
aMule的标准用户TCP端口为4662,扩展用户UDP端口4672;
QQ官方说QQ for Linux 需要打开433,8000,80端口,我难道没开?
ACCEPT udp -- anywhere anywhere udp spt:8000
ACCEPT tcp -- anywhere anywhere udp spt:8000

老大,,8000是服务器端口。本地端口是4000开始排序
iptables -A OUTPUT -p tcp --dport 8000 -j ACCEPT
iptables -A OUTPUT -p udp --dport 8000 -j ACCEPT
回复 支持 反对

使用道具 举报

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

本版积分规则

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