SCP
什么是SSH?
- Secure Shell的缩写,可以通过网络登陆远程系统。需要在远程系统安装SSH服务,在本地系统安装SSH客户端。
为什么要使用SSH
解决如下问题:
- 使用或者维护不在本地的Linux主机;
- 使用或者维护嵌入式Linux产品,不方便接调试串口;
- 在远程机器和本地机器之间进行文件传输。
SSH操作与示例:
- linux查看ssh服务的常用命令
$ 4rpm -qa | grep ssh //可以看到系统中ssh安装包
$ ps -ef | grep ssh // 查看ssh服务有没有运行,如果有,可以看到类似以下内容:
$ root 2659 1 0 18:31 ? 00:00:00 /usr/sbin/sshd
$ root 2702 2618 0 18:38 pts/0 00:00:00 grep ssh
如果没有运行,可以通过以下命令运行之:
$ service sshd start
查看ssh服务的网络连接情况:
$ netstat -ntlp
如果看到如下内容:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
这说明sshd已经能够正常工作了,如果利用客户端(SecurCRT,putty等)连接不上, 尝试关闭防火 墙试试 : service iptables stop
SSH配置与调试
- 安装SSL服务器(主机)
$ sudo apt install openssh-server
- 克隆你的虚拟机(服务端)
- SSH安装服务器端(server)
sudo apt install openssh-server
- IP设置方式:
$ sudo ifconfig eth0 192.168.1.128
-
bug
Command 'ifconfig' not found, but can be installed with:sudo apt install net-tools
-
安装网络配置工具
$ sudo apt install net-tools
- bug!
SIOCSIFADDR: No such device
eth0: ERROR while getting interface flags: No such device
- 查看所有网卡
$ ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.128 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::9dcf:c37c:7fac:ba36 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:38:3c:9b txqueuelen 1000 (Ethernet)
RX packets 18027 bytes 14133887 (14.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12010 bytes 2438066 (2.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2779 bytes 308155 (308.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2779 bytes 308155 (308.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 发现没有eth0这个网卡,有ens33,输入:
sudo ifconfig ens33 192.168.1.128
- windows下测试,关闭网络,打开cmd命令行,输入ping命令进行测试
> ping 192.168.1.128
- linux下测试
$ ping 192.168.43.86 //windows'IP
PING 192.168.43.86 (192.168.43.86) 56(84) bytes of data.
64 bytes from 192.168.43.86: icmp_seq=1 ttl=128 time=0.690 ms
64 bytes from 192.168.43.86: icmp_seq=2 ttl=128 time=1.58 ms
64 bytes from 192.168.43.86: icmp_seq=3 ttl=128 time=0.701 ms
64 bytes from 192.168.43.86: icmp_seq=4 ttl=128 time=1.15 ms
64 bytes from 192.168.43.86: icmp_seq=5 ttl=128 time=1.26 ms
64 bytes from 192.168.43.86: icmp_seq=6 ttl=128 time=1.28 ms
64 bytes from 192.168.43.86: icmp_seq=7 ttl=128 time=0.729 ms
64 bytes from 192.168.43.86: icmp_seq=8 ttl=128 time=1.42 ms
Bitvise客户端
-
下载Bitvise:(https://gsf-fl.softonic.com/7ad/b68/5b5d78c4e89613515d05ced58f7e6441dc/BvSshClient-Inst.exe?Expires=1648438562&Signature=8717178bf9438eb3d501410323d35c203b359299&url=https://tunnelier.en.softonic.com&Filename=BvSshClient-Inst.exe)
-
设置Linux主机ip地址,输入用户名,输入密码,输入点击Log in
-
ssh-keygen
$ ssh-keygen -b 2048 -t rsa
$ chmod -R 700 .ssh
- bug:一直登陆不上。
检查用户名
$ whomi
成功登陆,可以实现文件传输与共享
NFS
NFS(Nework File-System)简介
- 是Network FileSystem的缩写。最大的作用就是通过网络,让不同的机器、不同的作业系统、可以分享档案。通过将共享目录挂接到本地,就可以像操作本地目录一样去操作共享的目录。
- 主机可以将自己某个指定目录通过网络共享给目标机。
- 目标机可以直接运行存放于linux主机共享目录下的程序。
NFS安装与配置
安装NFS服务器端
$ sudo apt-get install nfs-kernel-server
- 可以通过运行以下命令来验证 :
$ sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
创建文件系统
- 首先创建根目录和共享挂载点
$ sudo mkdir -p /srv/nfs4/www
- 将挂载目录绑定到共享挂载点
$ sudo mount --bind /var/www /srv/nfs4/www
- 要在重新启动后使绑定挂载永久化,请打开/etc/fstab文件(选做)
$ sudo vim /etc/fstab
- 添加以下行
/etc/fstab
/var/www /srv/nfs4/www none bind 0 0
导出文件系统
- 打开/etc/exports文件
$ sudo vim /etc/exports
- 添加以下行
/srv/nfs4 192.168.1.*(rw,sync,no_subtree_check,crossmnt,fsid=0)
/srv/nfs4/www 192.168.1.*(rw,sync,no_subtree_check)
- 保存文件并导出共享
$ sudo exportfs -ar
- 查看当前活动的导出及其状态
$ sudo exportfs -v
/srv/nfs4 192.168.1.129(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/www 192.168.1.129(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
安装NFS客户端
- 在客户机(克隆的虚拟机)安装输入
$ sudo apt update
$ sudo apt install nfs-common
- 为挂载点创建两个新目录
$ sudo mkdir -p /srv/www
- 使用以下命令挂载导出的文件系统mount
$ sudo mount -t nfs -o vers=4 192.168.1.128:/www /srv/www
- bug
mount.nfs: requested NFS version or transport protocol is not supported
- solve:
$ sudo /etc/init.d/nfs-kernel-server start
- df 使用 mount 或命令验证远程文件系统是否已成功挂载
$ df -h
- 要在重新启动时永久挂载,请打开/etc/fstab文件
$ sudo vim /etc/fstab
- 添加以下行
/etc/fstab
192.168.1.128:/www /srv/www nfs defaults,timeo=900,retrans=5,_netdev 0 0
- 可以查看主机文件
TFTP
TFTP服务器
- Trivial File Transfer Peotocol,TFTP是用来下载远程文件的最简单的网络协议,基于UDP协议。
- 通常用于内核调试(另:网关、路由、交换机)
- 在Bootloader中如果实现网关驱动和TFTP客户端,可以使用TFTP服务从主机上下载内核。
- 安装TFTP服务器
$ sudo apt install -y tftpd-hpa
TFTP服务器端
- 配置TFTP服务器
$ sudo vim /etc/default/tftpd-hpa
/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" //tip:--list,--create,--secure
- 创建文件目录
$ sudo mkdir /tftp
$ sudo chmod -R 777 /tftp
$ sudo chmod -R nobody /tftp
$ echo 'hello,world!' > /tftp/test.txt //服务器创建测试文件
- 启动服务器
$ sudo service tftpd-hpa start
$ sudo service tftpd-hpa status //查看状态
- bug!
Job for tftpd-hpa.service failed because the control process exited with error code.
- $ sudo vim /etc/default/tftpd-hpa
/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftp" //地址确认!!!
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" //tip:--list,--create,--secure
TPTP客户端
- 安装TFTP客户端
$ sudo apt install -y tftp-hpa
测试连接
- 客户端
$ tftp 192.168.1.128
tfpt> get test.txt
tftp> q
$ cat test.txt