Loading... <p> linux网络属性常用命令有ifconfig\route\ip命令,centos7 的还是nmcli\nmtui。</p> <p><span style="line-height: 1.6"><span style="font-size: 1.154rem"> </span></span><span style="font-size: 1.154rem">网络属性的三大文件:修改DNS的文件/etc/resolv.conf 、修改网卡IP地址</span><span style="line-height: 1.6"><span style="font-size: 1.154rem">/etc/sysconfig/network-scripts/ifcfg-dev_name以及添加静态路由的</span></span><span style="line-height: 1.6"><span style="font-size: 1.154rem">/etc/sysconfig/network-scripts/route-dev_name</span></span></p> <p> <strong><span style="font-size: 1.154rem"> ifconfig命令</span></strong></p> <pre class="brush:ps;toolbar:false">常用options有: hw {ether|ax25|ARCnet}修改MAC地址, add/del 添加/删除ip地址 up/down 把网卡的状态设为up/down状态 mtu 修改网卡的mtu值,默认是1500 arp/-arp 开户/关闭arp协议 [root@Centos6 ~]# ifconfig #查看网卡状态及信息 eth0 Link encap:Ethernet HWaddr 00:0C:29:DE:60:92 #网卡的类型及MAC地址 inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0 #ip、mask、广播地址 inet6 addr: 240e:a4:dd9:300:20c:29ff:fede:6092/64 Scope:Global inet6 addr: fe80::20c:29ff:fede:6092/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:67913 errors:0 dropped:0 overruns:0 frame:0 #接收的网络报文数量统计 TX packets:22916 errors:0 dropped:0 overruns:0 carrier:0 #发送的网络报文数量统计 collisions:0 txqueuelen:1000 RX bytes:38459605 (36.6 MiB) TX bytes:2424081 (2.3 MiB) #接收与发送报文的大小 [root@Centos6 ~]# ifconfig eth0 arp #启动arp[root@Centos6 ~]# ifconfig eth0 -arp #关闭arp[root@Centos6 ~]# ifconfig eth0 mtu 1490 #修改mtu值[root@Centos6 ~]# ifconfig eth0 up #修改网卡状态为up,默认就是up[root@Centos6 ~]# ifconfig eth0 down #修改网卡状态为down。修改后网络断了,远程连接被退出了Connection closed by foreign host. Disconnected from remote host(6.6) at 11:42:56. Type `help' to learn how to use Xshell prompt. root@Centos6 ~]# ifconfig eth0 192.168.1.12/24 #修改IP地址Connection closed by foreign host. Disconnected from remote host(6.6) at 11:53:37. Type `help' to learn how to use Xshell prompt. [c:\~]$ ssh 192.168.1.12 Connecting to 192.168.1.12:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Last login: Sun May 29 04:52:45 2016 from 192.168.1.6 [root@Centos6 ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:DE:60:92 inet addr:192.168.1.12 Bcast:192.168.1.255 Mask:255.255.255.0 #修改后立马生效。 [root@Centos6 ~]# ifconfig eth0:1 192.168.1.11/24;ifconfig #为eth0添加子接口IP地址eth0:1,并马上查看 eth0 Link encap:Ethernet HWaddr 00:0C:29:DE:60:92 inet addr:192.168.1.12 Bcast:192.168.1.255 Mask:255.255.255.0 ……………… eth0:1 Link encap:Ethernet HWaddr 00:0C:29:DE:60:92 #已添加成功 inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1</pre> <p><strong><span style="font-size: 1.154rem">IP </span><span style="font-size: 1.154rem">命令用来显示或操纵Linux主机的路由、IP、策略路由和网卡状态,是Linux下较新的功能强大的网络配置工具</span></strong></p> <p> IP命令的使用格式</p> <pre class="brush:ps;toolbar:false">ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | addrlabel | route | rule | neigh | tunnel | maddr | mroute |monitor } OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 | ipx| dnet | link } | -o[neline] } 常用的OBJECT有:link/addr/route,策略路由rule这里不显示操作</pre> <pre class="brush:ps;toolbar:false">OBJECT---link 可查看、修改网卡的各种二层信息 常用子command有: help 帮助---》 ip link help show 查看硬件属性 up 查看up的接口 dev dev_name 查看指定接口 set 修改网络的各种参数 up | down #设置网卡状态为up或down arp on | arp off #开户或关闭arp multicast on or multicast off #开启或关闭组播 name NAME #设置网卡的名称,修改前要把网卡的状态变为down---》ip link set dev_name name dev-new_name mtu NUMBER #设置mtu address LLADDRESS broadcast LLADDRESS. alias NAME #设置别名 [root@Centos6 ~]# ip link show eth0 #查看eth0二层链接信息 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:de:60:92 brd ff:ff:ff:ff:ff:ff alias eth10 #别名为eth10[root@Centos6 ~]# ip link set eth0 alias eth100 #修改别为eth100[root@Centos6 ~]# ip link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:de:60:92 brd ff:ff:ff:ff:ff:ff alias eth100 #修改成功[root@Centos6 ~]#</pre> <pre class="brush:ps;toolbar:false">OBJECT---addr 可管理、删除、查看IP地址 list|show 查看网卡的三层信息 add|delete 添加或删除ip地址 label label_name为增加的IP地址添加卷标,类似了ifconfig eth0:0 的作用 flush 清除IP地址,使用service network dev_name 可以让网卡重新加载IP地址 ip addr show查看三层信息</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184425-3.gif" border="0" /><img src="//cto.wang/usr/uploads/2016/07/20160703184425-30.png" title="1464757271421068.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">ip addr add 添加IP,以及label添加IP地址卷标eth0:1</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184425-75.png" title="1464757301335757.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false;">ip addr del 删除指定IP地址</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184425-42.png" title="1464757323738172.png" alt="blob.png" /></p> <p>ip addr flush 清除指定网卡的IP地址。格式是ip addr flush eth0</p> <pre class="brush:ps;toolbar:false">OBJECT---route 可添加、删除、查看linux的路由信息 常用的子命令是: add 添加路由 list 查看路由 delete 删除路由 flush 清除路由 ip route 或者 ip route list 查看路由表信息,其中每条路由最后的proto static 表示此路由是静态路由</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184425-63.png" title="1464757395160385.png" alt="blob.png" /></p> <p>ip route add 添加路由,格式是ip route add des_add/mask via gw|dev_name</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184425-51.png" title="1464757408519126.png" alt="blob.png" /></p> <p>ip route delete 删除路由,格式是ip route delete des_add/mask。下图中172.16.1.0/24删除完成。172.16.2/24 与172.16.3.0/24是后来添加的</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-81.png" title="1464757446785211.png" alt="blob.png" /></p> <hr /> <p><strong>route 路由查看、管理命令。route配置的路由会马上生效,但重启linux后,会丢失配置内容。</strong></p> <pre class="brush:ps;toolbar:false">添加路由 route [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [metric N][mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If] 删除路由 route [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric N][[dev] If]</pre> <p><strong> 路由的查看、添加与删除操作</strong></p> <pre class="brush:ps;toolbar:false">[root@mfc ~]# route -n 查看路由</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-36.png" title="1464757508264809.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">可以命以通过route {add|del|}查看route命令使用的格式</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-100.png" title="1464757529403326.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">[root@mfc ~]# route add -net 192.168.200.0/24 gw 192.168.1.2 添加路由</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-90.png" title="1464757547269118.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">[root@mfc ~]# route del -net 192.168.200.0/24 gw 192.168.1.2 删除路由</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-46.png" title="1464757573176805.png" alt="blob.png" /></p> <p>192.168.200.0/24路由已经被删除</p> <p></p> <p><strong>注意:ifconfig\ip\route三个命令虽然配置简单,而生效快,但最大的缺点是无法永久有效,重启后配置将会丢失。解决的方法可以直接配置相应的配置文件,保存后可永久有效。</strong></p> <p> <strong> 修改IP配置文件<br /></strong></p> <p><span style="font-size: 13px;line-height: 1.6"> </span><span style="font-size: 1.25rem">修改IP地址的配置文件是</span><span style="font-size: 15.789473533630371px;line-height: 27.36842155456543px">cat /etc/sysconfig/network-scripts/ifcfg-dev_name,centos6网卡的名称默认是ifcfg-eth{0,1,2,……},centos7的网卡默认以eno*</span></p> <p> <span style="font-size: 1.25rem">以centos6为例,修改配置文件后,service network restart 重启网络服务生效,centos7还可以使用</span><span style="font-size: 13px;line-height: 1.6"><span style="font-size: 1.25rem">systemctl restart network </span></span></p> <pre class="brush:ps;toolbar:false">配置文件说明: DEVICE: 此配置文件应用到的设备; HWADDR: 对应的设备的MAC地址; BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp; NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”; ONBOOT:在系统引导时是否激活此设备; TYPE:接口类型;常见有的Ethernet, Bridge; UUID:设备的惟一标识; PADDR:指明IP地址; NETMASK:子网掩码; GATEWAY: 默认网关; DNS1:第一个DNS服务器指向;此处的DNS配置优先于/etc/resolv.conf文件中的DNS配置 DNS2:第二个DNS服务器指向; USERCTL:普通用户是否可控制此设备; PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;</pre> <p> <img src="//cto.wang/usr/uploads/2016/07/20160703184426-9.png" title="1464757639856369.png" alt="blob.png" /></p> <p></p> <p> <strong><span style="font-size: 1.25rem">配置DNS服务器指向配置文件</span></strong> </p> <pre class="brush:ps;toolbar:false">cat /etc/resolv.conf 修改这文件</pre> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-56.png" title="1464757669988842.png" alt="blob.png" /></p> <p><span style="color:#000000">DNS服务器192.168.1.1是在网卡IP地址文件中/etc/sysconfig-network-scripts/ifcfg-eth0中配置的DNS1</span></p> <p><span style="color:#000000"> </span></p> <p><span style="color:#000000">编辑配置文件,添加DNS服务器8.8.8.8,并保存退出,立即生效 </span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-61.png" title="1464757712889510.png" alt="blob.png" /></p> <p>再查看此文件的内容</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-13.png" title="1464757727475056.png" alt="blob.png" /></p> <p><span style="font-size: 1.25rem"><strong> 配置route<br /></strong></span></p> <p><span style="font-size: 1.25rem"> route的配置文件路径是/etc/sysconfig/network-cripts/目录下,以route-dev_name命令格式的文件,默认不存在,需要创建并配置。<br /></span></p> <p><span style="font-size: 1.25rem"> 通过此方式配置的路由有两格式:</span></p> <pre class="brush:ps;toolbar:false">只有一行的格式:des_ipaddress/mask via gw 有三行的格式: ADDRESS#=dest_ipaddress NETMASK#=mask GETAWAY=gw 注意:两个格式不同时使用,只能选用一个</pre> <p><strong> </strong></p> <p><strong> 创建配置文件并添加路由</strong></p> <p> <strong><span style="color:#000000"><span style="font-size: 1.167rem">Centos6</span></span></strong></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-6.png" title="1464757845359282.png" alt="blob.png" /></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-48.png" title="1464757876977386.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">创建并保存文件后,service network restart 可以让配置生效</pre> <p><strong>Centos7</strong></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-22.png" title="1464757947724959.png" alt="blob.png" /></p> <p>在centos7上的配置文件里,试过1行格式的172.16.3.0/24 via 192.168.1.1 和 172.16.3.0/24 via 192.168.1.1 dev eno16777736,然后nmcli device disconnetc eno016777736 && nmcli device connetc eno16777736 重新启用网卡或重启系统,都不生效;使用三行的格式的也不生效,郁闷中</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-15.png" title="1464758016998413.png" alt="blob.png" /></p> <p><span style="font-size: 1.25rem"><strong><span style="font-size: 1.5rem"><span style="color:#ff6820">三个命令的总结:</span></span></strong>ifconfig与route 命令几乎所有的版本都支持,简单好用,但也只有拥有基本的功能。ip这个命令功能强大,拥有网络属性中的link路信息、IP地址、路由、策略路由、多播、monitor 、邻居等等功能,强大到没有朋友 。三个命令都有的缺点是不能永久有效,若要永久生效,需要修改配置文件。</span></p> <p><span style="font-size: 1.25rem"></span></p> <hr /> <p><span style="font-size: 1.308rem"><strong>Centos7网络属性专用修改工具</strong></span></p> <p><span style="font-size: 1.308rem"></span></p> <p> <strong>网卡命名机制</strong><span style="line-height: 1.6"><strong> </strong> </span><span style="line-height: 1.6"> </span></p> <p></p> <pre class="brush:ps;toolbar:false">systemd对网络设备的命名方式: (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1; (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1; (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0; (d) 如果用户显式启动,也可根据MAC地址进行命名,如enx2387a1dc56; (e) 上述均不可用时,则使用传统命名机制;</pre> <p><span style="font-size: 1.25rem"></span><strong> 名称组成格式</strong></p> <pre class="brush:ps;toolbar:false">en: ethernet wl: wlan ww: wwan 名称类型: o<index>: 集成设备的设备索引号; s<slot>: 扩展槽的索引号; x<MAC>: 基于MAC地址的命名; p<bus>s<slot>: enp2s1</pre> <p><strong>网卡设备的命名过程:</strong> </p> <pre class="brush:ps;toolbar:false">第一步:udev, 辅助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules 第二步:biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules 第三步:通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH</pre> <p><strong>回归传统命名方式:</strong></p> <pre class="brush:ps;toolbar:false">(1) 编辑/etc/default/grub配置文件 GRUB_CMDLINE_LINUX="net.ifnames=0 …… rhgb quiet" (2) 为grub生成其配置文件 grub2-mkconfig -o /etc/grub2.cfg (3) 重启系统</pre> <p></p> <p><strong><span style="font-size: 1.25rem">修改网络名称,修改成简单一点</span></strong></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703184426-65.png" title="1464758120129329.png" alt="blob.png" /></p> <p><span style="color:#000000">把网卡名称修改成eth0</span></p> <p>第一步骤,修改/etc/default/grub,红色方框的内容是要添加进去的</p> <p><img src="/upload/uwqf4toglyb.png" title="1464758143622881.png" alt="blob.png" /></p> <p>第二步骤,重新生成grub配置文件,使用grub2-mkconfig -o /etc/grub2.cfg 命令,然后重启</p> <p><img src="/upload/susgv3egr41.png" title="1464758168154593.png" alt="blob.png" /></p> <p>重启后,网卡的名称改为了eth0,这样好记多了。</p> <p><img src="/upload/zrn0o1widhe.png" title="1464758190813645.png" alt="blob.png" /></p> <p></p> <p><strong><span style="font-size: 1.25rem">nmcli 网络管理命令</span></strong></p> <p><code class="language-sh"><span class="pln"></span></code></p> <pre class="brush:ps;toolbar:false">nmcli [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { general | networking | radio | connection | device | agent } 键入nmcli后,按tab键可以查看后面的参数</pre> <p><img src="/upload/t4bb3psd2ku.png" title="1464758231259838.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">查看系统链接网络设备状态,使用nmcli device status</pre> <p><img src="/upload/x3p4mktzyka.png" title="1464758249619287.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">关闭网卡eth0,使用nmcli device disconnect eth0,关闭后ifconfig查看网卡配置时,没有IP的配置</pre> <p><img src="/upload/uavraxifftt.png" title="1464758267808603.png" alt="blob.png" /></p> <p></p> <pre class="brush:ps;toolbar:false">开启eth0,使用nmcli device connect eth0</pre> <p><img src="/upload/1tfo3cmqxpy.png" title="1464758284156041.png" alt="blob.png" /></p> <p><span style="color:#ff6820"> <strong> 总结</strong></span>:nmcli命令除了查看设备状态、关闭或开启外,还可以设置静态IP地址、设置为DHCP获取、DNS服务器IP等,但个人觉得这些功能使用较麻烦,不如IP/IFCONFIG命令简单</p> <p></p> <p> <strong><span style="font-size: 1.25rem"> nmtui可显化配置命令,直接通过按扭操作</span></strong></p> <p></p> <p><img src="/upload/yo1l1hcuk2t.png" title="1464758307422704.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">选择“set system hostname” 设置主机名,修改为centos7x64,并<OK>,重启后生效</pre> <p></p> <p><img src="/upload/temjqq53fca.png" title="1464758328577911.png" alt="blob.png" /> </p> <p>选择“Edit a connection”,修改网卡的IP地址,注意eth0系统连接识别的全称是Ethernet connection 1,修改之后重启生效</p> <p><img src="/upload/m1lifjmawrl.png" title="1464758344954326.png" alt="blob.png" /></p> <p><img src="/upload/dp3rtrh3jyi.png" title="1464758349467446.png" alt="blob.png" /></p> <p><img src="/upload/gr32b5eklvg.png" title="1464758355114528.png" alt="blob.png" /></p> <p><img src="/upload/14yrpsda0dw.png" title="1464758363225455.png" alt="blob.png" /></p> <hr /> <p><strong><span style="font-size: 1.417rem"> ss命令,可取代netstat ,执行效果比netstat快很多 </span><br /></strong></p> <p> <span style="font-size: 1.167rem"> </span><span style="line-height: 1.6"><span style="font-size: 1.167rem">ss [options] [ FILTER ]</span></span></p> <p><span style="font-size: 1.167rem"> <strong> 常用选项</strong></span></p> <pre class="brush:ps;toolbar:false">-t:TCP协议相关 -u:udp协议相关 -w:裸套接字相关 -x:unix sock相关 -l:listen状态的链接 -a:所有 -n:不解析服务的名称 -p:相关程序及PID -e:详细的信息 -m:内存用量 -o:计时器信息 -s:显示汇总信息 -F <路径/文件名> 从指定的文件中读取信息,并显示出来 -A <文件路径/文件名> 把查询的结果转存到指定的文件,支持{all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink},以逗号隔开 FILTER : = [stat tcp-state][expression] 配合使用代表式 ss -o state established ’( dport = :ssh or sport = :ssh )’ 显示状态是established,源端口sport是ssh或者目标端口dport是ssh 的连接的 常用的组合: -tapl -ualp -tal -ual</pre> <pre class="brush:ps;toolbar:false">TCP的常见状态:</pre> <p></p> <p><code class="language-sh"><span class="pln"><span style="font-size: 1.167rem"></span></span></code></p> <pre class="brush:ps;toolbar:false">LISTEN: 监听 ESTABLISHED:已建立的连接 FIN_WAIT_1 FIN_WAIT_2 SYN_SENT #TCP SYN_RECV #TCP CLOSED #关闭</pre> <pre class="brush:ps;toolbar:false">显示连接汇总信息</pre> <p><img src="/upload/jwu3edk1pfj.png" title="1464758446549255.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">显示TCP信息</pre> <p><img src="/upload/vmv4ug5ce4d.png" title="1464758459382251.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false"> 显示特定IP地址的UDP\TCP链接信息,由实验环境没有UDP连接,查询是没有显示出内容,但命令是这样用。</pre> <p><strong><span style="font-size: 1.25rem"><img src="/upload/x2vtnlgy14b.png" title="1464758471355085.png" alt="blob.png" /></span></strong></p> <pre class="brush:ps;toolbar:false"> 指定特定IP与特定服务查询连接情况,192.168.1.6只用53185端口连接linux,所以查询80\ssh端口时没有显示</pre> <p><strong><span style="font-size: 1.25rem"></span></strong><img src="/upload/rv1aa0pd0l1.png" title="1464758557893692.png" alt="blob.png" /></p> <pre class="brush:ps;toolbar:false">通过tcp的状态查看连接情况。查看状态是established的TCP连接</pre> <p><img src="/upload/iefzhsap21e.png" title="1464758588913655.png" alt="blob.png" /><strong><span style="font-size: 1.25rem"></span></strong></p> <p><strong><span style="font-size: 1.25rem"></span></strong></p> <p></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信