第9章 使用ssh服务管理远程主机。

章节简述:

学习使用nmtui命令配置网卡参数、手工将多块网卡做绑定、使用nmcli命令查看网卡信息和使用ss命令查看网络及端口状态。

完整演示sshd服务配置方法并详细讲述每个参数的作用,实战基于密钥远程登陆实验以及用screen服务让远程会话不再终断

 

本章目录结构

  • 9.1 配置网卡连接网络
    • 9.1.1 配置网卡参数
    • 9.1.2 查看网卡信息
    • 9.1.3 绑定两块网卡
    • 9.1.4 查看端口状态
  • 9.2 远程控制服务
    • 9.2.1 了解sshd服务
    • 9.2.2 使用ssh命令
    • 9.2.3 安全密钥验证
    • 9.2.4 远程传输命令
  • 9.3 不间断会话服务
    • 9.3.1 了解Screen服务
    • 9.3.2 掌握命令参数
    • 9.3.3 创建与使用会话功能
    • 9.3.4 会话共享功能
9.1 配置网卡连接网络
9.1.1 配置网卡参数

本实验需要两台虚拟主机来完成,分别是:

编辑
主机名称操作系统IP地址
本地主机红帽RHEL7操作系统192.168.10.10
远程主机红帽RHEL7操作系统192.168.10.20

在正式配置sshd服务之前,我们必须保证本地主机远程主机之间数据是可以互相传送的,前面在学习Vim编辑器的章节中修改过网卡文件,本次使用图形工具来配置网络,效果是一样的。

请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。

  • 第1步:执行命令“nmtui”。
  • 第2步:选择要编辑的网卡。
  • 第3步:编辑网卡信息。
  • 第4步:将网卡的IPv4配置项设置成手动。
  • 第5步:敲击Ipv4配置项右侧的(Show)。
  • 第6步:填入IP地址信息。
  • 第7步:敲击最下面的(OK)。
  • 第8步:确认信息填写正确后退出。
  • 第9步:再次运行网卡配置程序。
  • 第10步:选择激活该网卡。
  • 第11步:将此网卡成功的激活。
  • 第12步:通信测试。
  • 第13步:请使用"nmtui"工具配置后仍然需要修改网卡配置文件设置"ONBOOT=yes"。

使用nmtui工具配置完网卡后请一定要再修改配置文件设置成"ONBOOT=yes"。

当您按照上述步骤配置完网卡后在本地主机执行"ping 192.168.10.20"来检测网络是否已经配置妥当。

9.1.2 查看网卡信息

nmcli是一款能够方便我们配置网络的工具,能够轻松的查看网卡信息或网络状态:

查看网卡的配置信息:

[root@linuxprobe ~]# nmcli connection show

编辑
NAME(网卡名称)UUID(唯一识别码)TYPE(网卡类型)DEVICE(设备)
eno1677773613756690-ac77-b776-4fc1-f5535cee6f16802-3-etherneteno16777736

查看网卡的连接状态:

[root@linuxprobe ~]# nmcli device status

编辑
DEVICE(设备)TYPE(类型)STATE(状态)CONNECTION(连接)
eno16777736ethernetconnectedeno16777736
loloopbackunmanaged--

如果想看网卡设备"eno16777736"的详细信息,只需执行"nmcli con show eno16777736",信息相当详细哦!

对了!网卡还支持了简单实用的多会话功能了呢,例如将Linux系统安装到了笔记本上,上午拿到公司工作时是要指定IP地址,而晚上回到家是DHCP分配IP地址,这样改来改去真的很麻烦,所以我们可以设置多个网卡会话,在不同的环境激活就可以了,但每个网卡同时仅能有一个会话是激活状态的

我们可以将在公司的会话叫做"company",在家里的会话叫做"house",记住了哦,现在配置!
添加公司会话,参数为connection(会话),add(添加动作),con-name(会话名称),type(网卡类型),ifname(网卡名称):

