程序猿必知的 基础Linux 网络命令

嵌入式开发中,我们常常用到各种linux命令,今天和大家分享的就是基础的 Linux网络命令,这是在网上无意中看到的一篇整理得非常好的文章,分享给大家,希望对大家有帮助。 
有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的、最重要的、而且基础的 Linux 网络命令合集。在 It’s FOSS 我们并非每天都谈论 Linux 的“命令行方面”。基本上,我更专注于 Linux 的桌面端。但你们读者中的一些人在内部调查(仅面向 It’s FOSS newsletter 订阅者)中指出,你们也想学些命令行技巧。速查表也受大部分读者所喜欢和支持。 
为此,我编辑了一个 Linux 中基础网络命令的列表。它并不是一个教你如何使用这些命令的教程,而是一个命令合集和他们的简短解释。所以,如果你已经使用过这些命令,你可以用它来快速记住命令。 
你可以把这个网页添加为书签以便快速查阅,或输出一个 PDF 版本以便离线使用。 
当我还是通信系统工程专业的学生的时候我就有这个 Linux 网络命令的列表了。它帮助我在计算机网络课程获得了高分。希望它也能以同样的方式帮助你。 
Linux 基础网络命令列表 
我在计算机网络课程上使用 FreeBSD,不过这些 UNIX 命令应该也能在 Linux 上同样工作。 
连通性 
ping:发送 ICMP echo 消息(一个包)到主机。这可能会不停地发送直到你按下 Control-C。Ping 的通意味着一个包从你的机器通过 ICMP 发送出去,并在 IP 层回显。Ping 告诉你另一个主机是否在运行。 
telnet[port]:与主机在指定的端口通信。默认的 telnet 端口是 23。按 Control-] 以退出 telnet。其它一些常用的端口是: 
7 —— echo 端口 
25 —— SMTP,用于发送邮件 
79 —— Finger (LCTT 译注:维基百科 - Finger protocal,不过举例 Finger 恐怕不合时宜,倒不如试试 80?),提供该网络下其它用户的信息。 
ARP 
ARP 用于将 IP 地址转换为以太网地址。root 用户可以添加和删除 ARP 记录。当 ARP 记录被污染或者错误时,删除它们会有用。root 显式添加的 ARP 记录是永久的 —— 代理设置的也是。ARP 表保存在内核中,动态地被操作。ARP 记录会被缓存,通常在 20 分钟后失效并被删除。 
arp -a:打印 ARP 表。 
arp -s[pub]:添加一条记录到表中。 
arp -a -d:删除 ARP 表中的所有记录。 
路由 
netstat -r:打印路由表。路由表保存在内核中,用于 IP 层把包路由到非本地网络。 
route add:route 命令用于向路由表添加静态(手动指定而非动态)路由路径。所有从该 PC 到那个 IP/子网的流量都会经由指定的网关 IP。它也可以用来设置一个默认路由。例如,在 IP/子网处使用 0.0.0.0,就可以发送所有包到特定的网关。 
routed:控制动态路由的 BSD 守护程序。开机时启动。它运行 RIP 路由协议。只有 root 用户可用。没有 root 权限你不能运行它。 
gated:gated 是另一个使用 RIP 协议的路由守护进程。它同时支持 OSPF、EGP 和 RIP 协议。只有 root 用户可用。 
traceroute:用于跟踪 IP 包的路由。它每次发送包时都把跳数加 1,从而使得从源地址到目的地之间的所有网关都会返回消息。 
netstat -rnf inet:显示 IPv4 的路由表。 
sysctl net.inet.ip.forwarding=1:启用包转发(把主机变为路由器)。 
route add|delete [-net|-host]:(如 route add 192.168.20.0/24 192.168.30.4)添加一条路由。 
route flush:删除所有路由。 
route add -net 0.0.0.0 192.168.10.2:添加一条默认路由。 
routed -Pripv2 -Pno_rdisc -d [-s|-q]:运行 routed 守护进程,使用 RIPv2 协议,不启用 ICMP 自动发现,在前台运行,供给模式或安静模式。 
route add 224.0.0.0/4 127.0.0.1:为本地地址定义多播路由。(LCTT 译注:原文存疑) 
rtquery -n(LCTT 译注:增加了 host 参数):查询指定主机上的 RIP 守护进程(手动更新路由表)。 
其它 
nslookup:向 DNS 服务器查询,将 IP 转为名称,或反之。例如,nslookup facebook.com 会给出 facebook.com 的 IP。 
ftp[port](LCTT 译注:原文中 water 应是笔误):传输文件到指定主机。通常可以使用 登录名 "anonymous" , 密码 "guest" 来登录。 
rlogin -l(LCTT 译注:添加了 host 参数):使用类似 telnet 的虚拟终端登录到主机。 
重要文件 
/etc/hosts:域名到 IP 地址的映射。 
/etc/networks:网络名称到 IP 地址的映射。 
/etc/protocols:协议名称到协议编号的映射。 
/etc/services:TCP/UDP 服务名称到端口号的映射。 
工具和网络性能分析 
ifconfig 
[up]:启动接口。 
ifconfig[down|delete]:停止接口。 
ethereal &:在后台打开 ethereal 而非前台。 
tcpdump -i -vvv:抓取和分析包的工具。 
netstat -w [seconds] -I [interface]:显示网络设置和统计信息。 
udpmt -p [port] -s [bytes] target_host:发送 UDP 流量。 
udptarget -p [port]:接收 UDP 流量。 
tcpmt -p [port] -s [bytes] target_host:发送 TCP 流量。 
tcptarget -p [port]:接收 TCP 流量。 
交换机 
ifconfig sl0 srcIP dstIP:配置一个串行接口(在此前先执行 slattach -l /dev/ttyd0,此后执行 sysctl net.inet.ip.forwarding=1) 
telnet 192.168.0.254:从子网中的一台主机访问交换机。 
sh ru 或 show running-configuration:查看当前配置。 
configure terminal:进入配置模式。 
exit:退出当前模式。(LCTT 译注:原文存疑) 
VLAN 
vlan n:创建一个 ID 为 n 的 VLAN。 
no vlan N:删除 ID 为 n 的 VLAN。 
untagged Y:添加端口 Y 到 VLAN n。 
ifconfig vlan0 create:创建 vlan0 接口。 
ifconfig vlan0 vlan_ID vlandev em0:把 em0 加入到 vlan0 接口(LCTT 译注:原文存疑),并设置标记为 ID。 
ifconfig vlan0 [up]:启用虚拟接口。 
tagged Y:为当前 VLAN 的端口 Y 添加标记帧支持。 
UDP/TCP 
socklab udp:使用 UDP 协议运行 socklab。 
sock:创建一个 UDP 套接字,等效于输入 sock udp 和 bind。 
sendto:发送数据包。 
recvfrom:从套接字接收数据。 
socklab tcp:使用 TCP 协议运行 socklab。 
passive:创建一个被动模式的套接字,等效于 socklab,sock tcp,bind,listen。 
accept:接受进来的连接(可以在发起进来的连接之前或之后执行)。 
connect:等效于 socklab,sock tcp,bind,connect。 
close:关闭连接。 
read:从套接字中读取 n 字节。 
write:(例如,write ciao、write #10)向套接字写入 "ciao" 或 10 个字节。 
NAT/防火墙 
rm /etc/resolv.conf:禁止地址解析,保证你的过滤和防火墙规则正确工作。 
ipnat -f file_name:将过滤规则写入文件。 
ipnat -l:显示活动的规则列表。 
ipnat -C -F:重新初始化规则表。 
map em0 192.168.1.0/24 -> 195.221.227.57/32 em0:将 IP 地址映射到接口。 
map em0 192.168.1.0/24 -> 195.221.227.57/32 portmap tcp/udp 20000:50000:带端口号的映射。 
ipf -f file_name:将过滤规则写入文件。 
ipf -F -a:重置规则表。 
ipfstat -I:当与 -s 选项合用时列出活动的状态条目(LCTT 译注:原文存疑)。 
希望这份基础的 Linux 网络命令合集对你有用。欢迎各种问题和建议

文章来源: Linux中国

时间: 2024-08-05 23:14:41

程序猿必知的 基础Linux 网络命令的相关文章

每一个程序猿必知之SEO

似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之SEO.作为一个擅长前端兼SEO的设计师. 搜索引擎是如何工作的 假设你有时间,能够读一下谷歌的框架: http://infolab.stanford.edu/~backrub/google.html 这是一个老的,有些过时纸.但非常平易近人,甚至在我们中间的非白皮书的读者图标微笑什么每一个程序猿都应

Python程序猿必知会的Django用户模块扩展方法

本文和大家分享的主要是Django用户模块的扩展相关知识,希望可以帮助大家更好的学习Django ,一起来看看吧. Django内置的用户验证系统十分强大.大多数情况下,它可以拿来就用,能帮我们省去很多开发.测试的工作.它能满足大多数的使用情况并且很安全.但是有时候,为满足我们的网络应用需求,需要对它进行一些微调. 一般来说,我们希望更多地存储与用户有关的数据.如果你的网络应用具有社交属性,你可能希望存储用户简介.地理位置以及其他相关的东西. 在此教程里,我将简单呈现扩展Django用户模型的方

Python程序猿必知的新型字符串格式漏洞

本文对Python开发中引入的一种格式化字符串的新型语法的安全漏洞进行了深入的分析,并提供了相应的安全解决方案. 当我们对不可信的用户输入使用str.format的时候,将会带来安全隐患--对于这个问题,其实我早就知道了,但是直到今天我才真正意识到它的严重性.因为攻击者可以利用它来绕过Jinja2沙盒,这会造成严重的信息泄露问题.同时,我在本文最后部分为str.format提供了一个新的安全版本. 需要提醒的是,这是一个相当严重的安全隐患,这里之所以撰文介绍,是因为大多数人很可能不知道它是多么容

前端程序猿必知:单页面应用的核心

这几年里.单页面应用的框架令人应接不暇,各种新的概念也层出不穷.从过去的 jQuery Mobie.Backbone 到今天的 Angular 2.React.Vue 2,除了版本不同,他们还有非常多的同样之处. 刚開始写商业代码的时候,我使用的是 jQuery.使用 jQuery 来实现功能非常easy,找到一个对应的 jQuery 插件,再编写对应的功能就可以. 对于单页面应用亦是如此,寻找一个相辅助的插件就能够了,如 jQuery Mobile. 虽然在今天看来.jQuery Mobile

程序猿必知会的JavaScript 的遍历方式

不管是移动移动端开发还是web端开发,我们对JS的使用频率都在增加,今天小编将要和大家分享的就是JavaScript中,遍历方式的一些实现方法,个人感觉还是很有用的,有兴趣的童鞋可以一起来看看. 为了让大家更直观的了解相关功能,本文将通过例子向大家展示JavaScript的各种遍历,为了方便展示,我们先来了解一下现有数组和json对象: var demoArr = ['Javascript', 'Gulp', 'CSS3', 'Grunt', 'jQuery', 'angular']; var

迈向高阶:优秀Android程序员必知必会的网络基础

1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用的工具类,到后来Google开源的比较完善丰富的Volley,再到如今比较流行的Okhttp.Retrofit. 要想理解他们之间存在的异同(或者具体点说,要想更深入地掌握Android开发中的网络通信技术),必须对网络基础知识.Android网络框架的基本原理等做到心中有数.信手拈来,关键时刻才能

程序员必知的10大基础实用算法

    算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2) 次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的 架构上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists). 算法步骤: 1 从数列中挑出一个元

基础的 Linux 网络命令,你值得拥有

导读 有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的.最重要的.而且基础的 Linux 网络命令合集.在 It’s FOSS 我们并非每天都谈论 Linux 的“命令行方面”.基本上,我更专注于 Linux 的桌面端.但你们读者中的一些人在内部调查(仅面向 It's FOSS newsletter 订阅者)中指出,你们也想学些命令行技巧.速查表也受大部分读者所喜欢和支持. 为此,我编辑了一个 Linux 中基础网络命令的列表.它并不是一个教你如何使用这些命令的教程,而是一个命令

你必须了解的基础的 Linux 网络命令

Linux 基础网络命令列表 我在计算机网络课程上使用 FreeBSD,不过这些 UNIX 命令应该也能在 Linux 上同样工作. 连通性 ping <host>:发送 ICMP echo 消息(一个包)到主机.这可能会不停地发送直到你按下 Control-C.Ping 的通意味着一个包从你的机器通过 ICMP 发送出去,并在 IP 层回显.Ping 告诉你另一个主机是否在运行. telnet <host> [port]:与主机在指定的端口通信.默认的 telnet 端口是 23