通过网络发送文件的最简单方法


14

通过网络将文件发送到其他计算机的最简单,最通用的方法是什么?我的意思是其他人目前正在使用的计算机。如果计算机打开了活动会话,我认为SSH不起作用。

到目前为止,我正在使用netcat,它工作正常。但是还有其他简单的方法可以做到这一点吗?我netcat遇到的一个问题是,接收者需要知道文件的结尾,并且必须为流指定一个名称。


1
如果您想继续使用netcat,可以发送tar档案并即时提取。这样可以解决文件名问题,并且更加灵活。但最终我猜scp还是rsync比较容易的选择。
马可(Marco)

如何发送焦油并即时提取呢?
TomTom

1
我想那应该netcat hostname | tar -x在您要放置文件的目录中。
德米特里·格里戈列耶夫

Answers:


21

您使生活变得不必要了。使用scp

要将文件myfile从本地目录作为用户user 传输到计算机otherhost上的目录/ foo / bar,语法如下:。scp myfile user@otherhost:/foo/bar

编辑:值得注意的是,通过scp / SSH的传输是加密的,而通过netcat或HTTP的传输则没有加密。因此,如果要传输敏感文件,请始终使用前者。


我不需要scp该用户帐户的密码吗?
TomTom

当然是。您需要该帐户的密码user@otherhost
dr01 2015年

2
不,如果您使用公共密钥身份验证,则不需要密码
YoMismo 2015年

9
好的,如果您想挑剔,让我们声明您必须认证user@otherhost
dr01 2015年

1
另外,为简化起见,如果两台计算机上的用户名相同,则可以排除该用户名。不过,仍然会在适用时要求您输入密码。
Sildoreth 2015年

10

您也可以尝试

python -m SimpleHTTPServer 8180

它将通过HTTP在其中执行的目录中提供文件,您可以通过浏览器访问它。


或对性能不满意时使用darkhttpd。
TNW

1
对于Python 3 :python3 -m http.server <port>
dotancohen

有关此选项的更多信息,请参见此处:askubuntu.com/a/95607/42073
Segal-Halevi

谢谢!非常适合将某些文件添加到Windows测试系统上
QwertyChouskie

9

如果您满意,netcat可以通过引入解决文件名问题tar。这也简化了一次发送多个文件以及发送目录的过程。

在发送方使用:

tar cf - <files> | nc <host> <port>

在接收端:

nc -l <port> | tar x

另一种解决方案是使用rsyncscp


我通常也将-q2添加到发送netcat中,以使它在流的末尾关闭连接。
西蒙·里希特

我不明白为什么要这样做。不用-q选项,它会自动关闭。
马可(Marco)

这取决于您使用哪种netcat实现。有些实现仅在关闭stdin时关闭TCP流的一个方向,因为另一方向可能仍然处于活动状态。
Simon Richter

tar | ssh tar在scp下降并且rsync不可用的情况下,也可以很好地工作。
hobbs 2015年

2

当然,ssh如果另一个会话打开,则可以使用。你可以做

ssh user@host cat /path/to/file.tar  > localfile.tar

或者,复制到您的本地目录:

scp user@host:/path/to/file.tar .

是否有可能其他方式解决ssh lubuntu '>newfile.txt' <file.txt
heemayl 2015年

1
@heemayl是的,要将其编入远程文件,您可以这样做cat local.file | ssh user@host "cat > remote.file",或者ssh user@host "cat > remote.file" < local.file
terdon

0

如果两个主机都在同一局域网中,则可以使用woos

使用极其简单。

如果发送方和接收方在Internet上任何位置,并且您必须传输大文件,则应安装F * EX:http : //fex.belwue.de/index.html


1
基本的scp也非常简单,它是一种实际上已被数百万人分发,信任和使用的工具,这与由其作者推广的这些自制工具不同。
杰克·瓦西
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.