[Linux] 无显示器 无键盘 网线直连传输文件
有显示器可以操作
这种情况下要简单的多,基本思想是,网线直连之后让其中一方当作网关,分配好ip地址,比如说192.168.8.1
,网关也是192.168.8.1
即可,如果要填写子网掩码就写255.255.255.0
另外一端则设置ip为 192.168.8.2
,然后网关是192.168.8.1
即可
在192.168.8.2
这台机器上可以ping 192.168.8.1
,能通过表示已经直连上了(如果对端开了防火墙不一定能ping
通)
这种方式对于windows和linux来说都是可行的
无显示器网线直连传输文件
但是我这次遇到的问题是这样的。
我的文件都存放在一个arm主机上,这个arm主机只有一个网口,不能输出显示,也没有wifi,现在我想把文件传到nuc主机上。
因为arm主机只有一个网口,没有wifi,也就是说于我把他和nuc直连之后就没办法控制它了。所以,我的方案是这样的。
NUC安装dhcp服务
sudo apt install isc-dhcp-server
安装dhcp服务器sudo vim /etc/default/isc-dhcp-server
打开它的配置文件
设置INTERFACESv4="enp89s0"
这个网卡应该是有线网卡的名字,通过ifconfig
查看到sudo vim /etc/dhcp/dhcpd.conf
打开配置文件
然后找到配置文件中关于子网的配置subnet
的这一项,默认是注释的,可以参照下面的方式修改,
subnet 192.168.8.0 netmask 255.255.255.0 {
range 192.168.8.2 192.168.8.3;
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
option subnet-mask 255.255.255.0;
option routers 192.168.8.1;
option broadcast-address 192.168.8.33;
default-lease-time 600;
max-lease-time 7200;
}
然后 systemctl restart isc-dhcp-server
,再插拔一下网线,arm主机应该就能获取到IP地址了,而且大概率是192.168.8.2
传输文件
既然已经连接上了,那么用什么方式传输文件都是可以的,简单说两种
SFTP
这种方式不需要安装,非常方便
sftp root@192.168.8.2
输入密码,进入sftp的命令行lcd
、lls
这是切换本地目录的指令cd
、ls
这是切换远端目录的命令get 远端文件名 本地文件名
,就能够获取到文件,如果是get -R
则能获取到文件夹put 本地文件名 远端文件名
则是把文件上传到远端- 退出通过
quit
命令
但是sftp传输文件很慢,我这里只能跑到18MB/s
,完全丧失了通过网线直连带来的速度优势,但是如果不缺时间的话,其实还是可以用的
这点应该是因为sftp
对流量进行了加密什么的吧,也许有选项能够解决
FTP
ftp命令行操作
如果远端主机正好有ftp,那么可以通过ftp命令来获取文件
ftp 192.168.8.2
输入账号密码连接bin
切换传输模式为二进制方式 (我不切好像有些问题)cd
、ls
切换远端目录get
指令下载,put
上传,这点和sftp
一样
通过ftp基本上能达到最大速度,但是最大的问题是:它不能直接get
目录!难以置信
wget 下载文件
执行命令
wget ftp://192.168.8.2/ftp/data/* --ftp-user=root --ftp-password=123456 -r
就能把文件夹都下载下来
可能遇到的问题
我的arm主机可能供电有点拉跨3.5寸机械硬盘老实停摆,导致ftp有时候速度突然就没了,传输大文件的时候可能会中断
那么可以通过以下命令每三秒读一下硬盘
while [[ 1 ]]; do dd if=/dev/sda of=/dev/null bs=8k count=10 iflag=direct; sleep 3; done;