[root@linuxprobe ~]# nmcli connection add con-name company type ethernet ifname eno16777736
Connection 'company' (3a6677a8-59b0-4c8a-ae15-2a9f3e502f33) successfully added.

添加居家会话:

[root@linuxprobe ~]# nmcli connection add con-name house ifname eno16777736 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
Connection 'house' (03f366a3-04b6-4545-a996-f10d7bffbf64) successfully added.

启用居家会话:

[root@linuxprobe ~]# nmcli connection up house

查看会话的信息:

[root@linuxprobe ~]# nmcli connection show
编辑
NAME(名称)UUID(唯一标识符)TYPE (网卡类型)DEVICE(设备)
house03f366a3-04b6-4545-a996-f10d7bffbf64802-3-ethernet--
company3a6677a8-59b0-4c8a-ae15-2a9f3e502f33802-3-ethernet--
eno1677773613756690-ac77-b776-4fc1-f5535cee6f16802-3-etherneteno16777736

实用nmcli命令创建或修改的会话配置信息回自动保存为网卡配置文件,重启后依然有效。

 

9.1.3 绑定两块网卡

我们可以将多块网卡多绑定操作,不仅能够提高带宽的速率而且让其中一块网卡出现故障时,不会让网络完全中断。

第1步:在虚拟机中额外添加一块网卡。

编辑虚拟机设置,添加网络适配器:
编辑虚拟机设置,添加网络适配器。

保证两块网卡的连接类型都是相同的:

保证两块网卡的连接类型都是相同的
查看两块网卡的名称:

[root@linuxprobe ~]# ifconfig | grep flags
eno16777728: flags=4163>UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
eno33554968: flags=4163>UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

第2步:配置网卡的参数:

设置第1块网卡为从卡,而主卡为bond0:

