1、掌握LINUX下TCP/IP网络的设置方法
2、掌握网络配置文件以及使用网络配置命令
3、掌握使用网络测试工具以及启用和禁用系统服务
4、熟练利用SSH远程管理LINUX系统
5、熟练利用VNC远程管理LINUX系统
比特宇宙-TCP/IP的诞生
IP如快递的收发地址,端口为该地址内部的自定义编号,TCP如快递的客服,可以查询物流,退换货,加急发货等等。
这些协议最早发源于美国国防部(缩写为DoD)的ARPA网项目,因此也称作DoD模型(DoD Model)
最早的TCP/IP由文顿·瑟夫和罗伯特·卡恩两位开发,慢慢地通过竞争战胜其他一些网络协议的方案,比如国际标准化组织ISO的OSI模型。TCP/IP的蓬勃发展发生在1990年代中期。当时一些重要而可靠的工具的出世,例如页面描述语言HTML和浏览器Mosaic,促成了互联网应用的飞速发展。 随着互联网的发展,目前流行的IPv4协议(网际协议版本四)已经接近它的功能上限。IPv4最致命的两个缺陷在于:
1.地址只有32位,IP地址空间有限;
2.不支持服务质量(Quality of Service,QoS)的想法,无法管理带宽和优先级,故而不能很好的支持现今越来越多实时的语音和视频应用。因此IPv6(网际协议版本六)浮出水面,用以取代IPv4。
TCP/IP成功的另一个因素在于对为数众多的低层协议的支持。这些低层协议对应OSI模型中的第一层(物理层)和第二层(数据链路层)。每层的所有协议几乎都有一半数量支持TCP/IP,例如:以太网(Ethernet)、令牌环(Token Ring)、光纤数据分布接口(FDDI)、点对点协议(PPP)、X.25、帧中继(Frame Relay)、ATM、Sonet、SDH等通信方法中都可以应用。
TCP/IP——维基百科
互联网协议套件(英语:Internet Protocol Suite,缩写IPS)是网络通信模型,以及整个网络传输协议家族,为网际网络的基础通信架构。它常通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。因为该协议家族的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。
TCP/IP——百度百科
TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。但是这显然是有些复杂的,所以在TCP/IP协议中,它们被简化为了四个层次
(1)应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在TCP/IP协议中,它们被合并为应用层一个层次。 5+6+7
(2)由于运输层和网络层在网络协议中的地位十分重要,所以在TCP/IP协议中它们被作为独立的两个层次。 3/4
(3)因为数据链路层和物理层的内容相差不多,所以在TCP/IP协议中它们被归并在网络接口层一个层次里。只有四层体系结构的TCP/IP协议,与有七层体系结构的OSI相比要简单了不少,也正是这样,TCP/IP协议在实际的应用中效率更高,成本更低。 1+2
应用层
该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。 应用层是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。这个层的处理过程是应用特有的;数据从网络相关的程序以这种应用内部使用的格式进行传送,然后编码成标准协议的格式。
理论上讲,有了以上三层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差,因此,应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等,在请求Header中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。
所以应用层的主要工作就是定义数据格式并按照对应的格式解读数据
传输层
传输层(transport layer)的协议,能够解决诸如端到端可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题。在TCP/IP协议组中,传输协议也包括所给数据应该送给哪个应用程序。
链路层定义了主机的身份,即MAC地址,而网络层定义了IP地址,明确了主机所在的网段,有了这两个地址,数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。因此传输层引入了UDP协议来解决这个问题,为了给每个应用程序标识身份。
传输层的主要工作是定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性
网络层
网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能。
网络层的主要工作是定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由
网络接口层
在TCP/IP协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路
以太网协议规定,接入网络的设备都必须安装网络适配器,即网卡,数据包必须是从一块网卡传送到另一块网卡。而网卡地址就是数据包的发送地址和接收地址,有了MAC地址以后,以太网采用广播形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。
所以链路层的主要工作就是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。
总结:快递站(接收数据)——分拣中心(进行编号)——派送站(发至地址)——快递柜(寻物启事)
Linux网络相关配置文件
Linux系列—网络配置文件
配置网卡的文件位置:/etc/sysconfig/network-scripts
配置文件详解:
#cat /etc/sysconfig/network-scripts/ifcfg-eth0 (查看网卡配置文件)
DEVICE=eth0 (网卡名称,物理设置名字,最终通信地址)
HWADDR=… (MAC地址)
TYPE=Ethernet (以太网网络类型:Ethernet,Static)
PREFIX=24 ( 子网掩码24位)
ONBOOT=yes (控制网卡是不是开机自启动)
NM_CONTROLLED=yes (network mamager的参数 ,是否可以由NNetwork Manager托管)
DEFROUTE=yes ( 就是default route,是否把这个eth设置为默认路由)
BOOTPROTO=dhcp (启动协议,none 引导时不使用协议,static 静态分配地址, bootp 使用BOOTP协议,DCHP 使用区域为内自动分配IP的服务)
USERCTL=no (是否允许非root用户控制该设备,设置为no,只能用root用户更改)
IPADDR=192.168.52.130 (IP地址)
NETMASK=255.255.255.0(子网掩码,划分网络位和主机位置)
DNS=192.168.1.1 (域名解析服务,把域名解析成IP,也可以反过来)
DNS1=8.8.8.8 ( 第一个dns服务器)
DNS2=8.8.4.4 ( 第二个dns服务器)
BROADCAST (广播)
GETWAY=192.168.1.22(设置网关,访问的入口,路由器的地址,通过其出去上网,出口)
BRIDGE= ( 设置桥接网卡)
UUID (网卡的唯一标识)
IPV6INIT=no ------ 是否启用IPv6的接口
USERCTL=no ------ 是否允许非root用户控制该设备,设置为no,只能用root用户更改
NAME=”System eth0” ------ 这个就是个网络连接的名字
MASTER=bond1 ------ 指定主的名称
SLAVE ------ 指定了该接口是一个接合界面的组件。
NETWORK ------ 网络地址
ARPCHECK=yes ------ 检测
PEERDNS ------ 是否允许DHCP获得的DNS覆盖本地的DNS
PEERROUTES ------ 是否从DHCP服务器获取用于定义接口的默认网关的信息的路由表条目
IPV4_FAILURE_FATAL=yes ------ 如果ipv4配置失败禁用设备
IPV6_FAILURE_FATAL=yes ------ 如果ipv6配置失败禁用设备
设置DNS文件:可以在网卡配置文件中设置,还可以在/etc/resolv.conf里设置.
注意事项:
1.配置网卡地址及GW等后,需要重启网卡才能使网卡生效.
2.重启网卡 /etc/init.d/network restart or systemctl restart network
3.ifdown eth0(关闭eth0) && ifup eth0 (开启eth0) 这样只针对eth0这个网卡.
4.DNS可以在网卡配置文件中设置,还可以在/etc/resolv.conf里设置.
5.网卡你设置的DNS优先于resolv.conf中设置的,如果重启网络网卡,网卡中DNS会覆盖掉resolv.conf中设置的.
6./etc/hosts文件 相当于是局域网的DNS,里面是对应的IP和域名对应,优先于网络.设定用户的ip解析表,相当于本地LAN局域网内的DNS
linux 网络的配置方法
配置网络的工具:1)配置文件vim(最常用)
步骤:配置参数文件----》重启网络
具体操作:vim /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes (开机自启动网络连接)
BOOTPROTO=none (none/static手动配置,dhcp自动配置,此处手动 配置就要增加下面的具体地址配置信息)
IPADDR=具体IP地址
NETMASK=子网掩码
GATWAY=网关
DNS1=域名解析
保存后,重启网络即可生效,systemctl restart network
2)nmcli命令行
nmcli connection add type ethernet con-name eth0 ifname eno335(添加网卡)
nmcli connection up eth0(启用网卡)
nmcli connection modify eth0 ipv4.addresses 192.168.30.58(配置ip)
nmcli connection modify eth0 ipv4.addresses 192.168.30.58/24(配置子网掩码)
nmcli connection modify eth0 ipv4.gateway 192.168.0.2(添加网关)
nmcli connection modify eth0 ipv4.dns 192.168.30.2(添加dns)
systemctl restart network(重启网络)
3)nmtui配置
直接输入nmtui命令,在弹出的工具中一步步进行选择配置
Linux网络服务
ifconfig 命令可以查看我们的网卡信息(ifconfig命令只能查看已开启的网卡,ifconfig -a 可以查看所有的网卡信息,包括关闭的)。
ifconfig 网卡名,可以查看指定网卡信息。(例如,ifconfig ens33,就是只查看ens33的信息)
ifconfig 网卡名 IP地址/掩码,该命令可以临时指定具体网卡的IP地址,当重启network服务(systemctl restart network)或者系统重启(reboot)时,又会恢复成原先的IP地址。(例如,ifconfig ens33 192.168.41.222/24,意为将ens33的网卡地址临时改为192.168.41.222,掩码为24)
至于ifconfig中显示的信息,我们只需要注意几个参数即可:
inet:ip地址
netmask:掩码
broadcast:广播地址
ether:物理地址,即MAC地址
在Linux中,route命令用于查看路由表信息
route add -net 网段/掩码 gw 网关地址(添加到指定网段的路由记录)
route add default gw 网关地址(向路由表中添加默认网关记录)
route del -net 网段/掩码
route del default gw 网关地址
hostname命令是显示当前主机名,hostname XXX是将主机名临时更换,系统重启时失效,恢复成原先的主机名。(例如,hostname hang,意为将主机名临时切换为hang)
hostnamectl set-hostname XXX,意为将主机名永久改为XXX(其原理就是通过此命令修改了/etc/hostname文件),重启后生效。
netstat命令用于显示网络状态。
格式:netstat/ss [选项]
ping 通常用来测试网络的连通性,在Linux中,ping命令一旦执行,是不会停止的,我们可以利用 -c 选项来指定ping的次数,也可以 ctrl+c 来中断ping的进程
格式:ping [选项] IP地址
traceroute命令用于追踪数据包传递的路线,即达到目标网络需要经过多少网关
格式:traceroute IP地址
nslookup/dig命令用来测试域名解析
格式:nslookup/dig 目标主机IP/域名地址
只需编辑 /etc/sysconfig/network-scripts/ifcfg-ens33 文件后重启服务即可。
服务
1.网络管理器(NetworkManager):默认是开启的,可查看其状态:systemctl status NetworkManager
2.网络管理子程序network:查看状态systemctl status network
端口号 22
Secure Shell——维基百科
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道(英语:secure channel)来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。SSH使用频率最高的场合是类Unix系统
SSH——百度百科
传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒 。
在类Unix系统中,已许可登录的公钥通常保存在用户 /home 目录的 ~/.ssh/authorized_keys 文件中,该文件只由SSH使用。当远程机器持有公钥,而本地持有对应私钥时,登录过程不再需要手动输入密码。另外为了额外的安全性,私钥本身也能用密码保护。
私钥会保存在固定位置,也可以通过命令行参数指定(例如ssh命令的“-i”选项)。ssh-keygen是生成密钥的工具之一
端口号 5900
VNC和远程桌面的区别ssh和vnc
VNC导出整个会话,桌面和所有会话,
而sshssh没有图形化界⾯,运行一个程序,并在您的工作站上显示其窗口
VNC(Virtual Network Computing),为一种使用RFB协议的屏幕画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的屏幕画面。
VNC与操作系统无关,因此可跨平台使用,例如可用Windows连线到某Linux的电脑,反之亦同。甚至在没有安装客户端程序的电脑中,只要有支持JAVA的浏览器,也可使用。
远程桌⾯
远程桌⾯使⽤RDP(Remote Desktop Protocol)远程桌⾯协议,⼤部分Windows都默认⽀持此协议,可以远程接⼊操作桌⾯。
RFB是在服务器端将窗⼝在显存中画好之后将图像传给客户端,客户端只充当⼀个图像解码显⽰的⾓⾊; RDP则将画图的⼯作交给了客户端,服务器需要了解客户端显⽰能⼒的具体情况,以便作出相应调整。
RFB主要传图像,RDP主要传指令。就⼀般应⽤⽽⾔,RFB数据量太⼤,RDP对客户端要求较⾼**,因此RFB适⽤于瘦客户端,RDP适⽤于低速⽹络。**
VNC并非是安全的协议,虽然VNC伺服程序需设置密码才可接受外来连线,且VNC客户端与VNC伺服程序之间的密码传输经过加密,但仍可被轻易的拦截到并使用暴力破解法破解。不过VNC可设计以SSH或VPN传输,以增加安全性。
有些VNC软件,如UltraVNC,更进一步支持Active Directory及NTLM的账号密码认证
某企业新增了一台LINUX服务器,但是还没有配置TCP/IP网络参数,为了做好提供各项业务的使用,要求先做好网络配置,要求:
1、使用多种的常用的方法配置网络接口的各项TCP/IP参数,并连通网络,进行各种环境下的测试
2、使用常用的网络命令来检测网络,搭建高效的网络环境
3、如果出现网络故障,能根据各种故障现象进行迅速排错
某企业的技术人员正在家庭远程办公,该技术人员通过网络接入企业的LINUX服务器进行相关工作处理。
要求通过SSH及VNC远程管理,实现如下配置要求:
1、可以通过SSH服务访问远程主机,可以使用证书登录远程主机不需要输入远程主机的用户名和密码
2、可以使用VNC服务访问远程主机,使用图形界面访问,桌面端口号为1
[stu@centos-a1 ~]$ ifconfig -a
ens33: flags=4163 mtu 1500
inet 192.168.111.21 netmask 255.255.255.0 broadcast 192.168.111.255
inet6 fe80::4202:5ba2:2c88:691f prefixlen 64 scopeid 0x20
ether 00:0c:29:69:52:ae txqueuelen 1000 (Ethernet)
RX packets 11005 bytes 5676539 (5.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11135 bytes 1050057 (1.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 120 bytes 13704 (13.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 120 bytes 13704 (13.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:06:05:6b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0-nic: flags=4098 mtu 1500
ether 52:54:00:06:05:6b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[stu@centos-a1 ~]$
[stu@centos-a1 ~]$ ifconfig -a
ens33: flags=4163 mtu 1500
inet 192.168.111.101 netmask 255.255.255.0 broadcast 192.168.111.255
inet6 fe80::4202:5ba2:2c88:691f prefixlen 64 scopeid 0x20
ether 00:0c:29:69:52:ae txqueuelen 1000 (Ethernet)
RX packets 14373 bytes 6703653 (6.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14898 bytes 1415823 (1.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 172 bytes 18908 (18.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 172 bytes 18908 (18.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:06:05:6b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0-nic: flags=4098 mtu 1500
ether 52:54:00:06:05:6b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[stu@centos-a1 ~]$ ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=14.9 ms
^C
--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 14.938/14.938/14.938/0.000 ms
remove connection profile:移除网络的配置文件
第一次:重置配置文件
第二次:完全删除
[stu@centos-a1 ~]$ ifconfig -a
ens33: flags=4163 mtu 1500
ether 00:0c:29:69:52:ae txqueuelen 1000 (Ethernet)
RX packets 30987 bytes 26710361 (25.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20317 bytes 1878480 (1.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@centos-a1 stu]# ifconfig ens33 192.168.111.102 netmask 255.255.255.0
**ifconfig 网卡名 IP地址/掩码,该命令可以**临时**指定具体网卡的IP地址,
当重启network服务(systemctl restart network)或者系统重启(reboot)
时,又会恢复成原先的IP地址。**
[root@centos-a1 stu]# route add default gw 192.168.111.2
**route add default gw 网关地址(向路由表中添加默认网关记录)**
[root@centos-a1 stu]# nslookup
> server ----->指定DNS,不填则查看
Default server: 127.0.0.1
Address: 127.0.0.1#53
Default server: ::1
Address: ::1#53
> server 192.168.111.2 ----->指定DNS为192.168.111.2
Default server: 192.168.111.2
Address: 192.168.111.2#53
> server
Default server: 192.168.111.2
Address: 192.168.111.2#53
> exit
[root@centos-a1 stu]# cat /etc/resolv.conf ----->查看DNS表
# Generated by NetworkManager
**无信息,表面nslookup server临时指定DNS 退出nslookup工具后失效
[root@centos-a1 stu]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.111.102 netmask 255.255.255.0 broadcast 192.168.111.255
ether 00:0c:29:69:52:ae txqueuelen 1000 (Ethernet)
RX packets 31088 bytes 26743036 (25.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20337 bytes 1882073 (1.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 232 bytes 24920 (24.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 232 bytes 24920 (24.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:06:05:6b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@centos-a1 stu]# cd /etc/sysconfig/network-scripts/
[root@centos-a1 network-scripts]# ls
ifcfg-lo ifdown-post ifup-aliases ifup-plusb ifup-wireless
ifdown ifdown-ppp ifup-bnep ifup-post init.ipv6-global
ifdown-bnep ifdown-routes ifup-eth ifup-ppp network-functions
ifdown-eth ifdown-sit ifup-ib ifup-routes network-functions-ipv6
ifdown-ib ifdown-Team ifup-ippp ifup-sit
ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team
ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort
ifdown-isdn ifup ifup-plip ifup-tunnel
[root@centos-a1 network-scripts]# cat ifcfg-ens33
DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.111.103
NETMASK=255.255.255.0
GATEWAY=192.168.111.2
DNS1=192.168.111.2
[root@centos-a1 network-scripts]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=15.0 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=16.2 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 15.046/15.647/16.248/0.601 ms
[root@centos-a1 network-scripts]# systemctl status network
● network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: active (exited) since Sat 2022-08-20 20:00:23 CST; 56s ago
Docs: man:systemd-sysv-generator(8)
Process: 10907 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS)
Process: 11082 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)
Aug 20 20:00:23 centos-a1 systemd[1]: Stopped LSB: Bring up/down networking.
Aug 20 20:00:23 centos-a1 systemd[1]: Starting LSB: Bring up/down networking...
Aug 20 20:00:23 centos-a1 network[11082]: Bringing up loopback interface: [ OK ]
Aug 20 20:00:23 centos-a1 network[11082]: Bringing up interface ens33: Connection...0)
Aug 20 20:00:23 centos-a1 network[11082]: [ OK ]
Aug 20 20:00:23 centos-a1 systemd[1]: Started LSB: Bring up/down networking.
Hint: Some lines were ellipsized, use -l to show in full.
[root@centos-a1 network-scripts]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-05-14 14:34:52 CST; 3 months 6 days ago
Docs: man:NetworkManager(8)
Main PID: 6225 (NetworkManager)
Tasks: 3
CGroup: /system.slice/NetworkManager.service
└─6225 /usr/sbin/NetworkManager --no-daemon
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.4961] device (e...)
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.4978] device (e...)
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.5018] device (e...)
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.5024] device (e...)
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.5025] device (e...)
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.5027] manager: ...L
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.5172] manager: ...E
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.5173] policy: s...S
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.5353] device (e....
Aug 20 20:00:23 centos-a1 NetworkManager[6225]: [1660996823.5356] manager: ...L
Hint: Some lines were ellipsized, use -l to show in full.
如何在CentOS 7中使用nmcli工具管理网络
[root@centos-a1 network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
System ens33 c96bc909-188e-ec64-3a96-6a90982b08ad ethernet ens33
virbr0 dc18be76-b8d1-4e23-b692-12e105695d64 bridge virbr0
[root@centos-a1 network-scripts]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected System ens33
virbr0 bridge connected virbr0
lo loopback unmanaged --
virbr0-nic tun unmanaged --
CentOS7网络配置——nmcli命令集
[root@centos-a1 network-scripts]# nmcli connection add con-name eth1 type ethernet ifname ens33
Connection 'eth1' (75a74bf6-ab4b-49b1-a50a-03060e125f53) successfully added.
动态获取IP方式的网络连接配置
[root@centos-a1 network-scripts]# nmcli connection modify eth1 ipv4.addresses 192.168.111.104/24
[root@centos-a1 network-scripts]# nmcli connection modify eth1 ipv4.gateway 192.168.111.2
[root@centos-a1 network-scripts]# nmcli connection modify eth1 ipv4.dns 192.168.111.2
[root@centos-a1 network-scripts]# nmcli connection modify eth1 ipv4.method manual
[root@centos-a1 network-scripts]# nmcli connection modify eth1 connection.autoconnect yes
[root@centos-a1 network-scripts]# nmcli connection up eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/12)
[root@centos-a1 network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
eth1 75a74bf6-ab4b-49b1-a50a-03060e125f53 ethernet ens33
virbr0 dc18be76-b8d1-4e23-b692-12e105695d64 bridge virbr0
ens33 6c0ec01f-405b-4c21-aa19-e01d54fb7add ethernet --
System ens33 c96bc909-188e-ec64-3a96-6a90982b08ad ethernet --
[root@centos-a1 network-scripts]# nmcli connection up eth2
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)
[root@centos-a1 network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
eth2 a870f799-4a55-4446-8027-b02ed640b809 ethernet ens33
virbr0 dc18be76-b8d1-4e23-b692-12e105695d64 bridge virbr0
ens33 6c0ec01f-405b-4c21-aa19-e01d54fb7add ethernet --
eth1 75a74bf6-ab4b-49b1-a50a-03060e125f53 ethernet --
System ens33 c96bc909-188e-ec64-3a96-6a90982b08ad ethernet --
[root@centos-a1 network-scripts]# nmcli connection delete eth2
Connection 'eth2' (a870f799-4a55-4446-8027-b02ed640b809) successfully deleted.
[root@centos-a1 network-scripts]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.111.21 netmask 255.255.255.0 broadcast 192.168.111.255
inet6 fe80::20c:29ff:fe69:52ae prefixlen 64 scopeid 0x20
ether 00:0c:29:69:52:ae txqueuelen 1000 (Ethernet)
RX packets 31476 bytes 26774598 (25.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20687 bytes 1934484 (1.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
traceroute详解
[root@centos-a1 network-scripts]# traceroute www.baidu.com
traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
1 gateway (192.168.111.2) 0.898 ms 0.078 ms 0.087 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
输出有 5 列:
第一列是描述路径的第 n 跳的数值,即沿着该路径的路由器序号;
第二列是第一次往返时延;
第三列是第二次往返时延;
第四列是第三次往返时延;
第五列是路由器的名字及其输入端口的 IP 地址。
如果源从任何给定的路由器接收到的报文少于 3 条(由于网络中的分组丢失),traceroute 在该路由器号码后面放一个星号,并报告到达那台路由器的少于 3 次的往返时间。
此外,tracert 命令还可以用来查看网络在连接站点时经过的步骤或采取哪种路线,如果是网络出现故障,就可以通过这条命令查看出现问题的位置。
Linux netstat命令
显示网卡列表
netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 181864 0 0 0 141278 0 0 0 BMRU
lo 16436 0 3362 0 0 0 3362 0 0 0 LRU
tcpdump详解
[root@centos-a1 ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-05-14 14:34:53 CST; 3 months 6 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 6519 (sshd)
Tasks: 1
CGroup: /system.slice/sshd.service
└─6519 /usr/sbin/sshd -D
May 14 14:34:53 centos-a1 systemd[1]: Starting OpenSSH server daemon...
May 14 14:34:53 centos-a1 sshd[6519]: Server listening on 0.0.0.0 port 22.
May 14 14:34:53 centos-a1 sshd[6519]: Server listening on :: port 22.
May 14 14:34:53 centos-a1 systemd[1]: Started OpenSSH server daemon.
Aug 20 21:43:32 centos-a1 sshd[62962]: Accepted password for root from 192....h2
Hint: Some lines were ellipsized, use -l to show in full.
[root@centos-a1 ssh]# rpm -ql openssh
/etc/ssh
/etc/ssh/moduli
/usr/bin/ssh-keygen
/usr/libexec/openssh
/usr/libexec/openssh/ctr-cavstest
/usr/libexec/openssh/ssh-keysign
/usr/share/doc/openssh-7.4p1
/usr/share/doc/openssh-7.4p1/CREDITS
/usr/share/doc/openssh-7.4p1/ChangeLog
/usr/share/doc/openssh-7.4p1/INSTALL
/usr/share/doc/openssh-7.4p1/OVERVIEW
/usr/share/doc/openssh-7.4p1/PROTOCOL
/usr/share/doc/openssh-7.4p1/PROTOCOL.agent
/usr/share/doc/openssh-7.4p1/PROTOCOL.certkeys
/usr/share/doc/openssh-7.4p1/PROTOCOL.chacha20poly1305
/usr/share/doc/openssh-7.4p1/PROTOCOL.key
/usr/share/doc/openssh-7.4p1/PROTOCOL.krl
/usr/share/doc/openssh-7.4p1/PROTOCOL.mux
/usr/share/doc/openssh-7.4p1/README
/usr/share/doc/openssh-7.4p1/README.dns
/usr/share/doc/openssh-7.4p1/README.platform
/usr/share/doc/openssh-7.4p1/README.privsep
/usr/share/doc/openssh-7.4p1/README.tun
/usr/share/doc/openssh-7.4p1/TODO
/usr/share/licenses/openssh-7.4p1
/usr/share/licenses/openssh-7.4p1/LICENCE
/usr/share/man/man1/ssh-keygen.1.gz
/usr/share/man/man8/ssh-keysign.8.gz
[root@centos-a2 ~]# ssh [email protected]
The authenticity of host '192.168.111.21 (192.168.111.21)' can't be established.
ECDSA key fingerprint is SHA256:neNXOqt5dtpgqjMfQBdDG+/r3Qfpn4sd2LQX/myzPuA.
ECDSA key fingerprint is MD5:b5:2c:92:2c:fc:4b:ab:c1:e6:6d:18:84:bb:0f:d7:15.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.111.21' (ECDSA) to the list of known hosts.
[email protected]'s password:
Last login: Sat Aug 20 21:43:32 2022 from 192.168.111.1
[root@centos-a1 ~]#
[root@centos-a1 ~]# exit
logout
Connection to 192.168.111.21 closed.
[root@centos-a2 ~]# cd .ssh
[root@centos-a2 .ssh]# ll
total 4
-rw-r--r-- 1 root root 176 Aug 20 21:50 known_hosts
[root@centos-a2 .ssh]# cat known_hosts
192.168.111.21 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEM0UYFv6otC7lwkXglcTXNiftPZ0kRJ17UzGn18BU8RKNm9uf/eLa+LsF9BYLaBDsuSXC3u2FCC6e1/UmGsHPY=
CentOS之OpenSSH
[root@centos-a2 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:
SHA256:XpZOAJMWMFdOlQtg9F81foix3BA1QIDbQXBv2jMvO0E root@centos-a2
The key's randomart image is:
+---[RSA 2048]----+
| ooO=+==+*+= |
| +o*o.oo O + |
| . ++ oB + .|
| .oo*E . |
| S B.+ |
| . = .+ |
| . . ... |
| .o |
| .. |
+----[SHA256]-----+
[root@centos-a2 .ssh]# ll
total 12
-rw------- 1 root root 1675 Aug 20 21:53 id_rsa
-rw-r--r-- 1 root root 396 Aug 20 21:53 id_rsa.pub
-rw-r--r-- 1 root root 176 Aug 20 21:50 known_hosts
[root@centos-a2 .ssh]# ssh-copy-id -i id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
/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
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
[root@centos-a1 ~]# cd .ssh
[root@centos-a1 .ssh]# ll
total 4
-rw------- 1 root root 396 Aug 20 21:56 authorized_keys
[root@centos-a2 .ssh]# ssh 192.168.111.21
Last login: Sat Aug 20 21:50:55 2022 from 192.168.111.22
[root@centos-a1 ~]#
[root@centos-a1 /]# ll
-rw-r--r-- 1 root root 384 Aug 20 22:00 Identity.pub
[root@centos-a1 /]# cat Identity.pub >> root/.ssh/authorized_keys
[root@centos-a1 ~]# gedit
(gedit:64091): Gtk-WARNING **: 22:09:47.750: cannot open display:
[root@centos-a1 ~]# gedit
[root@centos-a1 ~]# firefox
[stu@centos-a2 ~]$ ssh -Y 192.168.111.21
The authenticity of host '192.168.111.21 (192.168.111.21)' can't be established.
ECDSA key fingerprint is SHA256:neNXOqt5dtpgqjMfQBdDG+/r3Qfpn4sd2LQX/myzPuA.
ECDSA key fingerprint is MD5:b5:2c:92:2c:fc:4b:ab:c1:e6:6d:18:84:bb:0f:d7:15.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.111.21' (ECDSA) to the list of known hosts.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Last failed login: Sat Aug 20 22:17:00 CST 2022 from 192.168.111.22 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sat Aug 20 22:13:00 2022 from 192.168.111.1
/usr/bin/xauth: file /home/stu/.Xauthority does not exist
[stu@centos-a1 ~]$ gedit
(gedit:8385): GLib-GIO-CRITICAL **: 22:17:04.432: g_dbus_proxy_new_sync: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
(gedit:8385): dconf-WARNING **: 22:17:04.448: failed to commit changes to dconf: Could not connect: Connection refused
(gedit:8385): dconf-WARNING **: 22:17:04.458: failed to commit changes to dconf: Could not connect: Connection refused
TigerVNC 详解 一
VNC是Virtual Network Computing(虚拟网络计算机)的缩写。VNC是由AT&T的欧洲研究实验室开发的一款优秀的跨平台远程桌面控制软件,支持Linux,Unix,Windows等操作系统跨平台远程桌面控制。
什么是epel?如何安装epel-release?
EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。
「xrdp」- 通过 Windows 远程 Linux 桌面
xrdp,是 RDP 协议的服务端实现,基于 FreeRDP 和 rdesktop 的工作,xrdp 使用 RDP(远程桌面协议)向用户呈现图形化界面。
[root@centos-a1 ~]# systemctl start xrdp
[root@centos-a1 ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
[root@centos-a1 ~]# vncserver
New 'centos-a1:1 (root)' desktop is centos-a1:1
Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/centos-a1:1.log