상사가 서버 네트워크 문제를 해결하기 위해 Linux에서 Traceroute를 사용하라고 요청했습니다. 다행히 이 글을 저장했습니다!
1. 서문
네트워크 엔지니어 또는 운영 및 유지 관리 엔지니어에게는 Traceroute 명령이 익숙할 것입니다. 해당 기능은 ping 명령과 유사하며 네트워크 연결을 진단하는 데 사용됩니다. 그러나 Traceroute 명령으로 출력되는 명령은 다음과 같습니다. ping 명령을 사용하여 소스 시스템의 경로를 추적할 수 있습니다.
많은 엔지니어들이 기본적인 목적으로만 Traceroute 명령을 사용하지만, 실제 전투에서는 기본적인 조작으로는 문제를 해결할 수 없습니다. 이 기사에서는 Traceroute 명령을 완벽하게 익힐 수 있도록 Traceroute 명령을 사용하는 몇 가지 예를 소개합니다.
2. 전제 지식
명령 사용법을 공식적으로 소개하기 전에 다음 토폴로지 다이어그램을 살펴보세요.

그림과 같이 컴퓨터가 서버에 접속을 원할 경우, 해당 기간电脑->R1->R2->R4->服务器
还是走电脑->R1->R3->R4->服务器
동안 이는 Traceroute 명령의 값이기도 한 Traceroute 명령을 통해 달성할 수 있습니다.
3. Linux에서 Traceroute 명령을 설치하세요
먼저 lsb_release -a
명령을 사용하여 서버가 어떤 배포판인지 확인합니다.
출력에서 볼 수 있듯이 우리 시스템은 Ubuntu 시스템이므로 Traceroute를 설치하는 명령은 다음과 같습니다.
으아악설치 과정:
“
Linux 시스템 배포판이 CentOS 또는 Fedora인 경우
yum install traceroute
명령을 사용할 수 있습니다.”
4. Linux
에서 Traceroute 명령을 사용하세요.4.1 기본 사용법
traceroute 명령의 가장 기본적인 사용법은 다음과 같습니다.
으아악명령이 실행되면 목적지에 도달하는 데 필요한 라우터 목록이 표시됩니다.
블로그 사이트 추적 경로에 좋아요를 눌러주세요:
으아악실행 결과:

如图所示,我们执行完traceroute www.wljslmz.cn
命令后,看到从我的ecs服务器到达www.wljslmz.cn
所在服务器一共经历了20台路由器,每台路由器响应的时间也都打印下来了。
4.2 更改等待时间
traceroute 中的默认等待时间是 3 秒,这个意思就是,假如有20台路由器,每经历一台路由器默认等待时间是3秒,如果我们想改变这个值,可以加一个参数-w
:
traceroute -w 1 www.wljslmz.cn
执行结果:

4.3 更改收发数据包的数量
默认情况下,traceroute 一次发送 3 个包,假如想更改这个数量,可以使用-q
参数,比如我现在把它改成5个包:
traceroute -q 5 www.wljslmz.cn
执行结果:
由此可见,现在每台路由器收发就变成了5个包了。
4.4 更改最大跳数
所谓跳数就是一次请求经历的路由器的数量,还是这张图:
比如流量走向是电脑->R1->R2->R4->服务器
,那么其跳数是3.
traceroute 中默认单次查询的最大跳数是 30,可以扩展到 255。
如果想要更改这个参数,可以加上-m
参数。
我们上面执行的跳数都是20,我们为了显示出效果,将这个值改为10:
traceroute -m 10 www.wljslmz.cn
执行结果:

可以看到最大跳数改为10以后,原先经历20台路由器,现在输出显示只有10台,参数生效了。
4.5 更改TTL开始值
首先给大家解释一下什么是TTL。
TTL英文全称:Time To Live,翻译成中文就是生存时间,是网络技术中比较常见的专业术语。
如果你使用过ping命令,那么TTL经常会看到:
root@ecs-adf0-0003:~# ping www.wljslmz.cn
执行结果:

TTL,专业点解释就是用于限制数据包在 Internet 传输系统中“存活”的时间,或者说数据包在被丢弃之前在网络中的时间限制。
如果你还是不明白,你就把TTL看作是跳数限制,目的是防止数据包在网络中永远流通,最大 TTL 值为 255。
数据包的 TTL 字段由发送方设置,并由到达目的地的路径上的每个路由器减少,路由器在转发 IP 数据包时将 TTL 值减一,当数据包 TTL 值达到 0 时,路由器将其丢弃并向始发主机发送回ICMP 消息。

这就是TTL的全部解释了,如果还想更深入的了解TTL的底层原理,瑞哥可以后期专门出一篇文章进行解释。
默认情况下,traceroute 将从第一个 TTL 开始,如果想要更改这个值,我们可以使用-f
参数实现:
traceroute -f 8 www.wljslmz.cn
执行结果:
可以看到我们这里是从第8个TTL开始的。
4.6 禁用主机名到 IP 地址的映射
我们在执行traceroute www.wljslmz.cn
命令时,注意箭头所指的位置,会有域名的出现:
现在是因为域名比较少,假如你跟踪的服务器中间路由器涉及到的域名比较多,那么是不便于排查问题的,所以我们需要去除主机名到 IP 地址的映射,可以使用-n
参数:
traceroute -n www.wljslmz.cn
执行结果:

可以看到已经没有域名了。
4.7 更改跟踪路由目的端口
先问大家可以问题:traceroute www.wljslmz.cn
这条命令跟踪的是什么端口?
答案是80端口,如果我们想更改这个目的端口,怎么办?
可以使用-p
参数,比如改成跟踪其2222端口:
traceroute -p 2222 www.wljslmz.cn
执行结果:

