Linux系统几个跟网络相关的文件和命令

其实,linux的网络知识挺多的,阿铭在本节只把常用的一些技能教给大家。比如,如何设置ip、如何设置主机名、如何设置dns等。
14.3.1 用ifconfig命令查看网卡ip
前面阿铭曾用过ipaddr这个命令来查看系统的ip地址。其实在centos 7之前,我们使用最多的命令是ifconfig,它类似于windows的ipconfig命令,后面不加任何选项和参数时,只打印当前网卡ip的相关信息(如子网掩码、网关等)。在windows下设置ip非常简单,然而在命令窗口下如何设置呢?这就需要修改配置文件/etc/sysconfig/network-scripts/ifcfg-xxx了,这里的xxx指的是网卡的名字,可以使用ip addr命令查看所有网卡。如果你的系统里没有ifconfig命令,可以使用yuminstall -y net-tools安装。 如果linux上有多个网卡,而你只想重启某一个网卡的话,可以使用如下命令:
# ifdown ens33; ifup ens33ifdown即停用网卡,ifup即启动网卡。需要大家注意的是,如果我们远程登录服务器,当使用命令ifdownens33时,很有可能后面的命令ifupens33不会运行。这样会导致我们断网而无法连接服务器,所以请尽量使用命令systemctlrestart network来重启网卡。或者使用nmcli也可以实现同样的效果:# nmcli c down ens33; nmcli c up ens33  
14.3.2 给一个网卡设定多个ip
在linux系统中,网卡是可以设定多重ip的,阿铭就曾经为一台服务器的网卡设定了5个ip。多重ip的设置过程如下:
# cd /etc/sysconfig/network-scripts/# cp ifcfg-ens33 ifcfg-ens33:1  
然后编辑ifcfg-ens33:1这个配置文件。一定要注意device要写成 ens33:1,如下所示:
# vi ifcfg-ens33:1//编辑为类似如下内容type=ethernetproxy_method=nonebrowser_only=nobootproto=staticdefroute=yesipv4_failure_fatal=noipv6init=yesipv6_autoconf=yesipv6_defroute=yesipv6_failure_fatal=noipv6_addr_gen_mode=stable-privacyname=ens33:1uuid=0f632d9e-f3a1-40f9-8116-3340e2db6074device=ens33:1onboot=yesipaddr=192.168.72.129netmask=255.255.255.0其实就是改一下name、device、ipaddr,另外dns1和gateway可以删除,设置完毕重启网卡,如下所示:# ifdown ens33 && ifup ens33  
之后再查看网卡ip,如下所示:
# ifconfig ens33:flags=4163 mtu 1500 inet 192.168.72.128 netmask 255.255.255.0 broadcast 192.168.72.255 inet6 fe80:a2e567a3 prefixlen 64 scopeid 0x20 ether 00297f:b9 txqueuelen 1000 (ethernet) rx packets 66415 bytes 76169910 (72.6 mib) rx errors 0 dropped 0 overruns 0 frame 0 tx packets 15584 bytes 2655575 (2.5 mib) tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33flags=4163 mtu 1500 inet 192.168.72.129 netmask 255.255.255.0 broadcast 192.168.72.255 ether00297f:b9 txqueuelen 1000 (ethernet)  
从上面可以看到,多了一个ens33:1。
14.3.3 查看网卡连接状态
示例命令如下:
# mii-tool ens33ens33: negotiated 1000baset-fd flow-control, link ok这里显示linkok,就说明网卡为连接状态。如果显示nolink,说明网卡坏了或者没有连接网线。还有一个命令也可以查看网卡的状态,如下:# ethtool ens33settings forens33: supported ports: [ tp ] supported link modes: 10baset/half 10baset/full 100baset/half100baset/full 1000baset/full supported pause frame use: no supports auto-negotiation: yes supported fec modes: not reported advertised link modes: 10baset/half 10baset/full 100baset/half100baset/full 1000baset/full advertised pause frame use: no advertised auto-negotiation: yes advertised fec modes: not reported speed: 1000mb/s duplex: full port: twisted pair phyad: 0 transceiver: internal auto-negotiation: on mdi-x: off (auto) supports wake-on: d wake-on: d current message level: 0x00000007 (7) drv probe link link detected: yes  
如果网卡没有连接,最后面一行linkdetected显示为no。
14.3.4 更改主机名
在第3章的时候,阿铭已经介绍过如何更改主机名。安装完系统后,主机名默认为localhost.localdomain,使用hostname命令就可以查看linux的主机名,如下所示:
# hostnamelocalhost.localdomain  
使用hostname命令也可以更改主机名,如下所示:
# hostname aming# hostnameaming下次登录时,命令提示符[root@localhost~]中的localhost就会更改成aming。不过这样修改只是保存在内存中,如果重启,主机名还会变成改动之前的名称。所以更改主机名的同时还需要更改相关的配置文件/etc/hostname。下面阿铭再介绍一种更改主机名的方法,这种方法会自动更改文件内容,如下所示:# hostnamectl set-hostname aminglinux-123# hostnameaminglinux-123# cat /etc/hostnameaminglinux-123  
14.3.5 设置dns
dns是用来解析域名的。平时我们访问网站都是直接输入一个网址,而dns把这个网址解析到一个ip。关于dns的概念,阿铭不再详细介绍,如果你感兴趣就去网上查一下。 在linux下设置dns非常简单,只要把dns地址写到配置文件/etc/resolv.conf中即可。如下所示:
# cat /etc/resolv.conf# generated bynetworkmanagernameserver 119.29.29.29第一行以#开头的行没有实际意义,仅仅是一个注释,它的意思是,这个配置文件中的dns ip地址是由networkmanager服务生成的。那么为什么这个dns由它生成呢?你是否还有印象,我们在定义网卡配置文件的时候,就有一行dns1=119.29.29.29,其实就是因为这行配置,该配置文件里才有了nameserver的ip地址。resolv.conf有它固有的格式,一定要写成 nameserver ip的格式。阿铭建议你写两个或多个namserver,系统默认会用第一个namserver去解析域名,当第一个解析不成功时会使用第二个。 说到这,你是否有疑惑:既然两个地方都可以定义dns的ip地址,那么到底在哪里定义呢?阿铭给出的答案是:如果只是临时修改dns ip地址,就直接修改/etc/resolv.conf;如果是永久生效的话,还是要修改网卡的配置文件。 在linux下还有一个特殊文件/etc/hosts也能解析域名,不过需要我们在里面手动添加ip和域名这些内容。它的作用是临时解析某个域名,非常有用。该文件的内容如下:# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4localhost4.localdomain4::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6请用vim编辑该文件,增加一行192.168.72.1 www.baidu.com,保存文件后再ping一下www.baidu.com就会连接到192.168.72.1了。如下所示:# ping -c 2 www.baidu.comping www.baidu.com (192.168.72.1) 56(84) bytes of data.64 bytes from www.baidu.com (192.168.72.1): icmp_seq=1 ttl=64 time=0.531 ms64 bytes from www.baidu.com (192.168.72.1): icmp_seq=2 ttl=64 time=0.392 ms--- www.baidu.com ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 54msrtt min/avg/max/mdev = 0.392/0.461/0.531/0.072 ms/etc/hosts的格式很简单,每一行为一条记录,分成两部分,第一部分是ip,第二部分是域名。关于hosts文件,有以下几点需要你注意:  
一个ip后面可以跟多个域名,可以是几十个甚至上百个;
每一行只能有一个ip,也就是说一个域名不能对应多个ip;
如果有多行中出现相同的域名(对应的ip不一样),会按最前面出现的记录来解析。


是什么影响了笔记本的散热功能
钽电容器用于引爆系统的优势和选型
美国发现锂离子电池再循环经济型方案,将更便宜、更节能
EMUI 10的重磅功能问世,全新的UX设计和多彩AOD
微星两款B450芯片组主板 可以满足更多玩家的需求
Linux系统几个跟网络相关的文件和命令
Hexfets如何为开关模式电源(SMPS)做出了出色的贡献
FF91的开发团队 最不能缺少的实为特斯拉前高管
【转】在光纤延长设备施工中对光缆测试的方法和测试参数
三星LG减产LCD面板,中韩下一个对决在高端面板
复旦开源LVOS:面向真实场景的长时视频目标分割数据集
基于单片机和PWM控制方法调速实现无刷控制器检测设计
华为轮值CEO徐直军:华为下个目标是定制自己喜欢的手机
Cadence设计原理图常用导出方案
2021年2月机器人行业新品一览
区领导赴紫光展锐调研
为英特尔创造令人惊叹的Windows应用体验
什么是输入动态范围?输入动态范围的设计考虑
阿里云新品和解决方案发布,应用性能得到进一步优化
两个开关控制一个灯有几种接法?