
正文
linux的链路跟踪命令 linux 连接跟踪
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Linux常用网络配置命令
一、查看网络配置
确保网络配置的正确性及网络连接的畅通是Linux系统作为服务器应用的基础linux的链路跟踪命令,查看及测试网络配置是管理Linux网络服务的第一步。
1.ifconfig——查看网络配置
1) 查看所有活动网络接口的信息
执行 ifconfig 或ip addr或ip a命令,都可以显示当前主机中已启用(活动)的网络接口信息。、
2) 查看指定网络接口信息
格式linux的链路跟踪命令:ifconfig 网络接口名
可以通过TX、RX等信息linux的链路跟踪命令了解到通过该网络接口发送和接收的数据包个数,流量等跟多属性。
2.hostname命令
在Linux系统中,相当一部分网络服务都会通过主机名来识别本机,如果主机名配置不当,可能会导致程序功能出现故障。
1) 查看主机名
使用hostname命令就可以查看当前主机的主机名,不添加任何选项参数。
2) 临时更改主机名
hostname NewName
注:这种方法只是临时的更改主机名,重启后将失效。
3) 永久更改主机名
a. 修改配置文件
RHEL6和7的配置文件存放路径不相同,修改配置文件中的主机名,重启就可永久更改主机名。
RHEL6主机名配置文件路径为:/etc/sysconfig/network
RHEL7主机名配置文件路径为:/etc/hostname
示例
b. 使用命令修改(这种方法只适用于RHEL7或者CentOS7之后)
命令格式:
使用该命令更改后,更改后的主机名就自动写入linux的链路跟踪命令了配置文件中,所以可以永久更改主机名,其实就是修改linux的链路跟踪命令了配置文件。
3.route命令
直接执行route命令可以查看当前主机中的路由表信息,若结合“-n”选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度。
Destination列对应的是目标网段的地址,Gateway列对应的是吓一跳路由器的地址,Iface列对应的是发送数据的网络接口。当目标网段为“default”是,表示此行是默认网关记录,当吓一跳为“*”是,表示目标网段是与本机直接相连的。
4.netstat命令——查看系统的网络连接状态等
netstat命令是了解网络状态及排除网络服务故障的有效工具。
常用选项:
-a:显示所有活动连接(包括监听、非监听状态的服务端口)
-n:以数字形式显示
-p:显示相关的进程信息
-t:查看 TCP 协议相关信息
-u:查看UDP协议相关信息
-r:显示路由表信息
-l:显示处于监听(listening)状态的网络连接及端口信息
通常使用“-anput”组合选项,结合管道使用“grep”命令,来查看一些服务的端口是否开启。
示例:
Tcp21为ftp服务的端口
二、测试网络连接
1.ping命令——测试网络连通性
常用选项:
-c完成次数:设置完成要求回应的次数
-i间隔秒数:指定收发信息的间隔时间
-q:不显示指令执行过程,开头和结尾的相关信息除外
-s数据包大小:设置数据包的大小
-t存活数值:设置存活数值TTL的大小
-v:详细显示指令的执行过程
若返回“Destination Host Unreachable”的反馈信息,则表示目标主机不可达,可能目标地址不存在或主机已关闭;返回“Network is unreachable”的反馈信息,则表示没有可用的路由记录(如默认网关),无法到达目标主机所在的网络;返回“Request timeout”的反馈信息,表示与目标主机间的连接超时(数据包缓慢或丢失),若有严格的防火墙限制,也可能返回此信息。
2.traceroute命令——跟踪数据包的路由途径
使用traceroute命令可以测试从当前主机到目的主机之间经过的网络节点,并显示各中间结点的连接状态(响应时间)。对于无法响应的节点,连接状态将显示为“*”。
示例:traceroute IP_ADDR
在网络测试与排错的过程中,通常会先使用ping命令测试与主机的网络连接,如果发现网络有故障,再使用traceroute命令跟踪查看是在哪个中间结点存在故障。
3.nslookup命令——测试DNS域名解析
nslookup是用来测试(DNS)域名解析的专用工具。(DNS服务后面再详细讲解,通俗的说就是将域名解析为ip地址的一个服务)
示例:nslookup
若成功反馈要查询域名的IP地址,则表示域名解析没有问题;若出现“...... no servers could be reached”的信息,表示不能连接到指定的DNS服务器;若出现“...... cant’t find xxx.yyy.zzz:NXDOMAIN”的信息,表示要查询的域名不存在。
三、设置网络地址参数
设置网络参数的方法:
• 临时配置 —— 使用命令调整网络参数简单、快速,可直接修改运行中的网络参数
一般只适合在调试网络的过程中使用
系统重启以后,所做的修改将会失效
• 永久配置 —— 通过配置文件修改网络参数修改各项网络参数的配置文件
适合对服务器设置固定参数时使用
需要重载网络服务或者重启以后才会生效
1.临时配置——使用网络配置命令(注:RHEL6中网络接口的名称为eth,RHEL7中为ens)
1)使用ifconfig命令修改网卡的地址、状态
ifconfig命令不仅可以用于查看网卡配置,还可以修改网卡的ip地址,子网掩码,也可以绑定网络接口、激活或停用网络接口
a. 修改网卡的ip地址(临时修改)
命令格式:
示例:
b. 禁用或者重新激活网卡
命令格式:
示例:
c. 设置虚拟网络接口(相当于一块网卡配置多个IP地址)
命令格式:
示例:
可以根据需要添加更多的虚拟接口,如“eth0:1”“eth0:2”等
2)使用route命令添加、删除静态路由记录
• 删除路由表中的默认网关记录命令格式:route del default gw IP地址
• 向路由表中添加默认网关记录命令格式:route add default gw IP地址
• 添加到指定网段的路由记录命令格式:route add -net 网段地址 gw IP地址
• 删除到指定网段的路由记录命令格式:router del -net 网段地址
2.永久配置——修改网络配置文件
1)网络接口配置文件
网络接口的配置文件默认位于目录“/etc/sysconfig/network-scripts/”中,文件名格式为:“ifcfg-XXX”,其中“XXX”是网络接口的名称。例如:RHEL6中网卡eth0的配置文件是“ifcfg-eth0”,而RHEL7中网卡ens33的配置文件是“ifcfg-ens33”。
在网卡的配置文件中,可以看到静态IP地址的部分内容如下图所示:
上述个配置项的含义及作用:(图示为RHEL6中的配置文件,7中也差不多,换汤不换药,修改的都差不多)
• DEVICE:设置网络接口的名称ONBOOT:设置网络接口是否在Linux系统启动时激活BOOTPROTO:设置网络接口的配置方式,值为static时表示使用静态ip地址,为dhcp时表示通过dhcp的方式动态获取ip地址IPADDR:设置网络接口的ip地址NETMASK:设置网络接口的子网掩码GATEWAY:设置网络接口的默认网关地址2)重启 network 网络服务
当修改了网络接口的配置文件以后,若要使新的配置生效,可以重启network服务或者重启主机或者禁用、启用网络接口。
示例:
• RHEL6中重启network服务:service network restartRHEL7中重启network服务:systemctl restart network注:这是我在做实验时候的一个经验:RHEL6修改完网卡配置重启后,ip地址仍然没有改过来,这时候我们经常会删除“/etc/udev/rules.d/70-persistent-net.rules”这个文件。RHEL7不用管,RHEL7特别好改,RHEL6改的时候特别难受。(个人提示,不求认同)
3)域名解析配置文件
a.指定为本机提供DNS解析的服务器地址
/etc/resolv.conf文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。Linux系统中最多可以指定3个(第3个以后将被忽略)不同的DNS服务器地址,优先使用第1个DNS服务器。
示例:
其中“search localdomain”用来设置默认的搜索域(域名后缀)。例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”。
b.本地主机映射文件
/etc/hosts文件中记录着一份主机名与ip地址的映射关系表,一般用来保存经常访问的主机信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到在去向DNS服务器查询。
hosts 文件和 DNS 服务器的比较
• 默认情况下,系统首先从 hosts 文件查找解析记录hosts 文件只对当前的主机有效hosts 文件可减少 DNS 查询过程,从而加快访问速度
相关问答
Q1: 如何在Linux用户和内核空间中进行动态跟踪
你不记得如何在代码中插入探针点了吗? 没问题!了解如何使用uprobe和kprobe来动态插入它们吧。 基本上,程序员需要在源代码汇编指令的不同位置插入动态探针点。
探针点
探针点是一个调试语句,有助于探索软件的执行特性(即,执行流程以及当探针语句执行时软件数据结构的状态)。printk是探针语句的最简单形式,也是黑客用于内核攻击的基础工具之一。
因为它需要重新编译源代码,所以printk插入是静态的探测方法。内核代码中重要位置上还有许多其他静态跟踪点可以动态启用或禁用。 Linux内核有一些框架可以帮助程序员探测内核或用户空间应用程序,而无需重新编译源代码。Kprobe是在内核代码中插入探针点的动态方法之一,并且uprobe在用户应用程序中执行此操作。
使用uprobe跟踪用户空间
可以通过使用thesysfs接口或perf工具将uprobe跟踪点插入用户空间代码。
使用sysfs接口插入uprobe
考虑以下简单测试代码,没有打印语句,我们想在某个指令中插入探针:
[source,c\n.test.c
#include stdio.h\n#include stdlib.h\n#include unistd.h
编译代码并找到要探测的指令地址:
# gcc -o test test.\n# objdump -d test
假设我们在ARM64平台上有以下目标代码:
0000000000400620 func_1: 400620\t90000080\tadr\tx0, 410000 __FRAME_END__+0xf6f8
并且我们想在偏移量0x620和0x644之间插入探针。执行以下命令:
# echo 'p:func_2_entry test:0x620' /sys/kernel/debug/tracing/uprobe_event\n# echo 'p:func_1_entry test:0x644' /sys/kernel/debug/tracing/uprobe_event\n# echo 1 /sys/kernel/debug/tracing/events/uprobes/enable# ./test
在上面的第一个和第二个echo语句中,p告诉我们这是一个简单的测试。(探测器可以是简单的或返回的。)func_n_entry是我们在跟踪输出中看到的名称,名称是可选字段,如果没有提供,我们应该期待像p_test_0x644这样的名字。test 是我们要插入探针的可执行二进制文件。如果test 不在当前目录中,则需要指定path_to_test / test。
0x620或0x640是从程序启动开始的指令偏移量。请注意在第二个echo语句中,因为我们要再添加一个探针。所以,当我们在前两个命令中插入探针点之后,我们启用uprobe跟踪,当我们写入events/ uprobes / enable时,它将启用所有的uprobe事件。程序员还可以通过写入在该事件目录中创建的特定事件文件来启用单个事件。一旦探针点被插入和启用,每当执行探测指令时,我们可以看到一个跟踪条目。
读取跟踪文件以查看输出:
# cat /sys/kernel/debug/tracing/trac\n# tracer: no\n\n# entries-in-buffer/entries-written: 8/8\n#P:\n\n# _-----= irqs-of\n# / _----= need-resche\n# | / _---= hardirq/softir\n# || / _--= preempt-dept\n# ||| / dela\n# TASK-PID CP\n# |||| TIMESTAMP FUNCTION# | | | |||| | |
我们可以看到哪个CPU完成了什么任务,什么时候执行了探测指令。
返回探针也可以插入指令。当返回该指令的函数时,将记录一个条目:
# echo 0 /sys/kernel/debug/tracing/events/uprobes/enabl\n# echo 'r:func_2_exit test:0x620' /sys/kernel/debug/tracing/uprobe_event\n# echo 'r:func_1_exit test:0x644' /sys/kernel/debug/tracing/uprobe_event\n# echo 1 /sys/kernel/debug/tracing/events/uprobes/enable
这里我们使用r而不是p,所有其他参数是相同的。请注意,如果要插入新的探测点,需要禁用uprobe事件:
test-3009 [002] .... 4813.852674: func_1_entry: (0x400644)
上面的日志表明,func_1返回到地址0x4006b0,时间戳为4813.852691。
# echo 0 /sys/kernel/debug/tracing/events/uprobes/enabl\n# echo 'p:func_2_entry test:0x630' /sys/kernel/debug/tracing/uprobe_events count=%x\n# echo 1 /sys/kernel/debug/tracing/events/uprobes/enabl\n# echo /sys/kernel/debug/tracing/trace# ./test
当执行偏移量0x630的指令时,将打印ARM64 x1寄存器的值作为count =。
输出如下所示:
test-3095 [003] .... 7918.629728: func_2_entry: (0x400630) count=0x1
使用perf插入uprobe
找到需要插入探针的指令或功能的偏移量很麻烦,而且需要知道分配给局部变量的CPU寄存器的名称更为复杂。 perf是一个有用的工具,用于帮助引导探针插入源代码中。
除了perf,还有一些其他工具,如SystemTap,DTrace和LTTng,可用于内核和用户空间跟踪;然而,perf与内核配合完美,所以它受到内核程序员的青睐。
# gcc -g -o test test.c# perf probe -x ./test func_2_entry=func_\n# perf probe -x ./test func_2_exit=func_2%retur\n# perf probe -x ./test test_15=test.c:1\n# perf probe -x ./test test_25=test.c:25 numbe\n# perf record -e probe_test:func_2_entry -e\nprobe_test:func_2_exit -e probe_test:test_15\n-e probe_test:test_25 ./test
如上所示,程序员可以将探针点直接插入函数start和return,源文件的特定行号等。可以获取打印的局部变量,并拥有许多其他选项,例如调用函数的所有实例。 perf探针用于创建探针点事件,那么在执行./testexecutable时,可以使用perf记录来探测这些事件。当创建一个perf探测点时,可以使用其他录音选项,例如perf stat,可以拥有许多后期分析选项,如perf脚本或perf报告。
使用perf脚本,上面的例子输出如下:
# perf script
使用kprobe跟踪内核空间
与uprobe一样,可以使用sysfs接口或perf工具将kprobe跟踪点插入到内核代码中。
使用sysfs接口插入kprobe
程序员可以在/proc/kallsyms中的大多数符号中插入kprobe;其他符号已被列入内核的黑名单。还有一些与kprobe插入不兼容的符号,比如kprobe_events文件中的kprobe插入将导致写入错误。 也可以在符号基础的某个偏移处插入探针,像uprobe一样,可以使用kretprobe跟踪函数的返回,局部变量的值也可以打印在跟踪输出中。
以下是如何做:
; disable all events, just to insure that we see only kprobe output in trace\n# echo 0 /sys/kernel/debug/tracing/events/enable; disable kprobe events until probe points are inseted\n# echo 0 /sys/kernel/debug/tracing/events/kprobes/enable; clear out all the events from kprobe_events\n to insure that we see output for; only those for which we have enabled
[root@pratyush ~\n# more /sys/kernel/debug/tracing/trace# tracer: no\n\n# entries-in-buffer/entries-written: 9037/9037\n#P:8\n# _-----= irqs-of\n# / _----= need-resche\n# | / _---= hardirq/softirq#\n|| / _--= preempt-depth#\n ||| / delay# TASK-PID CPU#\n |||| TIMESTAMP FUNCTION#\n | | | |||| | |
使用perf插入kprobe
与uprobe一样,程序员可以使用perf在内核代码中插入一个kprobe,可以直接将探针点插入到函数start和return中,源文件的特定行号等。程序员可以向-k选项提供vmlinux,也可以为-s选项提供内核源代码路径:
# perf probe -k vmlinux kfree_entry=kfre\n# perf probe -k vmlinux kfree_exit=kfree%retur\n# perf probe -s ./ kfree_mid=mm/slub.c:3408 \n# perf record -e probe:kfree_entry -e probe:kfree_exit -e probe:kfree_mid sleep 10
使用perf脚本,以上示例的输出:
关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html
Q2: linux查看路径命令
Linux系统下想要查看当前的路径,那我们该使用那个命令呢?下面由我为大家整理了linux查看路径命令的相关知识,希望对大家有帮助。
目录
linux查看路径命令
linux查看路径的其他命令
linux下查找某个文件位置的方法
linux查看路径命令
查看当前路径命令:pwd
pwd命令能够显示当前所处的路径。
这个命令比较简单,如果有时在操作过程中忘记了当前的路径,则可以通过此命令来查看路径,其执行方式为:
# pwd /home/samlee
第一行为运行的命令,第二行的内容为运行pwd命令后显示的信息,即显示用户当前所在的工作目录的路径为/home/samlee。
提示:
应该经常使用pwd命令。Linux的目录结构非常复杂,一个小小的分支就可能会有十几层目录,就好像是个森林,所以Linux不会像Windows那样把全路径写在提示符里,那样太长了。
linux查看路径的其他命令
whereis 用来查看一个命令或者文件所在的绝对路径,而 which 用来查看当前要执行的命令所在的路径。
下面举个例子来说明。加入你的linux系统上装了多个版本的java。如果你直接在命令行敲命令 "java -version" ,会得到一个结果。但是,你知道是哪一个路径下的java在执行吗?如果想知道,可以用 which 命令:
which java
得到的结果就是系统默认执行的java所在的路径。
如果使用命令: whereis java
那么你会得到很多条结果,因为这个命令把所有包含java(不管是文件还是文件夹)的路径都列了出来。
linux下查找某个文件位置的 方法
一.通过文件名查找法:
举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录 下,甚至在系统的某个地方也不知道,则这是可以使用如下命令:
find / -name httpd.conf
这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
etc/httpd/conf/httpd.conf
这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。
如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行find / -name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了ApacheWeb服务器,然后再使用find / -name httpd.conf就能找到这个配置文件了。
二.无错误查找技巧:
在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用“find”命令时也有可 能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用“find”命令来查询这 些目录或者文件。当普通用户使用“find”命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法 查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,例如输入:
find / -name access_log 2/dev/null
这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream2 中,access_log2就是表明系统将把错误信息输送到stderrstream2中,/dev/null是一个特殊的文件,表明空的或者错误的信 息,这样查询到的错误信息将被转移了,不会再显示了。
在Linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中查找某个文件就要花费相当长的一段时间,特别是大型Linux系 统和容量较大的硬盘,文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,那么只要在这个目录中往下找就能节省很多时间了。使 用find /etc -name httpd.conf就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。这里再说明一下“/”这个函数符号的含 义,如果输入“find /”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find /etc”就是只在
etc目录下查找文件。因为“find /etc”表示只在etc目录下查找文件,所以查找的速度就相应要快很多了。
三.根据部分文件名查找方法:
例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现 的,输入:
find /etc -name '_srm_'
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如absrmyz,tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
find/etc -name 'srm_'
这是只有像srmyz这样的文件才被查找出来,像absrmyz或者absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
四.根据文件的特征查询方法:
如果只知道某个文件的大小,修改日期等特征也可以使用“find”命令查找出来,这和WINDOWS系统中的“搜索”功能是基本相同的。在微软的“搜 索”中,“搜索助理”使得搜索文件和文件夹、打印机、用户以及网络中的其他计算机更加容易。它甚至使在Internet上搜索更加容易。“搜索助理”还包 括一个索引服务,该服务维护了计算机中所有文件的索引,使得搜索速度更快。使用“搜索助理”时,用户可以指定多个搜索标准。例如,用户可以按名称、类型及 大小搜索文件和文件夹。用户甚至可以搜索包含特定文本的文件。如果用户正使用Active Directory,这时还可以搜索带有特定名称或位置的打印机。
例如我们知道一个Linux文件大小为1,500bytes,那么我们可是使用如下命令来查询find /-size
1500c,字符c表明这个要查找的文件的大小是以bytes为单位。如果我们连这个文件的具体大小都不知道,那么在Linux中还可以进行模糊查找方式 来解决。例如我们输入find /-size+10000000c这个命令,则标明我们指定系统在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系 统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。下面的列表就是在Linux使用不同“find"命令后系统所要作出的 查找动作,从中我们很容易看出在Linux中使用“find”命令的方式是很多的,“find”命令查找文件只要灵活应用,丝毫不比在WINDOWS中查 找能力差。
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
linux查看路径命令相关 文章 :
★ linux查看路径命令
★ linux如何查找命令的路径
★ linux查询路径命令
★ Linux系统中查看当前路径的命令
★ linux查询命令路径
★ Linux中文件查找命令总结
★ linux查询目录命令
★ liunx find(文件查找)命令的介绍
★ Linux系统中tracert命令使用详解
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = ""; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();
Q3: linux下tracert命令的作用
1.命令格式:
traceroute [参数] [主机]
2.命令功能linux的链路跟踪命令:
traceroute指令让你追踪网络数据包linux的链路跟踪命令的路由途径linux的链路跟踪命令,预设数据包大小是40Byteslinux的链路跟踪命令,用户可另行设置。
具体参数格式:traceroute [-dFlnrvx][-f存活数值][-g网关…][-i网络界面][-m存活数值][-p通信端口][-s来源地址][-t服务类型][-w超时秒数][主机名称或IP地址][数据包大小] 《Linux就该这么学》 一起学习linux
3.命令参数:
-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g 设置来源路由网关,最多可设置8个。
-i 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。
4 实例:
实例4.1 : traceroute
实例4.2:跳数设置
命令:traceroute -m 10
Q4: linux安装全链路追踪工具skywalking8.0
SkyWalking是一个针对分布式系统的APM(应用性能监控)系统,特别针对微服务、cloud native和容器化架构,其核心是个分布式追踪系统。它通过探针自动收集所需的指标,且基于探针技术对应用零侵入零耦合。通过这些调用链路以及指标,SkyWalking APM会感知应用间关系和服务间关系,并进行相应的指标统计。
解压后,进入目录,默认自带了agent,这个是用来追踪java项目的。我因为是用来追踪php项目,所以这个用不上,如果要追踪php项目,需要另外安装php的agent,请查看我另外一篇文章( linux安装sky-php-agent )
bin里面是启动文件
config目录里面是配置文件
webapp目录里面是UI界面项目文件和配置文件
默认情况下,只需要更改一下 config/application.yml文件
默认的restHost和gRPCHost的IP为0.0.0.0,我这里改成我这边内网的IP。这里要注意一下,一旦改了IP,就只能用这个IP,比如我这里改成了内网IP,那么用127.0.0.1都不能访问。
如果需要更改UI界面访问的端口,可以修改 webapp/webapp.yml,里面配置文件很简单
注意一下,如果要想能够让受控端访问到skywalking服务,那么必须将12800端口对受控端服务器打开。WEB界面的端口,我这里是8081,大家可以改成自己需要的端口。
变更完配置后,就可以进去bin目录下,运行 startup.sh ,服务就会启动。然后通过http://服务器ip:8081进行界面访问。
受控端如果也启动了的话,这个时候,界面里就自动会出现数据了。
emmmm.....这里有个坑,默认情况下,打开界面什么数据都看不到,这个需要点击右上角的“自动”按钮,让按钮变成蓝色,这个时候就会有数据出现了。
如果还是没有出现数据,那就检查受控端服务是不是已经启动了,或者去看一下logs目录下的日志。如果受控端连接服务端出现错误,就看skywalking-oap-server.log;如果受控端一切正常,界面数据还是不显示,就看webapp.log
我在安装的时候,使用startup.sh启动文件,又遇到一个坑。这个启动文件,无论中间是不是有报错,都会提示启动成功。而且因为没有停止的命令,如果重复运行startup.sh,日志里会提示端口占用。这个时候,需要使用命令先查看占用端口的进程,然后杀掉进程,再重新运营启动文件才可以。
Q5: Linux里面 netstat -ntlp命令作用是什么?
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
关于linux的链路跟踪命令和linux 连接跟踪的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





