我经常需要通过家庭网络在计算机之间传输文件,但我发现 WiFi 传输并不是最好的选择。(捂脸)如果我有一根 CAT-5、5e 或 6 电缆,如何使用它将一台计算机直接连接到另一台计算机?如果 SSH 服务器正在运行,server
并且我client
使用 CAT-5 电缆直接在两者之间连接到服务器,那么我可以使用 SSH 传输文件吗?我需要做什么才能设置这样的功能?需要路由器吗?
答案1
如果至少有一台计算机的网卡支持自动交叉,则可以使用直连电缆连接两台计算机。(自动交叉,也称为“自动 MDIX”,是千兆以太网标准的一部分,但 100 Mbps 网卡通常也支持此功能。)否则,您将需要交叉电缆、集线器或交换机。
建立物理连接后,在操作系统中配置网络:
如果两端都有IPv6,您只需使用另一台计算机的链路本地地址; 例如,
ssh fe80::4a5d:60ff:fee8:658f%eth0
. (在 Linux 上,后面的字符串%
是您的以太网卡的名称,而 Windows 使用 中的数字接口 IDnetsh interface ipv6 show interface
。)您还可以手动添加较短的地址,例如
fc00::1
和fc00::2
(来自fc00::/7
网络)。为了仅限 IPv4主办方,手动分配 IP 地址来自同一子网 – 例如
10.0.0.1/8
和10.0.0.2/8
。某些操作系统会自动分配该
169.254.0.0/16
范围内的链路本地 IPv4 地址。
答案2
我建议你使用同步服务器以避免 ssh 的加密处理,这可能会给你带来更快的吞吐量,特别是在低速 CPU 上:
在“服务器”机器上,创建一个 rsyncd.conf 文件,其中包含以下内容:
[download]
comment = Storage general files
path = /home/user/Download
read only = false
write only = false
list = true
incoming chmod = Du=rwx,go=rx,Fu=rw,go=r
uid = user
gid = user
然后以“服务器”模式启动 rsync:
sudo rsync --daemon --config=rsyncd.conf --no-detach --log-file=/dev/tty
然后在客户端,接收:
rsync rsync://host/download/file-name local-file-name
或发送:
rsync local-file-name rsync://host/download/file-name
完成后,只需按 CTRL-C 即可启动服务器进程。
答案3
简短版本如下:
- 如果至少有一台计算机有千兆接口,或者其中一台支持 MDI/MDX,则无需路由器。插入普通 CAT5E 或更好的电缆。
- 如果两者都有 10/100mbit 卡,则使用交叉电缆或两根常规电缆和一个交换机。
接下来,将两台计算机配置为位于同一子网并设置路由。(请参阅我们的姊妹网站:IPv4 子网划分是如何工作的作为背景)。
您没有提到您正在使用哪个操作系统,但假设一个类似 UNIX 的操作系统:
- 计算机 1:ifconfig em0 192.168.0.1 netmask 255.255.255.0(将 em0 替换为接口名称)。
- 计算机 2:ifconfig em0 192.168.0.2 netmask 255.255.255.0
现在两个网卡都配置为同一个 LAN。 - 您的操作系统可能会“自动”添加本地网络的路由。如果没有,
route add -net 192.168.0.0 mask 255.255.255.0 192.168.0.1
请在计算机 1 上使用。在计算机 2 上使用route add -net 192.168.0.0 mask 255.255.255.0 192.168.0.2
使用 ping 测试连接或使用 scp 进行复制。
(客户端:〜homedir> scp myfile 192.1.68.0.2:Destination_folder
)
答案4
您要么必须在服务器 (S) 上设置与常用网络的桥接,然后将客户端 (C) 连接到所述网络(IP 方式),要么使用自定义子网。后者非常简单(eth0 是客户端和服务器上连接的接口):
C # ip addr add 10.0.1.2/24 dev eth0
S # ip addr add 10.0.1.1/24 dev eth0
此时,C # ping 10.0.1.1
应该可以正常工作。如果 S 上的 SSH 服务器配置为侦听所有接口(即0.0.0.0
),则您应该已准备就绪,否则您必须让它在那里侦听(通过调整/etc/ssh/sshd_config
)。
如果您没有获得预期的速度,请确保(通过ethtool eth0
)已正确检测到连接速度。您可以使用相同的工具进行更改。