ascp:Failed to open TCP connection for SSH, Exiting.
使用IBM的aspera传输出现的问题:
服务器方面:
1:打开防火墙对33001端口的限制:
命令如下:
iptables -I INPUT -p tcp –dport 33001 -j ACCEPT
iptables -I OUTPUT -p tcp –dport 33001 -j ACCEPT
2:ssh的端口号增加33001
sudo vi /etc/ssh/sshd_config
代码层面:
php运行exec();
转发到了liunx去执行,当命令没有设置超时时间时会一直挂在后台,
还有aspera默认最多同时上传3个文件
所以需要在命令执行时加个超时时间,到了超时时间kill掉这个进程
此为上传时执行的命令示例:
timeout -k 1 10表示命令最多运行10s,如10s后未运行结束表示超时,在超时1s后强制把进程杀死
-T: 取消加密,否则有时候数据下载不了
-k: 断点续传,一般设置为值1
-o:Use the specified UDP port for FASP transfers. (Default: 33001)
–overwrite=always
-l:最大传输速度:500M,根据实际带宽填写
参数命令官方地址:https://www.ibm.com/docs/en/aci/3.9.2?topic=ascp-command-reference
$aspera_exec = "timeout -k 1 10 /Users/zhouxiaokun/Applications/Aspera/bin/ascp -P 33001 -T -k 0 -o Overwrite=always -l 500m -i /Users/zhouxiaokun/Desktop/code/backend/storage/app/26/2/78/aspra/44/ee71d3b0519011eca04500163e1a34f6.key /Users/zhouxiaokun/Desktop/code/backend/README.md asp-8sianaffiliate@asia.aspera.googleusercontent.com:/staging/distributions/863/ccATjCiRQU9UtBTgh6XjXZRVM5shVrMx/ 2>&1";
Log::debug($aspera_exec);
exec($aspera_exec, $output, $status_code);
Log::info('execStatusCode:'.$status_code);
Log::info($output);
dd($status_code, $output);
参考解决问题地址:
https://stackoverflow.com/questions/59763831/aspera-error-ascp-exe-failed-to-open-tcp-connection-for-ssh-exiting
https://www.jianshu.com/p/df34b99cbd43
https://blog.csdn.net/wzygis/article/details/112666514