[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eno16777728
MASTER=bond0
SLAVE=yes

相似的方法设置第2块网卡,主卡依然为bond0:

[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno33554968
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eno33554968
MASTER=bond0
SLAVE=yes

创建绑定网卡的配置文件并指定IP地址等信息:

[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.10.10
PREFIX=24
DNS=192.168.10.1
NM_CONTROLLED=no

第3步:让内核支持Bonding的驱动。

为bond0网卡添加bonding驱动的支持:

[root@linuxprobe ~]# vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=6

常用的绑定驱动模式有:
mode=0平衡负载模式:平时两块网卡均工作,且自动备援,采用Switch支援。
mode=1自动备援模式:平时只有一块网卡工作,故障后自动替换为另外的网卡。
mode=6:平衡负载模式:平时两块网卡均工作,且自动备援,无须设置Switch支援。

第4步:重新加载网卡后绑定即成功。

重新加载网卡信息:

[root@linuxprobe ~]# systemctl restart network
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::20c:29ff:fe9c:637d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:9c:63:7d txqueuelen 0 (Ethernet)
RX packets 700 bytes 82899 (80.9 KiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 588 bytes 40260 (39.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0eno16777728: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:9c:63:73 txqueuelen 1000 (Ethernet)
RX packets 347 bytes 40112 (39.1 KiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 263 bytes 20682 (20.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0eno33554968: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:9c:63:7d txqueuelen 1000 (Ethernet)
RX packets 353 bytes 42787 (41.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 325 bytes 19578 (19.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
9.1.4 查看端口状态

有经验的管理员都会在配置网卡后顺手执行一条ping命令来检测网络的可用性,并且以前大家习惯用netstat命令查看本机的端口连接状态,这条命令也已经在红帽RHEL7系统中则被效率更高显示信息更多的ss命令替代了。

ss命令用于查看本机的端口连接状态,具体的参数:

编辑
参数作用
-a显示所有的套接字
-l显示所有连接状态的套接字
-e显示详细的套接字信息
-m显示套接字的内存使用情况
-p显示套接字的进程信息
-4显示ipv4的套接字信息
-6显示ipv6的套接字信息
-t仅显示tcp的套接字信息
-u仅显示udp的套接字信息
-n不解析主机名(提升速度)
-s查看概述

查看监听状态中的套接字:

[root@linuxprobe ~]# ss -ntl
编辑
StateRecv-QSend-QLocal Address:PortPeer Address:Port
LISTEN0100127.0.0.1:25*:*
LISTEN0128*:55820*:*
LISTEN0100*:22*:*
LISTEN0128127.0.0.1:631*:*
LISTEN0128:::60863*:*

查看进程名和PID号码:

[root@linuxprobe ~]# ss -s
编辑
Total: 1091 (kernel 1173)
TCP: 11 (estab 0, closed 1, orphaned 0, synrecv 0, timewait 0/0), ports 0
TransportTotalIPIPv6
*1173--
RAW000
UDP1385
TCP1055
INET231310
FRAG000

如果我们希望查看IP数据包从本机到另外一台电脑经过的路由信息,那就可以用tracepath命令啦!

这里格式非常简单:"tracepath 目标地址(域名或IP地址均可)",确实没什么可讲。

[root@linuxprobe ~]# tracepath www.linuxprobe.com

追踪从本地主机到《Linux就该这么学》的服务器中数据包经过了那些路由器,般来讲路由跳数越少,延时越低,访问速度越快哦!
出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(),B群:340829(推荐),点此查看全国群。

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

9.2 远程控制服务
9.2.1 了解sshd服务

SSH(Secure Shell)是一种能够提供安全远程登陆会话的协议,假如希望在远程Linux系统中执行命令,就是通过这个协议啦!

为什么要强调SSH协议是安全的呢?因为比如ftp、telnet等服务在网络上不会对口令或数据进行加密,那么骇客们真的非常容易就可以截获这些信息(尤其是同局域网内的用户),因此它们在本质是就是不安全的。

sshd服务提供两种安全验证的方法:

基于口令的安全验证:经过验证帐号与密码即可登陆到远程主机。

基于密钥的安全验证:需要在本地生成"密钥对"后将公钥传送至服务端,进行公共密钥的比较。

sshd服务的配置文件解析:

[root@linuxprobe ~]# cat /etc/ssh/sshd_config

编辑
参数作用
#Port 22默认的sshd服务端口。
#ListenAddress 0.0.0.0设定sshd服务端监听的IP地址。
#Protocol 2SSH协议的版本号。
#HostKey /etc/ssh/ssh_host_keySSH协议版本为1时,私钥存放的位置。
HostKey /etc/ssh/ssh_host_rsa_keySSH协议版本为2时,RSA私钥存放的位置。
#HostKey /etc/ssh/ssh_host_dsa_keySSH协议版本为2时,DSA私钥存放的位置。
#PermitRootLogin yes设定是否允许root用户直接登录。
#StrictModes yes当远程用户私钥改变时则直接拒绝连接。
#MaxAuthTries 6最大密码尝试次数
#MaxSessions 10最大终端数
#PasswordAuthentication yes是否允许密码验证
#PermitEmptyPasswords no是否允许空密码登陆(很不安全)

若您想要修改服务的配置参数,请一定要记得删除参数前面的注释符"#"并重启服务才生效的。

在远程主机上启动sshd服务并加入到开机启动项:

[root@localhost ~]# systemctl start sshd
[root@localhost ~]# systemctl enable sshd
9.2.2 使用ssh命令

ssh命令用于远程管理Linux主机,格式为:“ssh [参数] 主机”。

编辑
参数作用
-p指定连接端口(默认为22)
-v显示连接过程的详细信息
[root@localhost ~]# ssh 192.168.10.20
The authenticity of host '192.168.10.20 (192.168.10.20)' can't be established.
ECDSA key fingerprint is 4f:a7:91:9e:8d:6f:b9:48:02:32:61:95:48:ed:1e:3f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.20' (ECDSA) to the list of known hosts.
root@192.168.10.20's password:此处输入远程主机root用户的密码
Last login: Wed Apr 15 15:54:21 2015 from 192.168.10.10
[root@localhost ~]#
9.2.3 安全密钥验证

使用密码验证终归会存在着被骇客暴力破解嗅探监听的危险,其实也可以让ssh服务基于密钥进行安全验证可无需密码验证)。

第1步:在本地主机中生成“密钥对”并将公钥传送到远程主机中:

[root@linuxprobe ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):回车或设置密钥的存储路径       
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 回车或设置密钥的密码
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
40:32:48:18:e4:ac:c0:c3:c1:ba:7c:6c:3a:a8:b5:22 root@linuxprobe.com
The key's randomart image is:
+--[ RSA 2048]----+
|+*..o .          |
|*.o  +           |
|o*    .          |
|+ .    .         |
|o..     S        |
|.. +             |
|. =              |
|E+ .             |
|+.o              |
+-----------------+

将生成好的公钥密钥传送至远程主机:

[root@linuxprobe ~]# ssh-copy-id 192.168.10.20
The authenticity of host '192.168.10.20 (192.168.10.20)' can't be established.
ECDSA key fingerprint is 4f:a7:91:9e:8d:6f:b9:48:02:32:61:95:48:ed:1e:3f.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.10.20's password:Number of key(s) added: 1Now try logging into the machine, with: "ssh '192.168.10.20'"
and check to make sure that only the key(s) you wanted were added.

第2步:首先要在远程主机中修改sshd服务的配置文件(修改后记得重启服务):

请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。

  • 第1步:编辑ssh服务程序主配置文件。
  • 第2步:将允许密码验证的参数设置为no。
  • 第3步:将允许密钥验证的参数设置为yes。
  • 第4步:保存并退出配置文件。
  • 第5步:重启ssh服务程序后即可生效。

第3步:最后来尝试无需密码的远程登录吧:

[root@linuxprobe ~]# ssh 192.168.10.20
Last login: Mon Apr 13 19:34:13 2015
9.2.4 远程传输命令

要想将一些文件通过网络传送给其他主机,又恰好两台主机都是Linux系统,我们便可以直接用scp命令传输文件到另外一台主机~

scp命令用于在网络中安全的传输文件,格式为:“scp [参数] 本地文件 远程帐户@远程IP地址:远程目录”。

编辑
参数作用
-v显示详细的连接进度
-P指定远程主机的sshd端口号
-r传送文件夹时请加此参数
-6使用ipv6协议

将本地文件/root/out.txt传送到远程主机的/home目录:

[root@linuxprobe ~]# scp /root/out.txt 192.168.10.20:/home
root@192.168.10.20's password:此处输入远程主机中root用户的密码
out.txt 100% 0 0.0KB/s 00:00

传送下文件夹并指定远程用户:

[root@linuxprobe ~]# scp -r results/ linuxprobe@192.168.10.20:/home
linuxprobe@192.168.10.20's password:此处输入远程主机中linuxprobe用户的密码

强大的scp命令还可以将远程主机的文件传输到本地呢,格式为"scp [参数] 远程用户@远程IP地址:远程文件 本地目录"。

将远程主机的/etc/issue.net文件下载到本地的/root目录:

[root@linuxprobe ~]# scp linuxprobe@192.168.10.20:/etc/issue.net /root
linuxprobe@192.168.10.20's password:
issue.net 100% 22 0.0KB/s 00:00

 

9.3 不间断会话服务
9.3.1 了解Screen服务

学完了ssh服务后有没有发现一个很重要的事情——当连接的终端被关闭时,运行在服务器上的命令也会中断。如果有长时间文件备份或FTP传输等任务时,通常我们都会新开一个连接窗口再继续工作,并且中途不能关闭窗口或断开链接(也包括网络不稳定的情况),否则这个任务就会被中断,还要重新开始。

Screen便是为了解决上述问题而设计的,用户可以通过使用Screen命令同时控制多个命令行会话并自由切换,特点有:

会话恢复:即便网络中断,也可让会话随时恢复,用户不会失去对命令行的控制。

多窗口:每个会话都是独立运行的,拥有独立的编号、输入输出和窗口缓存。

会话共享:可以使多个用户从不同终端使用同一个会话,也可让他们看到完全相同的输出。

9.3.2 掌握命令参数

红帽RHEL7系统中默认没有包含screen,需要先来安装。

使用yum命令安装screen程序包:

[root@linuxprobe ~]# yum install screen
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安装信息………………
Installing:
screen x86_64 4.1.0-0.19.20120314git3c2946.el7 rhel7 551 k
………………省略部分安装信息………………
Complete!

screen命令的常用命令参数包括:

编辑
参数作用
-A让所有视窗自动调整适应当前终端机的大小。
-d <会话名称>将指定的screen会话离线。
-r<会话名称>将指定的screen会话恢复。
-h<行数>指定视窗的缓冲区行数。
-S<会话名称>指定screen会话的名称
-x恢复所有离线的会话。
-ls或-list显示当前的screen会话。
--wipe自动将无法使用的screen会话删除。
9.3.3 创建与使用会话功能

完成安装后直接运行screen即可使用服务,推荐为每个会话都取一个名字,方便分辨。
创建名称为backup的会话:

[root@linuxprobe ~]# screen -S backup

查看当前已经存在的会话:

[root@linuxprobe ~]# screen -ls
There is a screen on:
32230.backup (Attached)
1 Socket in /var/run/screen/S-root.

当执行screen命令后会调用系统默认的shell(通常即bash),所以敲完screen命令后会立即返回一个命令提示符,虽然看起来与刚刚没有变化,但此时你已经进入screen会话啦!

创建一个会话,初始为用vim编辑器写文件:

[root@linuxprobe ~]# screen vim memo.txt

退出vim后会话也会被自动被删除:

[root@linuxprobe ~]# screen -ls
There is a screen on:
32230.backup (Attached)
1 Socket in /var/run/screen/S-root.

新建一个叫做linuxprobe的会话:

[root@linuxprobe ~]# screen -S linuxprobe

列出当前所有会话(有两个哦):

[root@linuxprobe ~]# screen --ls
There are screens on:
32403.linuxprobe (Attached)
32230.backup (Attached)
2 Sockets in /var/run/screen/S-root.

回到backup会话中:

[root@linuxprobe ~]# screen -r backup

将linuxprobe会话离线:

[root@linuxprobe ~]# screen -d linuxprobe
[remote detached from 32403.linuxprobe]

再次查看会话状态(linuxprobe已经被离线了):

[root@linuxprobe ~]# screen -ls
There are screens on:
32403.linuxprobe (Detached)
32230.backup (Attached)
2 Sockets in /var/run/screen/S-root.

将当前会话离线并回到linuxprobe会话中:

[root@linuxprobe ~]# screen -d -r linuxprobe
[32403.linuxprobe detached.]

回到linuxprobe会话后,状态又改变了:

[root@linuxprobe ~]# screen -ls
There are screens on:
32403.linuxprobe (Attached)
32230.backup (Attached)
2 Sockets in /var/run/screen/S-root.

总结来说:将screen会话甚至为暂时断开(detach),那么会话窗口中的程序依然会执行。随后将会话重新连接(attach),那么即可重新控制会话窗口中运行的程序啦。

9.3.4 会话共享功能

会话共享功能是一件很酷的事,它让多个用户同时使用某一个会话,甚至让您和对方看到相同的终端内容,拓扑如下:

screen会话共享

将两台Linux主机均连入同一个服务器:
在主机A的终端上执行创建会话的操作:

[root@linuxprobe ~]# screen -S linuxprobe
在主机B的终端上同步会话信息:
[root@linuxprobe ~]# screen -x

那么此时终端A与终端B上做的任何操作,都可以实时同步到对方的屏幕上,真的很酷哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

enum不能被继承

1、枚举类介绍 如果一个类的实例是有限且确定的&#xff0c;那么可以使用枚举类。比如&#xff1a;季节类&#xff0c;只有春夏秋冬四个实例。 枚举类使用enum进行创建&#xff0c;其实例必须从”第一行“开始显示写出。 enum Season{SPRING,SUMMER,FALL,WINTER;//默认public s…

linux不适合数据传输,【Linux调试经验】局域网内数据传输不经过路由

问题/发现&#xff1a;本人在为一款路由器写一个统计局域网互传流量的Linux内核模块的时候&#xff0c;发现如下问题&#xff1a;局域网内的一台设备和该局域网内另一台设备进行通信时&#xff0c;我在路由器的netfilter链表处设下钩子&#xff0c;以捕获数据。后来发现这些数据…

kali linux 升级命令_作为高级Java,你应该了解的Linux知识

原创&#xff1a;小姐姐味道(微信公众号ID&#xff1a;xjjdog)&#xff0c;欢迎分享&#xff0c;转载请保留出处。作为一个javaer&#xff0c;我以前写过很多关于Linux的文章。但经过多年的观察&#xff0c;发现其实对于大部分人&#xff0c;有些东西压根就用不着。用的最多的&…

linux centos 光盘修复,CentOS7删除/boot/initramfsxxx.img并尝试光盘救援模式修复

CentOS7删除/boot/initramfsxxx.img并尝试光盘救援模式修复一、删除/boot/initramfs-3.10.0-957.el7.x86_64.img[rootswitch ~]# rm -f /boot/initramfs-3.10.0-957.el7.x86_64.img二、重启起不来三、插入光盘&#xff0c;进入修复模式(VMWare开机按esc)四、选择修复CentOS7系统…

I/O多路转接之poll,epoll

1、poll函数原型&#xff1a;#include <poll.h>int poll(struct pollfd fds[], nfds_t nfds, int timeout)&#xff1b;参数说明:fds&#xff1a;是一个struct pollfd结构类型的数组&#xff0c;用于存放需要检测其状态的Socket描述符&#xff1b;每当调用这个函数之后&a…

pn532写入手机nfc_NFC手机手环脱机模拟加密门禁卡,你get了吗?

目标&#xff1a;将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种卡模拟进手机里&#xff0c;模拟后可用手机代替刷卡&#xff0c;无需root&#xff0c;不用电脑背景介绍&#xff1a;前言目前&#xff0c;IC卡已被广泛应用于身份识别、金融消费、安全认证等领域。大多数人每…

linux安装vim plug, vim-plug 的安装和使用

正确安装 vim-plug之前写了一篇&#x1f984; 一篇文章讲清楚如何安装vim插件&#xff0c;见各位童鞋留言说 vim-plug 更好用。果然各种插件方便管理&#xff0c;安装也很简单。下面简单说下 vim-plug 的操作基本姿势&#xff1a;安装 vim-plugvim-plug 是一个 vim 的插件管理插…

dw网页制作入学教程_简单的手机网页制作教程

很多小白会以为建站只能通过电脑&#xff0c;但实际上&#xff0c;用手机也能顺利建站&#xff0c;而且操作非常简单&#xff0c;不需要你懂技术知识哦&#xff01;下面就跟大家说说手机网页制作教程&#xff1a;首先&#xff0c;你需要选择一个比较好用的手机网页制作app。尽量…

linux 双显卡 黑屏 amd,Win10系统AMD双显卡笔记本开机出现黑屏怎么办?解决方法...

win10是一个全新的操作系统&#xff0c;所以我们在使用时很有可能会碰到一些没见过的新问题。比如&#xff0c;有用户在升级到Windows10后&#xff0c;发现AMD双显卡笔记本出现了开机黑屏的情况。具体表现为&#xff1a;Windows Logo加载之后&#xff0c;用户登陆之前会出现30s…

[BZOJ 1834] [ZJOI2010]network 网络扩容

1834: [ZJOI2010]network 网络扩容 Time Limit: 3 SecMemory Limit: 64 MBDescription 给定一张有向图&#xff0c;每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求&#xff1a; 1、 在不扩容的情况下&#xff0c;1到N的最大流&#xff1b; 2、…

fw150us的linux驱动下载,迅捷FW150US1.0/2.0无线网卡驱动

迅捷FW150US1.0/2.0无线网卡驱动官方版是迅捷推出的一款超小型150M无线USB网卡&#xff0c;安装迅捷FW150US1.0/2.0无线网卡驱动官方版&#xff0c;即可正常连接电脑使用。迅捷FW150US1.0/2.0无线网卡驱动支持自动检测功能&#xff0c;能够自动调整速率&#xff0c;无线传输速率…

20160811

一&#xff1a;边框样式 1.边框线 border-style : none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset 例&#xff1a;div { width:300px; height:100px; border-style:solid; &#xff5d; border-top-style 设置上边框线 border-bott…

vip地址能ping不通_电脑高手必备ping和netstat命令

1、Ping的基础知识ping命令相信大家已经再熟悉不过了&#xff0c;但是能把ping的功能发挥到最大的人却并不是很多&#xff0c;当然我也并不是说我可以让ping发挥最大的功能&#xff0c;我也只不过经常用ping这个工具&#xff0c;也总结了一些小经验&#xff0c;现在和大家分享一…

linux   图片

转载于:https://blog.51cto.com/wzsts/1837102

array python 交集_Python基础(二)——列表和元组

Python中最基本的数据结构是序列&#xff0c;序列中的每一个元素都有编号&#xff0c;即索引&#xff08;从左到右第一个索引为0&#xff0c;从右到左第一个索引为-1&#xff09;。python提供的序列类型在所有程序设计语言中是最丰富、最灵活&#xff0c;也是功能最强大的。pyt…

浅谈PHP+Access数据库的连接 注意要点

今天公司需要用php连接access 数据库&#xff0c;结果整了半天Access数据库 就是连接不上&#xff0c;查找 很多资料&#xff0c;以下是我的经验&#xff0c; -.- 希望能给需要连接access 数据的人带来帮助。。-.- 需要注意&#xff1a; 安装access 数据库的时候 需要安装与本…

lua 字符串分割_Lua函数式编程(中)

书接前文&#xff0c;我们继续慢慢的了解 所谓的函数式编程思想。考查下面的例子判断给定的数是否是偶数 在Lua里面这似乎是个幼儿园问题local isEven function(v) return v % 2 0 end但我们如何用函数式的思维去解决问题&#xff1f;是的&#xff0c;假设我们有了以下函数R.…

WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)...

WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现]&#xff08;提供模拟程序&#xff09; 原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现]&#xff08;提供模拟程序&#xff09;基于HTTP-GET的元数据发布方式与基于WS-MEX原理类似…

)标识符不能是c语言的关键字,标识符不能是C的关键字

满意答案tftgcl882014.08.07采纳率&#xff1a;58% 等级&#xff1a;9已帮助&#xff1a;3967人所谓关键字就是已被Turbo C2.0本身使用&#xff0c; 不能作其它用途使用的字。例如关键字不能用作变量名、函数名等。Turbo C2.0有以下关键字:Turbo C2.0扩展的共11个asm …

不同类的方法 事务问题_【高中地理】描述类问题的答题方法

一、描述地理位置的特征及意义位置&#xff1a;半球位置、纬度位置、海陆位置、相对位置&#xff08;邻省或邻国、地形区、地势阶梯交界处、气候区、图例中的特殊地理事物&#xff09;、板块位置、交通位置等。意义&#xff1a;①所处位置&#xff08;是否是重要分界线&#xf…