iperf错误:连接失败:没有到主机的路由

时间:2017-07-18 10:41:26

标签: ubuntu-16.04 iperf

我在2个不同的ubuntu系统上安装了相同版本的iperf(2.0.5)。 但是当我在一个系统上执行命令iperf -s -p 45678而在另一个系统上执行iperf -c 172.18.41.17 -p 458 -t 10时。它给我错误“连接失败:无主机路由”。

任何帮助都将不胜感激。

编辑:一个系统正在作为服务器工作,但同一个系统不能作为客户端工作。

6 个答案:

答案 0 :(得分:0)

有时,防火墙服务将阻止tcp连接的启动,请尝试通过在客户端和服务器“ service firewalld stop”中禁用防火墙服务来尝试

答案 1 :(得分:0)

默认情况下,iperf使用其ipv6 在服务器上运行

iperf -s -p -4 45678

在客户端运行

iperf -c 172.18.41.17 -p 458 -t 10 -4 

答案 2 :(得分:0)

尝试使用其他端口。我遇到了这个问题,但是当我尝试其他端口时,它正在工作。不过,我想知道原因。

服务器和客户端端口也应该相同

答案 3 :(得分:0)

如果网络中的链路延迟大于tcp连接超时值。然后,这可能会发生。因为SYN数据包不会在超时值内得到ACK。因此,iperf客户端将退出连接失败:没有到主机的路由

答案 4 :(得分:-1)

客户端上的netstat -rn可能会有所帮助。客户抱怨它没有路由,它的路由表可以帮助诊断原因。

答案 5 :(得分:-1)

var window: UIWindow?
var story : UIStoryboard?


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    UIApplication.shared.statusBarStyle = .lightContent

    window = UIWindow(frame: UIScreen.main.bounds)
    window?.makeKeyAndVisible()

    let lunchedBefore = UserDefaults.standard.bool(forKey: "lunchedBefore")

    if lunchedBefore {
        story = UIStoryboard(name: "TShopUI", bundle: nil)
        let rootcontroller = story?.instantiateViewController(withIdentifier: "LoginVC")
        if let window = self.window {
            window.rootViewController = rootcontroller
        }
    } else {

        UserDefaults.standard.set(true, forKey: "lunchedBefore")
        story = UIStoryboard(name: "TShopUI", bundle: nil)
        let rootcontroller = story?.instantiateViewController(withIdentifier: "MainVC")

        if let window = self.window {
            window.rootViewController = rootcontroller
        }

    }
    return true
}

这里你在端口号上启动了服务器。 45678.和

iperf -s -p 45678

对于客户端,您也应该使用相同的端口号。你在这里使用的是没有。 458.使其与服务器和测试相同。错误可能是因为端口号不匹配。