[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的命令行
  • lcdlls 这是切换本地目录的指令
  • cdls 这是切换远端目录的命令
  • get 远端文件名 本地文件名,就能够获取到文件,如果是get -R 则能获取到文件夹
  • put 本地文件名 远端文件名则是把文件上传到远端
  • 退出通过quit命令

但是sftp传输文件很慢,我这里只能跑到18MB/s,完全丧失了通过网线直连带来的速度优势,但是如果不缺时间的话,其实还是可以用的
这点应该是因为sftp对流量进行了加密什么的吧,也许有选项能够解决

FTP

ftp命令行操作

如果远端主机正好有ftp,那么可以通过ftp命令来获取文件

  • ftp 192.168.8.2 输入账号密码连接
  • bin 切换传输模式为二进制方式 (我不切好像有些问题)
  • cdls切换远端目录
  • 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;

posted @ 2022-10-23 13:22  Startu  阅读(328)  评论(0编辑  收藏  举报