我们说一下UNIX中联网的相关命令,诸如分配IP,添加路由等
网络上每一个节点连接进网络前,都必须要分配多个参数,包括子网掩码,网关,路由,端口,DNS等
我们就需要知 道命令 ifconfig route nslookup host这些命令
在UNIX系统中,网口遵循这个eth0 eth1的命名,还有着 usb0 wlan0等,分别对应着USB网口,无线LAN等网络
ifconfig用于显示网络接口,子网掩码等信息
ifconfig 位于/sbin/ifconfig,当输出这个命令发现command not found ,说明没有设置在环境变量里
我们可以使用sbin/ifconfig表示绝对路径
ifconfig左侧一列是网络接口名,右侧是网络接口的详细信息
我们如果只想要ifconfig打印的网络接口,可以使用如下的方式
$ ifconfig | awk ‘{print $1}’ | egrep ‘(^*:)’ | tr -d ‘\:’
ip地址的分配和显示
ifconfig会显示系统中所有可用接口的详细信息,可以限制其只显示某个特定接口
ipconfig iface_name
ifconfig wlan
这样的话可以针对的显示系统中可用接口
我们感兴趣的是IP地址,广播地址,硬件地址和子网掩码
HWaddr 00:1c:bf:87:25:d2硬件地址
inet addr 192.168.0.82是IP地址
Bcast:192.168.3.255是广播地址
Mask:255.255.252.0是子网掩码
我们需要对某些数据进行提取
ifconfig lo | egrep -o “inet [^ ]*” | grep -o “[0-9.]*”
127.0.0.1
如果需要设置网络的IP地址
ifconfig wlan0 192.168.1.80
设置子网掩码
ifconfig wlan0 192.168.0.80 netmask 255.255.255.0
设置mac地址
mac在ifconfig 输出中是以HWaddr 00:1c:bf:87:25:d5
我们可以手动设置硬件地址
ifconfig eth0 hw ether 00:00:00:00:00:00
名字服务器DNS
我们为了将IP和域名来彼此转换,设计出了DNS
我们分配给当前服务器的DNS可以手动查看
/etc/resolv.conf
当然可以手动的添加名字服务器
echo nameserver IP_ADDRESS >> /etc/resolv.conf
如何获取到域名对应的ip呢,可以使用ping命令,然后查看对应的信息,
但是ping只会返回一个,我们要查找域名对应的所有IP,就需要DNS查找工具
host和nslookup就是两个DNS查找工具
执行host的时候,会列出一个域名的所有IP
nslookup也是类似
host www.baidu.com
Server是默认的DNS解析服务器
不使用DNS服务器也可以为IP地址添加符号名,向/etc/hosts添加条目即可
下面的语法添加条目
echo IP_ADDRESS symbolic_name >> /etc/host
例如
echo 192.168.1.9 backupser.com >> /etc/hosts
设置默认网关,显示路由表
系统内部会维护一个路由表 routing table的表格,会包含关于分组如何转发,如何连接网络,我们可以使用如下的方法显示路由表
route
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default bogon 0.0.0.0 UG 100 0 0 p8p1 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0 192.168.100.0 0.0.0.0 255.255.252.0 U 100 0 0 p8p1 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 |
或者使用route -n,这样,会以IP的形式显示DNS的主机
那么如何设置默认网关呢?
route add default gw IP_ADDRESS INTERFACENAME
route add default gw 192.168.0.1 wlan0
tranceroute
traceroute是指引网络包到达目的的最好方式,traceroute可以帮助我们搞明白到达目的地需要多少跳,我们检测到达目的地址的方式可以使用下面的命令
traceroute www.baidu.com