1. 设置网络参数的命令
1. 1 手动/自动配置IP参数与启动/关闭网络接口: ifconfig, ifup, ifdown
1. ifconfig
直接输入会列出当前已经被启动的网卡
ifconfig {interface} {up|down}
ifconfig interface {options}
optiopns:
up, down
mtu: 可以设置不同的MTU值, 如mtu1500
netmask: 子网掩码
broadcast: 广播地址
#实例:
ifconfig eth0 192.168.1.200 netmask 255.255.255.0 mtu 1800
ifconfig eth0:0 192.168.2.200 netmask 255.255.255.0 # 在该实体网卡上,
# 再仿真出一个网络接口, 就是在一张网卡上设置多个IP
ifconfig eth0:0 down # 如果将eth0:0关闭, 对原有eth0是否有影响?
# ==> 无影响
service network restart # 重启网络, 使手动设置的网络参数全部失效
#要启动某个网络接口, 但又不让它具有IP参数时,
# 直接使用ifconfig eth0 up
# ==> 这个操作在采用无线网卡的环境中被经常使用
2. ifup, ifdown
这两个程序其实script, 它会直接到/etc/sysconfig/network-scripts目录查找对应的配置文件, 如果以ifconfig eth的方式来设置或者是修改了网络接口后, 那就无法再以ifdown eth0的方式来关闭
1.2 修改路由: route
只要有网络接口, 该接口就会产生一个路由
route [-nee]
route [add|del] [-net|-host] [网络或主机] netmask [mask] [gw|dev]
-n: show numerical addresses instead of trying to determine symbolic host names
-ee: 显示更详细的信息
-net: 网络
-host: 连接到单部主机的路由
netmask: 子网掩码
gw: 后接IP
dev: 后接设备, 如eth0等
#实例:
route add -net 192.168.160.0 netmask 255.255.255.0 gw 192.168.160.1 dev eth0
route add default gw 192.168.160.250
# 你只需要记得, 当出现"SIOCADDRT: Network is unreachale"这个错误时,
# 肯定是由于gw后面接的IP无法直接与你的网络沟通(Gateway并不在你的网络内)
1.3 网络参数的综合命令那个: IP
ip [option] [动作] [命令]
option:
-s: statistics, 例如接收数据包的总数等
操作:
link: 与设备(device)相关的设置, 包括MTU, MAC地址等
addr/address: 关于额外的IP协议, 例如多IP的实现等
route: 与路由有关的相关设置
1. 关于接口设备(device)的相关设置: ip link
ip [-s] link show #单纯查看该设备的相关信息
ip link set [device] [动作与参数]
show: 仅显示这个设备的相关属性, 如果加上-s会显示更多的统计数据
set: 开始设置项目, device指的是eth0, eth1等设备名称
动作与参数:
up|down: 启动或关闭某个接口
address: 如果这个设备可以修改MAC地址的话, 可以用这个参数修改
name: 给与这个设备一个特殊的名字
mtu: 最大传输单元
# 修改网卡名称, MAC地址等信息的话, 就只能使用ip了,
# 不过设定前可能需要先关闭该网卡, 否则不会成功
ip link set eth0 down
ip link set eth0 name jax_eth0 address aa:aa:aa:aa:aa:aa mtu 1800
# 测试完之后记得改回来!!!
2. 关于额外IP的相关设定: ip address
ip [-s] address show
ip address [add|del] [IP参数] [dev 设备名] [相关参数]
相关参数主要如下:
broadcast: 设置广播地址, 如果设置值是"+"表示"让系统自动计算"
label: 这个设备的名称, 例如 eth0:0
scope: 这个选项的参数, 通常有以下几类:
global: 允许来自所有来源的连接, 默认为global
site: 仅支持IPv6, 仅允许本主机的连接
link: 仅允许本设备自我连接
host: 仅允许本主机内部的连接
ip address add 192.168.170.200/24 broadcast + dev eth0 label eth0:0 scope global
ip address del 192.168.170.200/24 dev eth0
3. 关于路由的相关设定: ip route
ip [-s] route show
ip route [add|del] [IP或网络号] [via gateway] [dev 设备]
add|del:
via: 从那个网关出去, 不一定需要
dev: 由那个设备连出去, 必需
mtu: 可设定额外的MTU数值
ip route add 192.168.5.0/24 dev eth0
ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0
# 仔细看, 因为有192.168.5.100的路由在,
# 才可以将192.168.10.0/24的路由丢给192.168.5.100那部主机来帮忙传递
ip route add default via 192.168.160.2 dev eth0
1.4 无线网络: iwlist, iwconfig
- iwlist: 利用无线网卡进行无线AP的检测与取得相关数据
- iwconfig: 设置无线网卡的相关参数
1.5 DHCP客户端命令: dhclient
dhclient eth0
#可以立即让我们的网卡以DHCP协议去尝试取得IP
2. 网络排错与查看命令
1. 两台主机的两点沟通: ping
send ICMP ECHO_REQUEST to network host
最重要的是ICMP type 0, 8这两个类型, 分别是要求会送与主动回送网络状态是否存在的特性, ping需要通过IP数据包来传输ICMP数据包
ping [选项与参数] IP
-c 数值: count, 后接执行ping的次数
-n: 传输数据时不进行IP与主机名的反查, 直接使用IP输出(速度较快)
-s 数值: 发送出去的ICMP数据包大小, 默认56bytes, 可以放大
-t 数值: TTL数值, 默认255, 每经过一个节点就少1
# 如果你的主机与待检测主机不在同一个网络内, 则默认TTL=255,
# 在同一网络, 则默认TTL=64
-W 数值: 等待响应对方主机的秒数
-M [do|dont]: 主要检测网络的MTU数值大小, 两个常见的项目是:
do: 传输一个DF("Don't Fragment")标志, 让数据包不能重新拆包与打包
dont: 不要传输DF标志, 表示数据包可以在其他主机上拆包与打包
# 实例: 找出最大的MTU数值
ping -c 3 -n -s 8000 -t 200 -W 5 -M do www.baidu.com
# 不过需要知道的是, IP数据包包头(不含options)已占用20bytes,
# 加上ICMP的报头有8bytes, 所以当你在使用-s size时,
# 那个数据包的大小就需要先扣除(20+8=28)的大小了,
# 因此如果要使用的MTU为1500时, 就需要下达"ping -s 1472 -M do IP"才行
2. 两主机间各节点分析: traceroute
print the route packets trace to network host
traceroute [选项与参数] IP
-n: 传输数据时不进行IP与主机名的反查, 直接使用IP输出(速度较快)
-U: 使用UDP的port 33434端口进行检测, 这是默认检测协议
-I: 使用ICMP的方式检测
-T: 使用TCP的prot 80检测
-w: 若对方的主机在几秒内没有回应就声明不同, 默认5s
-p port: 指定使用的检测端口
traceroute -n www.baidu.com
traceroute to www.baidu.com (115.239.210.27), 30 hops max, 60 byte packets
1 192.168.160.2 0.079 ms 0.091 ms 0.029 ms #每个节点检测三次
2 * * *
3 * * *
# 返回星号代表该node可能设有某些防护措施, 使我们发送的数据包被丢弃
# 由于目前UDP/ICMP的攻击层出不穷,
# 因此很多路由器可能就此取消这两个数据包的相应功能,
# 不过我们可以使用TCP来检测
traceroute -n -T -w 1 www.baidu.com
traceroute to www.baidu.com (115.239.210.27), 30 hops max, 60 byte packets
1 192.168.160.2 0.076 ms 0.098 ms 0.056 ms
2 115.239.210.27 10.431 ms 29.049 ms 34.067 ms
3. 查看主机的网络连接与后门: netstat
可以查看网络连接的状态, 而网络连接状态中, 又可以查看"我目前开了多少端口在等待客户端连接", "目前我的网络连接状态中, 有多少连接已建立或产生问题"
netstat -[tulnpac]
-n: 不使用主机名与服务名称, 使用ip与port number
-t: 仅列出TCP数据包的连接
-u: 仅列出UDP数据包的连接
-l: 仅列出已在Listen(监听)的服务的网络状态
-p: 列出PID与Program的文件名
-a: 列出所有连接状态
-c: 设置每几秒自动更新一次, 如-c 5
#实例:
netstat -tulnp
4. 检测主机名与IP的对应: host
host [-a] hostname [server]
-a: 列出该主机详细的各项主机名设置数据
server: 可以使用不是有/etc/resolv.conf文件定义的DNS服务器IP来查询
# 实例:
host -a www.baidu.com 8.8.8.8
Trying "www.baidu.com"
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16809
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.baidu.com. IN ANY
;; ANSWER SECTION:
www.baidu.com. 991 IN CNAME www.a.shifen.com.
Received 58 bytes from 8.8.8.8#53 in 87 ms
3. 远程连接命令与即时通信软件
4. 网络配置补充
# 配置/etc/passwd时如何找到MAC地址?
dmesg | grep eth
DNS1=
DNS2=
DNS3= # 最多配置3个DNS地址,
# 且使用systemctl restart network后会将这三个DNS的配置写入/etc/resolv.conf中
# 如何将系统的eno16777736改为原来的eth0?
vi /etc/default/grub
# (1) 在GRUB_CMDLINE_LINUX=...后添加 net.ifnames=0 biosdevname=0
# (2) grub2-mkconfig -o /boot/grub2/grub2.cfg 重新生成grub2.cfg文件
# (3) 将ifcfg-eno16777736中的DEVICE值修改为eth0
虚拟机中的虚拟网络编辑器可调整虚拟机使用的网卡, DHCP等信息
本文基于<鸟哥的Linux私房菜>, 归纳整理, 在此致谢鸟哥.
网友评论