有两台linux服务器,一台ubuntu13,一台fedora20,我想用iperf命令测试下两台机器之间的带宽。两台机器已经经过配置保证可以相互ping通。试着在ubuntu上运行iperf客户,fedora上运行iperf服务器,但是每当ubuntu运行iperf后都会显示:connect failed: Permission denied。
    开始以为是地址什么的写错了,但是检查n遍后发现地址没有错。同时如果在ubuntu上同时运行客户和服务器就没有问题,可见这个问题跟iperf命令本身包括写法都是没有关系的。之后我决定抓个包看看。抓包的结果让我很是惊讶,问题其实不在ubuntu而在fedora,因为fedora已经收到了ubuntu发来的tcp请求包,但是fedora回复ubuntu说destination unreachable:unreachable prohibited。很显然是fedora把ubuntu的包给拒绝了,而拒绝的理由是目的地址禁止使用。看来应该是fedora上的防火墙在作怪。
    于是我决定想办法关闭fedora防火墙。我先是关闭了selinux,又尝试关闭iptables,但是执行service iptables stop后却提示关闭失败。我也懒得找原因了,就干脆直接iptables -F清空规则,话说这fedora20下的默认iptables规则可真不少。之后试了还是不行。我就想是不是iptables没有真正关闭。之后到网上查了后发现fedora20下除了iptables之外还有一个专门的防火墙服务叫做firewalld,它是一个“动态的防火墙服务”,与iptables的关系可以用一下官网上的话来描述:
If you want to use your own static firewall rules with the iptables and ip6tables services, install iptables-services and disable firewalld and enable iptables and ip6tables
    看出来了吧,firewalld的配置和iptables是相互独立的,所以我之前使劲关闭iptables自然也是没有用的。发现这点后赶紧关了这个万恶的firewalld,果然iperf工作了。
    这次的经验是,网上的很多解决问题的经验方法是可取的,只是网友的环境可能与你的环境不同,所以网友的步骤到你这也可能需要更改。所以切忌照搬网友的步骤然后出错就直接否定网上的方法,而应该尝试根据自己的环境修正网上的步骤,如果最后实在不行再尝试别的方法。
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