4.8 更改最大数据包大小
默认情况下,最大数据包为60字节,如下图箭头所示:

如果我们觉得跟踪的路由器数量比较多,一看就不止60字节,这个时候想调大,可以这样操作:
traceroute www.wljslmz.cn 200
执行结果:
可以看到直接在命令后加入数字即可。
我们尝试执行一下这条命令:
traceroute www.wljslmz.cn 1
猜一下执行结果中,最大数据包大小是多少?
1?
当然不是!
我们看到最终的大小是28字节,也就是说这条命令只能用来限制最大大小,而不是设置多大,包就被过滤了,28字节是跟踪包的最小大小,你设置的值小于这个大小,那么不管用!
4.9 启用ipv4跟踪
traceroute -4 www.wljslmz.cn
执行结果:

4.10 启用ipv6跟踪
traceroute -6 www.wljslmz.cn
执行结果:

说明我们的网站未支持ipv6.
4.11 使用ICMP ECHO
默认情况下,traceroute 命令使用 UDP 端口进行跟踪路由,要使用 ICMP ECHO,可以结合参数-I
:
traceroute -I www.wljslmz.cn
执行结果:

4.12 将traceroute信息保存到文件
这个跟traceroute命令本身没有太大关系,有时候我们需要将traceroute的信息离线分析,这个时候就需要将traceroute返回信息持久化,我们可以使用以下命令:
traceroute www.wljslmz.cn > wljslmz.txt
执行结果:

我们通过命令more wljslmz.txt
来看下这个wljslmz.txt文件:

五、总结
traceroute 命令是一个有用且易于运行的网络诊断工具,本文给大家介绍了12个traceroute 命令示例,希望本文能够对您使用traceroute 命令有所帮助,如果有问题可以在下方评论区与我讨论!
위 내용은 상사가 서버 네트워크 문제를 해결하기 위해 Linux에서 Traceroute를 사용하라고 요청했습니다. 다행히 이 글을 저장했습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 시스템의 5 가지 기본 구성 요소는 다음과 같습니다. 1. Kernel, 2. System Library, 3. System Utilities, 4. 그래픽 사용자 인터페이스, 5. 응용 프로그램. 커널은 하드웨어 리소스를 관리하고 시스템 라이브러리는 사전 컴파일 된 기능을 제공하며 시스템 유틸리티는 시스템 관리에 사용되며 GUI는 시각적 상호 작용을 제공하며 응용 프로그램은 이러한 구성 요소를 사용하여 기능을 구현합니다.

git 저장소 주소를 보려면 다음 단계를 수행하십시오. 1. 명령 줄을 열고 리포지토리 디렉토리로 이동하십시오. 2. "git remote -v"명령을 실행하십시오. 3. 출력 및 해당 주소에서 저장소 이름을 봅니다.

vs 코드 1 단계/다음 단계 바로 가기 키 사용 : 1 단계 (뒤로) : Windows/Linux : Ctrl ←; MACOS : CMD ← 다음 단계 (앞으로) : Windows/Linux : Ctrl →; MACOS : CMD →

Linux의 주요 용도에는 다음이 포함됩니다. 1. 서버 운영 체제, 2. 임베디드 시스템, 3. 데스크탑 운영 체제, 4. 개발 및 테스트 환경. Linux는이 분야에서 뛰어나 안정성, 보안 및 효율적인 개발 도구를 제공합니다.

Sublime에서 코드를 실행하는 6 가지 방법이 있습니다. 핫키, 메뉴, 빌드 시스템, 명령 줄, 기본 빌드 시스템 설정 및 사용자 정의 빌드 명령, 프로젝트/파일을 마우스 오른쪽 단추로 클릭하여 개별 파일/프로젝트를 실행합니다. 빌드 시스템 가용성은 숭고한 텍스트 설치에 따라 다릅니다.

메모장은 Java 코드를 직접 실행할 수는 없지만 다른 도구를 사용하여 명령 줄 컴파일러 (Javac)를 사용하여 Bytecode 파일 (filename.class)을 생성하면 달성 할 수 있습니다. Java Interpreter (Java)를 사용하여 바이트 코드를 해석하고 코드를 실행하고 결과를 출력하십시오.

Laravel을 설치하려면 다음 단계를 순서대로 수행하십시오. Composer 설치 (MacOS/Linux 및 Windows) 설치 LARAVEL 설치 프로그램 새 프로젝트 시작 서비스 액세스 애플리케이션 (URL : http://127.0.1:8000) 데이터베이스 연결 (필요한 경우)을 설정하십시오.

Visual Studio Code (VSCODE)는 Microsoft가 개발 한 크로스 플랫폼, 오픈 소스 및 무료 코드 편집기입니다. 광범위한 프로그래밍 언어에 대한 가볍고 확장 성 및 지원으로 유명합니다. VSCODE를 설치하려면 공식 웹 사이트를 방문하여 설치 프로그램을 다운로드하고 실행하십시오. VScode를 사용하는 경우 새 프로젝트를 만들고 코드 편집, 디버그 코드, 프로젝트 탐색, VSCODE 확장 및 설정을 관리 할 수 있습니다. VSCODE는 Windows, MacOS 및 Linux에서 사용할 수 있으며 여러 프로그래밍 언어를 지원하며 Marketplace를 통해 다양한 확장을 제공합니다. 이점은 경량, 확장 성, 광범위한 언어 지원, 풍부한 기능 및 버전이 포함됩니다.
