Linux常用网络指令

网络参数设定使用的指令

手动/自动设定与启动/关闭 IP 参数:ifconfig, ifup, ifdown

ifconfig

ifconfig常用于修改网络配置以及查看网络参数的指令

[root@www ~]# ifconfig {interface} {up|down} <== 观察与启动接口
[root@www ~]# ifconfig interface {options} <== 设定与修改接口
选项与参数:
interface:网络卡接口代号,包括 eth0, eth1, ppp0 等等
options :可以接的参数,包括如下:
up, down :启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数)
mtu :可以设定不同的 MTU 数值,例如 mtu 1500 (单位为 byte)
netmask :就是子屏蔽网络;
broadcast:就是广播地址啊!

基础示例

[zhangshiyu@localhost ~]$ ifconfig# 输出结果
# ens33为网卡代号 mtu为以太网最大传输单元 1500
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
# inet 为ipv4地址 netmask 为子网掩码 broadcast 为广播地址inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255# inet6 为ipv6地址inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)# RX packets 代表接受到网络包数量  errors代表网络包发生错误的数量 ,dropped 代表被丢失的网络包数量RX packets 63446  bytes 63343307 (60.4 MiB)RX errors 0  dropped 0  overruns 0  frame 0# 由本机传输的网络包数量 其余字段代表语义遇上相同,只不过传输方向相反TX packets 9302  bytes 1593829 (1.5 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0# 环回口网络参数信息,不多赘述
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 3668  bytes 316656 (309.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3668  bytes 316656 (309.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

临时修改某接口ip,如下所示,将lo环回口ip地址改为127.0.0.2,注意我们没有增加子网掩码、广播地址等配置,所以这些参数值都是由系统自动计算得出的


[root@localhost zhangshiyu]# ifconfig lo 127.0.0.2
# 使用ifconfig确定修改结果是否生效
[root@localhost zhangshiyu]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 63701  bytes 63365589 (60.4 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 9417  bytes 1606248 (1.5 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.2  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 3668  bytes 316656 (309.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3668  bytes 316656 (309.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

修改环回口地址,子网掩码,mtu值

[root@localhost zhangshiyu]# ifconfig lo 127.0.0.2 \
> netmask 255.255.255.255 mtu 8000
# 使用ifconfig确认修改是否生效
[root@localhost zhangshiyu]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 63887  bytes 63381397 (60.4 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 9500  bytes 1614832 (1.5 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 8000inet 127.0.0.2  netmask 255.255.255.255inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 3668  bytes 316656 (309.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3668  bytes 316656 (309.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@localhost zhangshiyu]#

仅仅修改以太网最大mtu的值

[root@localhost zhangshiyu]# ifconfig lo mtu 9000
[root@localhost zhangshiyu]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 63963  bytes 63387686 (60.4 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 9535  bytes 1618429 (1.5 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 9000inet 127.0.0.2  netmask 255.255.255.255inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 3668  bytes 316656 (309.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3668  bytes 316656 (309.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

基于lo口,创建一个仿真的虚拟网络接口

# 如下所示格式为   ifconfig    网口:数字 ip地址等参数
[root@localhost zhangshiyu]# ifconfig lo:0 127.0.0.4
# 可以看到最终会输出一个lo:0的网口
[root@localhost zhangshiyu]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 64048  bytes 63394595 (60.4 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 9577  bytes 1622719 (1.5 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 9000inet 127.0.0.2  netmask 255.255.255.255inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 3668  bytes 316656 (309.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3668  bytes 316656 (309.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 9000inet 127.0.0.4  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)

将上述修改还原

/etc/init.d/network restart

如果我们希望接口直接启动,而无需配置ip,使用下述命令即可

ifconfig eth0 up

ifup、ifdown

这两条指令只能用于修改过/etc/sysconfig/network-scripts对应接口配置后,对接口进行启动和关闭所用的.注意假如你用ifconfig等命令修改过网络的话,那么ifup、ifdown可能就不会成功,因为这两条指令会将当前网络参数和上述的配置文件进行比较,若不同则不允许ifup、ifdown

# 关闭接口示例
[root@localhost ~]# ifdown ens33
Device 'ens33' successfully disconnected.# 可以看到ens33的ip消失了
[root@localhost ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 64366  bytes 63427667 (60.4 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 9731  bytes 1650547 (1.5 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 9000inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 3892  bytes 336256 (328.3 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3892  bytes 336256 (328.3 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0# 启动接口示例
[root@localhost ~]# ifup ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)# 可以看到ens33的ip回来了
[root@localhost ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 64370  bytes 63428006 (60.4 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 9749  bytes 1653181 (1.5 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 9000inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 3980  bytes 344032 (335.9 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3980  bytes 344032 (335.9 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

路由修改: route

[root@www ~]# route [-nee]
[root@www ~]# route add [-net|-host] [网域或主机] netmask [mask]
[gw|dev]
[root@www ~]# route del [-net|-host] [网域或主机] netmask [mask]
[gw|dev]
观察的参数:
-n :不要使用通讯协议或主机名,直接使用 IP 或 port number;
-ee :使用更详细的信息来显示
增加 (add) 与删除 (del) 路由的相关参数:
-net :表示后面接的路由为一个网域;
-host :表示后面接的为连接到单部主机的路由;
netmask :与网域有关,可以设定 netmask 决定网域的大小;
gw :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
net.qiang@hotmail.com
dev :如果只是要指定由那一块网络卡联机出去,则使用这个设定,
后面接 eth0 等

不显示计算机名字,直接以ip的形式查看路由

[zhangshiyu@localhost ~]$ route -n# 输出结果
#Destination     目标网段
# Gateway         经过网关
# Genmask         子网掩码
# flags:U 代表该路由启动的,H 目标是一部主机而非某个网段,G 该路由要走网关,R 使用动态路由时,恢复路由信息的旗标,D:已经由服务或转 port 功能设定为动态路由 	M:路由已经被修改了;
# Iface该路由经过的网卡
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens33
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33

注意路由的排序是由精确到模糊,所以当你配置的两条路由目标网段一致,永远只会走最上面的那条路由,如下所示,两条路由目标地址一致,但是计算机永远只会走ens33这个接口的路由

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens33
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens34

增加一条路由,注意这条路由必须是你和你计算机同网段或者是可达的,否则会报错

# 增加一条到达127网段的路由 从ens33这张网卡走
[root@localhost zhangshiyu]# route add -net 127.0.0.0 netmask 255.255.255.0 dev ens33# 可以看到这条路有添加成功了
[root@localhost zhangshiyu]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens33
127.0.0.0       0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33

增加一条默认路由

# 增加一条默认路由 网关为127.0.0.6
[root@localhost zhangshiyu]# route add default gw 127.0.0.6# 可以看到增加了一条经过网关的默认路由
[root@localhost zhangshiyu]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         127.0.0.6       0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens33
127.0.0.0       0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33

删除一条路由,就以笔者路由为例上文中有一条Gateway 为127.0.0.6的默认路由,Destination 为0.0.0.0所以我们的命令如下

# 删除一条Destination 为0.0.0.0 netmask 0.0.0.0 网口为ens33的路由
[root@localhost zhangshiyu]# route del -net 0.0.0.0 netmask 0.0.0.0 dev ens33# 可以看到删除成功了
[root@localhost zhangshiyu]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens33
127.0.0.0       0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33

网络参数综合指令: ip

这条指令可以完成上述指令的功能,且可以做更多的事情

[root@www ~]# ip [option] [动作] [指令]
选项与参数:
net.qiang@hotmail.com
option :设定的参数,主要有:
-s :显示出该装置的统计数据(statistics),例如总接受封包数等;
动作:亦即是可以针对哪些网络参数进行动作,包括有:
link :关于装置 (device) 的相关设定,包括 MTU, MAC 地址等等
addr/address :关于额外的 IP 协议,例如多 IP 的达成等等;
route :与路由有关的相关设定

列出所有的接口信息

[root@localhost zhangshiyu]# ip link show# 输出内容
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 9000 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:bd:2b:9e brd ff:ff:ff:ff:ff:ff
3: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000link/ether 52:54:00:75:26:83 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT group default qlen 1000link/ether 52:54:00:75:26:83 brd ff:ff:ff:ff:ff:ff

启动和关闭网络

# 关闭环回口
[root@localhost zhangshiyu]# ip link set lo down
# 查看ip发现lo消失
[root@localhost zhangshiyu]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 66790  bytes 63767299 (60.8 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 10587  bytes 1748607 (1.6 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0# 开启环回口
[root@localhost zhangshiyu]# ip link set lo up# 查看ip发现lo回来了
[root@localhost zhangshiyu]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 66879  bytes 63774928 (60.8 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 10641  bytes 1754435 (1.6 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 9000inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 4194  bytes 362432 (353.9 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 4194  bytes 362432 (353.9 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

修改网卡名称

# 修改前记得将网络关闭
[root@localhost zhangshiyu]# ip link set lo down# 将lo修改为test_lo
[root@localhost zhangshiyu]# ip link set lo name test_lo# 再次启动查看ip发现名字确实修改了
[root@localhost zhangshiyu]# ip link set lo up
Cannot find device "lo"
[root@localhost zhangshiyu]# ip link set test_lo up# 查看ip发现名字确实修改了
[root@localhost zhangshiyu]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 67093  bytes 63792856 (60.8 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 10751  bytes 1765917 (1.6 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0test_lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 9000inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 4194  bytes 362432 (353.9 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 4194  bytes 362432 (353.9 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

修改mac地址

# 将test_lo环回口改为aa:aa:aa:aa:aa:aa
[root@localhost zhangshiyu]# ip link set test_lo address aa:aa:aa:aa:aa:aa# 查看ip信息得以印证
[root@localhost zhangshiyu]# ip link show
1: test_lo: <LOOPBACK,UP,LOWER_UP> mtu 9000 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback aa:aa:aa:aa:aa:aa brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:bd:2b:9e brd ff:ff:ff:ff:ff:ff
3: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000link/ether 52:54:00:75:26:83 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT group default qlen 1000link/ether 52:54:00:75:26:83 brd ff:ff:ff:ff:ff:ff

上文操作都是和网络第二层(数据链路层)相关的操作,接下来我们介绍一下网络第三层的操作

[root@www ~]# ip address show <==就是查阅 IP 参数啊!
[root@www ~]# ip address [add|del] [IP 参数] [dev 装置名] [相关参数]
选项与参数:
show :单纯的显示出接口的 IP 信息啊;
add|del :进行相关参数的增加 (add) 或删除 (del) 设定,主要有:
IP 参数:主要就是网域的设定,例如 192.168.100.100/24 之类的设定
喔;
dev :这个 IP 参数所要设定的接口,例如 eth0, eth1 等等;
相关参数:主要有底下这些:
broadcast:设定广播地址,如果设定值是 + 表示『让系统自动计算』
label :亦即是这个装置的别名,例如 eth0:0 就是了!
scope :这个界面的领域,通常是这几个大类:
global :允许来自所有来源的联机;
site :仅支持 IPv6 ,仅允许本主机的联机;
link :仅允许本装置自我联机;
host :仅允许本主机内部的联机;
所以当然是使用 global 啰!预设也是 global 啦

列出所有接口的ip参数

[root@localhost zhangshiyu]# ip address show# 输出结果
1: test_lo: <LOOPBACK,UP,LOWER_UP> mtu 9000 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback aa:aa:aa:aa:aa:aa brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host test_lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:bd:2b:9e brd ff:ff:ff:ff:ff:ffinet 192.168.0.100/24 brd 192.168.0.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::fee8:8f4e:2041:7509/64 scope link noprefixroutevalid_lft forever preferred_lft forever
3: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:75:26:83 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:75:26:83 brd ff:ff:ff:ff:ff:ff

为ens33网卡增加一个虚拟ip

# 增加一条 ip为192.168.2.33/24 广播地址为192.168.0.255 经过ens33网卡的地址
[root@localhost zhangshiyu]#ip address add 192.168.2.33/24 broadcast  +  dev ens33 label ens33:5233# 可以看到增加成功了
[root@localhost zhangshiyu]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::fee8:8f4e:2041:7509  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)RX packets 67995  bytes 63887086 (60.9 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 11217  bytes 1815310 (1.7 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33:5233: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.33  netmask 255.255.255.0  broadcast 192.168.2.255ether 00:0c:29:bd:2b:9e  txqueuelen 1000  (Ethernet)test_lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 9000inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 4350  bytes 376116 (367.3 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 4350  bytes 376116 (367.3 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

接下来就是ip指令关于路由的操作了

# 查看当前路由表
[root@localhost zhangshiyu]# ip route show
default via 192.168.0.254 dev ens33 proto static metric 100
192.168.0.0/24 dev ens33 proto kernel scope link src 192.168.0.100 metric 100
192.168.2.0/24 dev ens33 proto kernel scope link src 192.168.2.33# 增加一条到达192.168.5.0网段的路由,交由ens33网卡处理
[root@localhost zhangshiyu]# ip route add 192.168.5.0/24 dev ens33# 查看路由,可以看到增加的路由,说明配置成功了
[root@localhost zhangshiyu]# ip route show
default via 192.168.0.254 dev ens33 proto static metric 100
192.168.0.0/24 dev ens33 proto kernel scope link src 192.168.0.100 metric 100
192.168.2.0/24 dev ens33 proto kernel scope link src 192.168.2.33
192.168.5.0/24 dev ens33 scope link
[root@localhost zhangshiyu]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens33
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33

增加一条默认路由

# 查看当前路由
[root@localhost zhangshiyu]# ip route show
\default via 192.168.0.254 dev ens33 proto static metric 100
192.168.0.0/24 dev ens33 proto kernel scope link src 192.168.0.100 metric 100
192.168.2.0/24 dev ens33 proto kernel scope link src 192.168.2.33
192.168.5.0/24 dev ens33 scope link# 增加一条默认路由 网关为192.168.1.254 经过ens33网卡处理
[root@localhost zhangshiyu]# ip route add default via 192.168.1.254 dev ens33
RTNETLINK answers: Network is unreachable
[root@localhost zhangshiyu]# ip route add default via 192.168.0.254 dev ens33
[root@localhost zhangshiyu]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens33
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 ens33

手动使用 DHCP 自动取得 IP 参数:dhclient(选看)

如果你是使用 DHCP 协议在局域网络内取得 IP 的话,那么是否一定要去编辑
ifcfg-eth0 内的 BOOTPROTO 呢? 嘿嘿!有个更快速的作法,那就是利用 dhclient 这
个指令~因为这个指令才是真正发送 dhcp 要求工作的程序啊!那要如何使用呢?很简
单!如果不考虑其他的参数,使用底下的方法即可:

[root@www ~]# dhclient eth0

网络侦错与观察指令

两部主机两点沟通: ping, 用 ping 追踪路径中的最大 MTU 数值

[root@www ~]# ping [选项与参数] IP
选项与参数:
-c 数值:后面接的是执行 ping 的次数,例如 -c 5 ;
-n :在输出数据时不进行 IP 与主机名的反查,直接使用 IP 输出(速度
较快);
-s 数值:发送出去的 ICMP 封包大小,预设为 56bytes,不过你可以放大此
一数值;
-t 数值:TTL 的数值,预设是 255,每经过一个节点就会少一;
-W 数值:等待响应对方主机的秒数。
-M [do|dont] :主要在侦测网络的 MTU 数值大小,两个常见的项目是:
do :代表传送一个 DF (Don't Fragment) 旗标,让封包不能重新拆包与
打包;
dont:代表不要传送 DF 旗标,表示封包可以在其他主机上拆包与打包

ping三次目标主机

[root@localhost zhangshiyu]# ping -c 3 192.168.0.107# 64 bytes 代表icmp封包大小
# icmp_seq=1 第几次探测 1代表第一次
#  ttl=128代表网络封包经过的最大跳数
# time响应时间
PING 192.168.0.107 (192.168.0.107) 56(84) bytes of data.
64 bytes from 192.168.0.107: icmp_seq=1 ttl=128 time=0.345 ms
64 bytes from 192.168.0.107: icmp_seq=2 ttl=128 time=0.352 ms
64 bytes from 192.168.0.107: icmp_seq=3 ttl=128 time=0.277 ms--- 192.168.0.107 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.277/0.324/0.352/0.039 ms
[root@localhost zhangshiyu]#

探测目标路径最大mtu值

# ping 3次 每个包都不切割,mtu大小为1000byte
[root@localhost zhangshiyu]# ping -c 3 -s 1000 -M do 192.168.0.107
PING 192.168.0.107 (192.168.0.107) 1000(1028) bytes of data.
1008 bytes from 192.168.0.107: icmp_seq=1 ttl=128 time=0.364 ms
1008 bytes from 192.168.0.107: icmp_seq=2 ttl=128 time=0.402 ms
1008 bytes from 192.168.0.107: icmp_seq=3 ttl=128 time=0.705 ms--- 192.168.0.107 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.364/0.490/0.705/0.153 ms# 同理mtu增加到1501
[root@localhost zhangshiyu]# ping -c 3 -s 1501 -M do 192.168.0.107
PING 192.168.0.107 (192.168.0.107) 1501(1529) bytes of data.
ping: local error: Message too long, mtu=1500
ping: local error: Message too long, mtu=1500
ping: local error: Message too long, mtu=1500--- 192.168.0.107 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2001ms

常见以太网最大mtu值

在这里插入图片描述

两主机间各节点分析: traceroute

[root@www ~]# traceroute [选项与参数] IP
选项与参数:
-n :可以不必进行主机的名称解析,单纯用 IP ,速度较快!
-U :使用 UDP 的 port 33434 来进行侦测,这是预设的侦测协议;
-I :使用 ICMP 的方式来进行侦测;
net.qiang@hotmail.com
-T :使用 TCP 来进行侦测,一般使用 port 80 测试
-w :若对方主机在几秒钟内没有回声就宣告不治...预设是 5 秒
-p 埠号:若不想使用 UDP 与 TCP 的预设埠号来侦测,可在此改变埠号。
-i 装置:用在比较复杂的环境,如果你的网络接口很多很复杂时,才会用到
这个参数;
举例来说,你有两条 ADSL 可以连接到外部,那你的主机会有两个
ppp,
你可以使用 -i 来选择是 ppp0 还是 ppp1 啦!
-g 路由:与 -i 的参数相仿,只是 -g 后面接的是 gateway 的 IP 就是了。
# 追踪本机到百度的路由状态
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# traceroute -n www.baidu.com
traceroute to www.baidu.com (110.242.68.3), 30 hops max, 60 byte packets1  10.247.219.126  0.730 ms 10.130.126.126  0.436 ms 10.130.127.126  0.804 ms2  11.73.6.241  0.971 ms 11.73.15.93  0.900 ms
# 设置等待时间 为1秒,以及 TCP 80 端口的情况下探测路由
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# traceroute -w 1    -n -T  www.baidu.com
traceroute to www.baidu.com (110.242.68.4), 30 hops max, 60 byte packets1  10.247.218.126  0.757 ms 10.247.219.126  0.682 ms 10.247.218.126  0.758 ms2  11.73.16.45  3.663 ms * 11.73.15.117  1.492 ms3  11.95.20.137  1.011 ms 11.95.19.193  1.085 ms 11.54.243.125  0.968 ms4  10.102.35.113  5.864 ms * 116.251.124.165  1.906 ms5  * 10.54.254.73  5.134 ms 140.205.24.145  6.110 ms6  10.102.155.114  6.082 ms 61.55.133.157  10.110 ms 10.102.155.130  6.065 ms7  202.99.167.25  10.245 ms 116.251.115.61  10.158 ms 202.99.167.53  17.354 ms8  211.90.1.37  9.495 ms 61.182.145.22  16.153 ms 211.90.1.69  11.396 ms9  61.182.172.41  16.644 ms 202.99.167.53  17.375 ms  17.153 ms
10  61.182.145.26  16.081 ms * 110.242.66.182  18.371 ms
11  * 61.182.184.105  13.422 ms *
12  110.242.66.182  18.259 ms * *
13  * * *
14  * * 110.242.68.4  19.453 ms

察看本机的网络联机与后门: netstat

[root@www ~]# netstat -[rn] <==与路由有关的参数
[root@www ~]# netstat -[antulpc] <==与网络接口有关的参数
选项与参数:
与路由 (route) 有关的参数说明:
-r :列出路由表(route table),功能如同 route 这个指令;
-n :不使用主机名与服务名称,使用 IP 与 port number ,如同 route -n
与网络接口有关的参数:
-a :列出所有的联机状态,包括 tcp/udp/unix socket 等;
-t :仅列出 TCP 封包的联机;
-u :仅列出 UDP 封包的联机;
-l :仅列出有在 Listen (监听) 的服务之网络状态;
-p :列出 PID 与 Program 的檔名;
-c :可以设定几秒钟后自动更新一次,例如 -c 5 每五秒更新一次网络状态
的显示;

列出当前路由表,以ip和port的格式输出


[zhangshiyu@localhost ~]$ netstat -rn# 输出结果
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.92.254  0.0.0.0         UG        0 0          0 ens33
192.168.92.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0
[zhangshiyu@localhost ~]$

查看当前网络联机状态以ip和port的格式输出

[zhangshiyu@localhost ~]$ netstat -an
# 输出内容
# Proto 协议是tcp还是udp
# Recv-Q:用户未接收字节数
# Send-Q: 用户未发送完成的字节数,或者说远程主机未确认收到的字节数
# Local Address:本地ip地址以及端口
# Foreign Address:远程ip地址以及端口
# State :连接状态
# ESTABLISED:已建立联机的状态;
#  SYN_SENT:请求同步;
#  SYN_RECV:远程主机收到我们的同步包
#  FIN_WAIT1:请求断开连接
#  FIN_WAIT2:该联机已挂断,但正在等待对方主机响应断线确认的封
包;
#  TIME_WAIT:该联机已挂断,但 socket 还在网络上等待结束;
#  LISTEN:通常用在服务的监听 port Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN
tcp        0      0 192.168.92.10:22        192.168.92.1:53374      ESTABLISHED
tcp        0     36 192.168.92.10:22        192.168.92.1:53373      ESTABLISHED
tcp6       0      0 :::111                  :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:631                 :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN
tcp6       0      0 ::1:6010                :::*                    LISTEN
udp        0      0 127.0.0.1:323           0.0.0.0:*
udp        0      0 0.0.0.0:872             0.0.0.0:*
udp        0      0 192.168.122.1:53        0.0.0.0:*
udp        0      0 0.0.0.0:67              0.0.0.0:*
udp        0      0 0.0.0.0:111             0.0.0.0:*
udp        0      0 0.0.0.0:5353            0.0.0.0:*
udp        0      0 0.0.0.0:49417           0.0.0.0:*
udp6       0      0 ::1:323                 :::*
udp6       0      0 :::872                  :::*
udp6       0      0 :::111                  :::*
raw6       0      0 :::58                   :::*                    7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     28673    /var/run/libvirt/libvirt-sock
unix  2      [ ACC ]     STREAM     LISTENING     28675    /var/run/libvirt/libvirt-sock-ro
unix  2      [ ACC ]     STREAM     LISTENING     9219     /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     28677    /var/run/libvirt/libvirt-admin-sock

查看当前启动的网络进程


[zhangshiyu@localhost ~]$ netstat -tulnp
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 ::1:631                 :::*                    LISTEN      -
tcp6       0      0 ::1:25                  :::*                    LISTEN      -
tcp6       0      0 ::1:6010                :::*                    LISTEN      -
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -
udp        0      0 0.0.0.0:872             0.0.0.0:*                           -
udp        0      0 192.168.122.1:53        0.0.0.0:*                           -
udp        0      0 0.0.0.0:67              0.0.0.0:*                           -
udp        0      0 0.0.0.0:111             0.0.0.0:*                           -
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           -
udp        0      0 0.0.0.0:49417           0.0.0.0:*                           -
udp6       0      0 ::1:323                 :::*                                -
udp6       0      0 :::872                  :::*                                -
udp6       0      0 :::111                  :::*                                -

查出当前所有的网络进程

[zhangshiyu@localhost ~]$ netstat -atunp
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -
tcp        0      0 192.168.92.10:22        192.168.92.1:53374      ESTABLISHED -
tcp        0     36 192.168.92.10:22        192.168.92.1:53373      ESTABLISHED -
tcp6       0      0 :::111                  :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 ::1:631                 :::*                    LISTEN      -
tcp6       0      0 ::1:25                  :::*                    LISTEN      -
tcp6       0      0 ::1:6010                :::*                    LISTEN      -
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -
udp        0      0 0.0.0.0:872             0.0.0.0:*                           -
udp        0      0 192.168.122.1:53        0.0.0.0:*                           -
udp        0      0 0.0.0.0:67              0.0.0.0:*                           -
udp        0      0 0.0.0.0:111             0.0.0.0:*                           -
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           -
udp        0      0 0.0.0.0:49417           0.0.0.0:*                           -
udp6       0      0 ::1:323                 :::*                                -
udp6       0      0 :::872                  :::*                                -
udp6       0      0 :::111                  :::*                                -

侦测主机名与 IP 对应: host, nslookup

host

[root@www ~]# host [-a] hostname [server]
选项与参数:
-a :列出该主机详细的各项主机名设定数据
[server] :可以使用非为 /etc/resolv.conf 的 DNS 服务器 IP 来查询。

列出百度的ip地址


[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 110.242.68.4
www.a.shifen.com has address 110.242.68.3

指定dns解析域名,命令如下所示,笔者使用8.8.8.8这台dns解析百度的ip地址


[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# host www.baidu.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com is an alias for www.wshifen.com.
www.wshifen.com has address 103.235.46.40

nslookup

[root@www ~]# nslookup [-query=[type]] [hostname|IP]
选项与参数:
-query=type:查询的类型,除了传统的 IP 与主机名对应外,DNS 还有很多
信息,
所以我们可以查询很多不同的信息,包括 mx, cname 等等,
例如: -query=mx 的查询方法!

解析百度域名对应的ip

[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# nslookup www.baidu.com
Server:         100.100.2.136
Address:        100.100.2.136#53Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 110.242.68.4
Name:   www.a.shifen.com
Address: 110.242.68.3

用ip找出对应的域名

[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# nslookup 8.8.8.8
# 从输出结果可以看出这个ip是谷歌的
8.8.8.8.in-addr.arpa    name = dns.google.

远程联机指令与实时通讯软件

telnet

这条指令常用于测试机器某端口是否启动,通过检查连通性判断端口状况

[root@www ~]# telnet [host|IP [port]]

示例

# 测试本机3000端口连通性,看到输出结果就知道连接被拒绝,该端口无法连通
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# telnet localhost 3000
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
# 测试本机80端口联通性,因为笔者开启了http服务,所以会显示连接上了
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# telnet localhost 80
Trying ::1...
Connected to localhost.

FTP

文件传输协议,使用ftp与目标主机连接命令格式如下

[root@www ~]# ftp [host|IP] [port]

使用示例

# 范例一:联机到昆山科大去看看
[root@www ~]# yum install ftp
[root@www ~]# ftp ftp.ksu.edu.tw
Connected to ftp.ksu.edu.tw (120.114.150.21).
220---------- Welcome to Pure-FTPd [privsep] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 16:25. Server port: 21.
220-Only anonymous FTP is allowed here <==讯息要看啊!这个 FTP 仅支
援匿名
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 5 minutes of inactivity.
Name (ftp.ksu.edu.tw:root): anonymous <==鸟哥这里用匿名登录!
230 Anonymous user logged in <==嗯!确实是匿名登录了!
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> <==最终登入的结果看起来是这样!
ftp> help <==提供需要的指令说明,可以常参考!
ftp> dir <==显示远程服务器的目录内容 (文件名列表)
ftp> cd /pub <==变换目录到 /pub 当中
ftp> get filename <==下载单一档案,档名为 filename
ftp> mget filename* <==下载多个档案,可使用通配符 *
ftp> put filename <==上传 filename 这个档案到服务器上
ftp> delete file <==删除主机上的 file 这个档案
net.qiang@hotmail.com
ftp> mkdir dir <==建立 dir 这个目录
ftp> lcd /home <==切换『本地端主机』的工作目录
ftp> passive <==启动或关闭 passive 模式
ftp> binary <==数据传输模式设定为 binary 格式
ftp> bye <==结束 ftp 软件的使用

lftp则是ftp的升级版,它支持将文件采集的指令写到脚本中,然后通过lftp指令进行文件采集

[root@www ~]# lftp [-p port] [-u user[,pass]] [host|IP]
[root@www ~]# lftp -f filename
[root@www ~]# lftp -c "commands"
选项与参数:
-p :后面可以直接接上远程 FTP 主机提供的 port
net.qiang@hotmail.com
-u :后面则是接上账号与密码,就能够连接上远程主机了
如果没有加账号密码, lftp 默认会使用 anonymous 尝试匿名登录
-f :可以将指令写入脚本中,这样可以帮助进行 shell script 的自动处理
喔!
-c :后面直接加上所需要的指令。

使用脚本采集文件示例

# 使用档案配合 lftp 去处理时:
[root@www ~]# mkdir lftp; cd lftp
[root@www lftp]# vim lftp.ksu.sh
open ftp.ksu.edu.tw
cd /pub/CentOS/
mget -c -d RPM-GPG*
bye
[root@www lftp]# lftp -f lftp.ksu.sh
[root@www lftp]# ls
lftp.ksu.sh RPM-GPG-KEY-CentOS-3 RPM-GPG-KEY-CentOS-4
RPM-GPG-KEY-CentOS-6
RPM-GPG-KEY-beta RPM-GPG-KEY-centos4 RPM-GPG-KEY-CentOS-5
# 直接将要处理的动作加入 lftp 指令中
[root@www lftp]# vim lftp.ksu.sh
lftp -c "open ftp.ksu.edu.tw
cd /pub/CentOS/
mget -c -d RPM-GPG*
bye"
[root@www lftp]# sh lftp.ksu.sh

文字接口网页浏览

links

[root@www ~]# links [options] [URL]
选项与参数:
-anonymous [0|1]:是否使用匿名登录的意思;
-dump [0|1] :是否将网页的数据直接输出到 standard out 而非 links
软件功能
-dump_charset :后面接想要透过 dump 输出到屏幕的语系编码,big5 使
用 cp950 喔

例如我们想访问Linux内核的网站

 links http://www.kernel.org

我们就会见到如下图所示的界面,页面操作大抵如下

1. 回车或者方向键右:进入白标选中连接
2. 左键:回退到上一个网页
3. 上下键:切换白标选中项
4. g键:按住g输入网址后可进入另一个页面

在这里插入图片描述

将百度的网页导到本地文件中

# 用links将连接文件导入到本地baidu.html中
[root@iZ8vb7bhe4b8nhhhpavhwpZ tmp]# links -dump www.baidu.com >baidu.html
# 查看文件可以看出导入成功了
[root@iZ8vb7bhe4b8nhhhpavhwpZ tmp]# more baidu.htmlRefresh: http://www.baidu.com/baidu.html?from=noscript<style data-for="result" type="text/css">body{color:#333;background:#fff;padding:6px 00;margin:0;position:relative}body,th,td,.p1,.p2{font-family:arial}p,form,ol,ul,li,dl,dt,dd,h3{margin:0;padding:0;list-style:none}input{padding-top:0;padding
-bottom:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}table,img{border:0}td{font-size:9pt;line-height:18px}em{font-style:nor
mal}em{font-style:normal;color:#c00}aem{text-decoration:underline}cite{font-style:normal;color:green}.m,a.m{color:#666}a.m:visited{color:#606}.g,a.g{color:green}.c{color:#77c}.f14{font-size:14p

wget

[root@www ~]# wget [option] [网址]
选项与参数:
若想要联机的网站有提供账号与密码的保护时,可以利用这两个参数来输入
喔!
--http-user=usrname
--http-password=password
--quiet :不要显示 wget 在抓取数据时候的显示讯息
更多的参数请自行参考 man wget 吧! ^_^

使用示例,使用wget获取jquery资源


[root@iZ8vb7bhe4b8nhhhpavhwpZ tmp]# wget https://code.jquery.com/jquery-3.6.0.min.js
--2022-07-07 09:53:57--  https://code.jquery.com/jquery-3.6.0.min.js
Resolving code.jquery.com (code.jquery.com)... 69.16.175.10, 69.16.175.42, 2001:4de0:ac18::1:a:3a, ...
Connecting to code.jquery.com (code.jquery.com)|69.16.175.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89501 (87K) [application/javascript]
Saving to: ‘jquery-3.6.0.min.js’100%[=====================================================================================================================>] 89,501       262KB/s   in 0.3s2022-07-07 09:53:59 (262 KB/s) - ‘jquery-3.6.0.min.js’ saved [89501/89501][root@iZ8vb7bhe4b8nhhhpavhwpZ tmp]# ll# 可以看到jquery的js已经下载到本地了
total 308
-rw-r--r-- 1 root root 211949 Jul  7 09:47 baidu.html
-rw-r--r-- 1 root root  89501 Oct 18  1991 jquery-3.6.0.min.js
drwx------ 3 root root   4096 May 21 19:18 systemd-private-c2a4f4c84d3e40f1b4accddd4d520313-chronyd.service-93ko8E
drwx------ 3 root root   4096 May 21 19:21 systemd-private-c2a4f4c84d3e40f1b4accddd4d520313-nginx.service-cHMIRd
drwxrwxrwx 2 root root   4096 Jun 22 10:28 testDir
[root@iZ8vb7bhe4b8nhhhpavhwpZ tmp]#

当然我们也可以修改wget的代理,只需编辑/etc/wgetrc文件即可,示例如下

[root@www ~]# vim /etc/wgetrc
#http_proxy = http://proxy.yoyodyne.com:18023/ <==找到底下这几行,
大约在 78 行
#ftp_proxy = http://proxy.yoyodyne.com:18023/
#use_proxy = on
# 将他改成类似底下的模样,记得,你必须要有可接受的 proxy 主机才行!
net.qiang@hotmail.com
http_proxy = http://proxy.ksu.edu.tw:3128/
use_proxy = on

网络嗅探

tcpdump

root@www ~]# tcpdump [-AennqX] [-i 接口] [-w 储存档名] [-c 次数] \
[-r 档案] [所欲撷取的封包数据格式]
选项与参数:
-A :封包的内容以 ASCII 显示,通常用来捉取 WWW 的网页封包资料。
-e :使用资料连接层 (OSI 第二层) 的 MAC 封包数据来显示;
-nn:直接以 IP 及 port number 显示,而非主机名与服务名称
-q :仅列出较为简短的封包信息,每一行的内容比较精简
-X :可以列出十六进制 (hex) 以及 ASCII 的封包内容,对于监听封包内容
很有用
-i :后面接要『监听』的网络接口,例如 eth0, lo, ppp0 等等的界面;
-w :如果你要将监听所得的封包数据储存下来,用这个参数就对了!后面接
档名
-r :从后面接的档案将封包数据读出来。那个『档案』是已经存在的档案,
并且这个『档案』是由 -w 所制作出来的。
-c :监听的封包数,如果没有这个参数, tcpdump 会持续不断的监听,
直到使用者输入 [ctrl]-c 为止。
所欲撷取的封包数据格式:我们可以专门针对某些通讯协议或者是 IP 来源进
行封包撷取,
net.qiang@hotmail.com
那就可以简化输出的结果,并取得最有用的信息。常见的表示方法有:
'host foo', 'host 127.0.0.1' :针对单部主机来进行封包撷取
'net 192.168' :针对某个网域来进行封包的撷取;
'src host 127.0.0.1' 'dst net 192.168':同时加上来源(src)或目标
(dst)限制
'tcp port 21':还可以针对通讯协议侦测,如 tcp, udp, arp, ether 等
还可以利用 and 与 or 来进行封包数据的整合显示呢!

基础示例

# 以ip和port的形式,获取ens192网卡的网络包
[root@localhost docs]# tcpdump  -i ens192 -nn# 输出结果,可以看到网络包的tpc三次握手的过程,关于tcp三次握手读者可执行查阅网上资料了解,这里就不多赘述了
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
10:09:56.298783 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 1307652082:1307652126, ack 910651255, win 355, length 44
10:09:56.298986 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 44, win 8206, length 0
10:09:56.299012 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 44:184, ack 1, win 355, length 140
10:09:56.299069 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 184:276, ack 1, win 355, length 92
10:09:56.299126 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 276:328, ack 1, win 355, length 52
10:09:56.299182 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 328:380, ack 1, win 355, length 52
10:09:56.299217 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 276, win 8212, length 0
10:09:56.299247 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 380:424, ack 1, win 355, length 44
10:09:56.299342 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 424:492, ack 1, win 355, length 68
10:09:56.299353 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 380, win 8212, length 0
10:09:56.299404 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 492:552, ack 1, win 355, length 60

我们都知道ssh协议端口号是22,属于知名端口(知名端口号为0-1023。注册端口号为1024-49151。剩下的端口号叫动态端口号或私有端口号,为49152-65535)。所以客户端使用ssh连接远程主机时,使用的就是动态端口,对此我们可以使用tcpdump进行验证

# 使用tcpdump 抓10次ssh协议的包
[root@localhost docs]# tcpdump  -i ens192 -nn port 22 -c 10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
10:13:53.326007 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 1309467622:1309467778, ack 910667235, win 355, length 156
10:13:53.326229 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 156, win 8210, length 0
10:13:53.326294 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 156:232, ack 1, win 355, length 76
10:13:53.326366 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 232:300, ack 1, win 355, length 68
10:13:53.326421 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 300:352, ack 1, win 355, length 52
10:13:53.326485 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 352:396, ack 1, win 355, length 44
10:13:53.326513 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 300, win 8209, length 0
10:13:53.326559 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 396:456, ack 1, win 355, length 60
10:13:53.326653 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 396, win 8209, length 0
10:13:53.326731 IP 10.168.104.32.22 > 10.168.3.14.53198: Flags [P.], seq 456:500, ack 1, win 355, length 44
10 packets captured
10 packets received by filter
0 packets dropped by kernel

例题:如何使用 tcpdump 监听 (1)来自 ens192 适配卡且 (2)通讯协议为 port22 ,(3)封包来源为 10.168.3.14 的封包资料?


[root@localhost docs]# tcpdump -i ens192 -nn 'port 22 and src 10.168.3.14' -c 10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
10:19:18.322530 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 1309470746, win 8210, length 0
10:19:18.367757 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 61, win 8210, length 0
10:19:18.412806 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 105, win 8209, length 0
10:19:18.458625 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 157, win 8209, length 0
10:19:18.518701 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 201, win 8209, length 0
10:19:18.563508 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 245, win 8209, length 0
10:19:18.608907 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 289, win 8209, length 0
10:19:18.653772 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 333, win 8209, length 0
10:19:18.699672 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 377, win 8208, length 0
10:19:18.745809 IP 10.168.3.14.53198 > 10.168.104.32.22: Flags [.], ack 421, win 8208, length 0
10 packets captured
10 packets received by filter
0 packets dropped by kernel

测试端口可达性(nc、netcat)

nc和netcat一样都是用于测试某个端口的连通性的,使用的命令格式如下(若没有安装记得使用yum -y install nc):

[root@www ~]# nc [-u] [IP|host] [port]
[root@www ~]# nc -l [IP|host] [port]
选项与参数:
-l :作为监听之用,亦即开启一个 port 来监听用户的联机;
-u :不使用 TCP 而是使用 UDP 作为联机的封包状态

基础示例

# 可以看到本机25端口未开放
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# nc localhost 25
Ncat: Connection refused.
# 而80端口连通性是没问题的
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# nc localhost 80

自定义监听并使用nc测试连通性

# 建立一个2000的nc后台监听
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# nc -l localhost 20000 &
[1] 4624
# 可以看到监听建立了
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# netstat -tulnp |grep nc |grep -v 'grep'
tcp6       0      0 ::1:20000               :::*                    LISTEN      4624/nc
[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]#

此时我们再开启一个终端使用nc输入字符串

[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# nc localhost 20000
hello
ls

再回到开启nc监听的终端,也能看到同样的输出内容


[root@iZ8vb7bhe4b8nhhhpavhwpZ ~]# hello
ls

课后习题

  1. 暂时将你的 eth0 这张网络卡的 IP 设定为 192.168.1.100 ,如何进行?
ifconfig eth0 192.168.1.100
  1. 我要增加一个路由规则,以 eth0 连接 192.168.100.100/24 这个网域,应
    该如何下达指令?
ip route add 192.168.100.100/24 dev eth0
route add -net 192.168.100.100 netmask 255.255.255.0 dev eth0
  1. 我的网络停顿的很厉害,尤其是连接到 tw.yahoo.com 的时候,那么我应该
    如何检查那个环节出了问题?
traceroute tw.yahoo.com
  1. 我发现我的 Linux 主机上面有个联机很怪异,想要将他断线,应该如何进
    行?
netstat -tulnp 然后工具pid 使用kill -9 pid杀掉
  1. 你如何知道 green.ev.ncku.edu.tw 这部主机的 IP ?
host  green.ev.ncku.edu.tw
nslookup  green.ev.ncku.edu.tw
  1. 请找出你的机器上面最适当的 MTU 应该是多少?
ping -c 3 -s mtu的数值 -M do 目标机器
  1. 如何在终端机接口上面进行 WWW 浏览?又该如何下载 WWW 上面提供的档
    案?
1.  使用links连接
2. 使用wget下载
  1. 在终端机接口中,如何连接 bbs.sayya.org 这个 BBS ?
telnet bbs.sayya.org

参考文献

鸟哥的Linux私房菜

知名端口号

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

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

相关文章

钡铼无线R10A工业级路由器在工业机器人领域的创新应用

随着工业机器人的普及&#xff0c;对于高可靠性和高稳定性的网络接入设备的需求也越来越大。传统的有线网络虽然稳定&#xff0c;但在现场布置和维护上面临很多困难&#xff0c;而无线网络虽然方便&#xff0c;但受到信号干扰和传输距离限制等问题的影响。如何解决这些问题&…

解决 Hbuilder打包 Apk pad 无法横屏 以及 H5 直接打包 成Apk

解决 Hbuilder打包 Apk pad 无法横屏 前言云打包配置 前言 利用VUE 写了一套H5 想着 做一个APP壳 然后把 H5 直接嵌进去 客户要求 在pad 端 能够操作 然后页面风格 也需要pad 横屏展示 云打包 配置 下面是manifest.json 配置文件 {"platforms": ["iPad"…

优优嗨聚集团美团代运对外卖市场的影响与作用

随着互联网的普及和消费者对便捷生活需求的增加&#xff0c;外卖市场逐渐成为人们日常生活中不可或缺的一部分。在这个竞争激烈的市场中&#xff0c;美团代运作为外卖配送领域的佼佼者&#xff0c;对外卖市场产生了深远的影响。本文将探讨美团代运对外卖市场的作用&#xff0c;…

Spring Cloud Alibaba核心技术宝典,分布式系统中间件实战案例(百度云下载)

前言 《Spring Cloud Alibaba学习笔记》其实是阿里的微服务解决方案&#xff0c;是阿里巴巴结合自身微服务实践,开源的微服务全家桶&#xff0c;在Spring Cloud项目中孵化成为Spring Cloud的子项目。第一代的Spring Cloud标准中很多组件已经停更,如&#xff1a;Eureak,zuul等。…

HBase shell 基础实操

目录 1 查看 HBase 状态 2 查看帮助命令 3 查看版本号 4 命名空间操作 5 创建表 6 列出所有的表 7 获取表描述 8 删除列族 9 其他 DDL 操作 1 查看 HBase 状态 进入 HBase 客户端命令行&#xff1a; (base) [roothadoop01 ~]# hbase shell hbase:001:0> statu…

工业物联网为什么更倾向使用蓝牙技术进行对接?

工业物联网更倾向使用蓝牙技术进行对接的原因主要有以下几点&#xff1a; 1、抗干扰能力强&#xff1a;蓝牙技术使用2.4GHz ISM频段&#xff0c;尽管这个频段繁忙&#xff0c;但蓝牙仍然具有确保消息成功到达目的地的巧妙方法。自适应跳频有助于确保数据成功通过噪声&#xff0…

比 ESLint 快50倍的OxLint 发布了!

告诉大家一个好消息&#xff0c;OxLint 现在正式发布了&#xff01;OxLint 是一个 JavaScript 代码检查工具&#xff0c;与 ESLint 类似&#xff0c;但它不需要复杂的配置&#xff0c;能够帮助我们捕捉错误或无用代码。与 ESLint 相比&#xff0c;OxLint 使用 Rust 编写&#x…

计算机图形学头歌合集(题集附解)

目录 CG1-v1.0-点和直线的绘制 第1关&#xff1a;OpenGL点的绘制 第2关&#xff1a;OpenGL简单图形绘制 第3关&#xff1a;OpenGL直线绘制 第4关&#xff1a;0<1直线绘制-dda算法<> 第5关&#xff1a;0<1直线绘制-中点算法<> 第6关&#xff1a;一般直线绘…

数据库增删改查Native SQL

DBCO&#xff1a;检查数据库是否连接 代码&#xff1a; 查询&#xff1a; DATA: gv_dbs TYPE char30 VALUE XXXXXXXX. "数据库连接名称 DATA:gt_ztclaim_2 TYPE TABLE OF ztclaim_2. DATA:gs_ztclaim_2 TYPE ztclaim_2.TRY.EXEC SQL.CONNECT TO :GV_DBSENDEXEC.EXEC SQ…

如何用UI自动化测试实现元素定位

随着IT行业的发展&#xff0c;产品愈渐复杂&#xff0c;web端业务及流程更加繁琐&#xff0c;目前UI测试仅是针对单一页面&#xff0c;操作量大。为了满足多页面功能及流程的需求及节省工时&#xff0c;设计了这款UI 自动化测试程序。旨在提供接口&#xff0c;集成到蜗牛自动化…

nacos配置导出

1.查看nacos数据库 mysql -u root -p use nacos show tables; 其中config_info就是存放nacos配置的表&#xff0c;导出该表中的数据就是导出nacos中的配置项 mysqldump -u root -p --single-transaction nacos config_info>config_info.sql 导出后在需要的nacos集群的…

我记不住的那些vim操作2

背景&#xff1a;最近在重新学习vi/vim&#xff0c;发现这个编辑器的用法真是太灵活了&#xff0c;所能掌控的也太多了&#xff0c;这次学习了一些之前没有学习过的内容&#xff0c;之前都是移动鼠标、编辑、复制、粘贴、保存等等(点我查看)&#xff0c;本次将介绍 标签、区域、…

【Python基础】生成器

文章目录 [toc]什么是生成器生成器示例生成器工作流程生成器表达式send()方法和close方法send()方法close()方法 什么是生成器 在Python中&#xff0c;使用生成器可以很方便地支持迭代器协议生成器通过生成器函数产生&#xff0c;通过def定义&#xff0c;但不是通过return返回…

亚马逊云科技re:Invent推出生成式AI技术堆栈及关键服务和工具

亚马逊云科技于29日推出“生成式AI技术堆栈”后&#xff0c;又在30日的re:Invent 2023大会上宣布了一系列支持这一全新堆栈的关键服务和工具。 亚马逊云科技数据和人工智能副总裁Swami Sivasubramanian在主题演讲中&#xff0c;将生成式人工智能与“超新星爆炸”进行了比较&am…

Python计算圆的面积,几何学技法大解析!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 Python计算圆的面积&#xff0c;几何学技法大解析&#xff0c;全文3800字&#xff0c;阅读大约15分钟。 在本文中&#xff0c;将深入探讨如何使用 Python 计算圆的面积&…

css画饼图

<template slot-scope"scope"> <div class"pie" :style"{--p: scope.row.rate}" style"--p:10;--b:10px;--c:#FFAB79;"> <!-- --p&#xff1a;这个变量应该包含百分比值作为一个数字&#xff08;不带%符号&#xff09;…

深入理解Python装饰器:丰富函数功能的强大工具

导语&#xff1a;装饰器是Python非常强大的功能之一&#xff0c;它们允许程序员修改或增强已有函数或方法的行为&#xff0c;而无需更改其本身的代码&#xff0c;这篇文章&#xff0c;让我们一起来看看&#xff08;我自己这里理解的也不是很透彻&#xff09; ----------更正---…

ansible远程操作主机功能和自动化运维

ansible 两个功能&#xff1a;1、远程操作主机功能 2、自动化运维&#xff08;play 剧本 yaml&#xff09; 简述&#xff1a; 是基于python开发的配置管理和应用部署工具。在自动化运维中&#xff0c;现在是异军突起。 Asible能批量配置&#xff0c;部署&#xff0c;管理上千…

【从零开始学习JAVA集合 | 第一篇】深入解读HashMap源码(含面试题)

目录 目录 前言&#xff1a; HashMap简介&#xff1a; HashMap的常用常量和变量&#xff1a; HashMap的重要考点&#xff1a; HashMap的存储过程&#xff1a; HashMap的扩容过程&#xff1a; HashMap的初始化&#xff1a; 常见面试题&#xff1a; 总结&#xff1a;…

AI摄影绘画与PS优化:重塑数字艺术的未来

文章目录 《AI摄影绘画与PS优化从入门到精通》内容简介作者简介楚天 目录前言/序言 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的各个领域&#xff0c;包括艺术创作。AI摄影绘画和Photoshop&#xff08;PS&#xff09;优化是这个领…