我在2个不同的ubuntu系统上安装了相同版本的iperf(2.0.5)。
但是当我在一个系统上执行命令iperf -s -p 45678
而在另一个系统上执行iperf -c 172.18.41.17 -p 458 -t 10
时。它给我错误“连接失败:无主机路由”。
任何帮助都将不胜感激。
编辑:一个系统正在作为服务器工作,但同一个系统不能作为客户端工作。
答案 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.使其与服务器和测试相同。错误可能是因为端口号不匹配。