Loading... <h1 style="text-align: center">Linux网络属性管理</h1> <p>linux的网络配置方法有多种,而且随发行版及版本而略微不同。我目前的测试环境为CentOS6和CentOS7。</p> <p></p> <p>常用的网络配置命令或方法有:ifconfig,route,netstat,ip,ss,nmcli,配置文件。</p> <p></p> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-family: 黑体, SimHei;font-size: 16px"> 首先:命令方法介绍 </span></p> <p></p> <p>一、命令简介</p> <p></p> <p>ifconfig:是个比较传统的命令,可以配置网络接口的启用及关闭,IP地址等等;</p> <p></p> <p>route:主要用于配置路由;</p> <p></p> <p>netstat:主要用于查看网络状态;</p> <p></p> <p>ip:是个功能更全面的命令,可以管理网络接口以及路由,可以取代ifconfig和route命令;</p> <p></p> <p>ss:同netstat一样主要用于查看网络状态,但能提供更多的信息;</p> <p></p> <p>nmcli:NetworkManager command line,功能不断得到完善的命令,主要用于管理网络接口,WIFI,蓝牙等等。</p> <p></p> <p>二、详细用法</p> <p></p> <p>1. ifconfig</p> <p></p> <p>直接输入ifconfig或者ifconfig -a会查看所有网络接口的信息:</p> <p></p> <p>开启或关闭某个网络接口:</p> <p></p> <p>[root@localhost ~]# ifconfig eno16777736 down</p> <p>[root@localhost ~]# ifconfig eno16777736 up</p> <p></p> <p>设置IP地址:ifconfig INTERFACE IP/MASK</p> <p></p> <p>[root@localhost ~]# ifconfig eno16777736 192.168.1.108/24</p> <p>注意:这个操作会覆盖旧的IP;</p> <p></p> <p>启用或关闭混杂模式,用于网络监控:</p> <p></p> <p>ifconfig INTERFACE -promisc</p> <p></p> <p>ifconfig INTERFACE promisc</p> <p></p> <p><strong>注意:使用ifconfig修改的内容会立即生效,但不会永久生效。</strong></p> <p></p> <p>2. route 路由管理命令</p> <p></p> <p>直接在shell中输入route -n 命令,会显示所有路由信息:</p> <p></p> <p>[root@localhost ~]# route -n</p> <p>Kernel IP routing table</p> <p>Destination Gateway Genmask Flags Metric Ref Use Iface</p> <p>0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777736</p> <p>192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736</p> <p>使用route添加主机路由:</p> <p></p> <p>[root@localhost ~]# route add -host 192.168.10.3 gw 192.168.1.1 dev eno16777736 </p> <p># -host:添加主机路由;gw:gatway;eno16777736:网络接口名;</p> <p>[root@localhost ~]# route -n</p> <p>Kernel IP routing table</p> <p>Destination Gateway Genmask Flags Metric Ref Use Iface</p> <p>0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777736</p> <p>192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736</p> <p>192.168.10.3 192.168.1.1 255.255.255.255 UGH 0 0 0 eno16777736</p> <p># 最后一条为新加的路由;</p> <p>使用route添加网络路由:</p> <p>[root@localhost ~]# route add -net 198.162.2.0/24 gw 192.168.1.33 dev eno16777736</p> <p># -net:网络路由;198.162.2.0/24:IP/MASK;注意添加网络路由需要附带子网掩码MASK;</p> <p>[root@localhost ~]# route -n</p> <p>Kernel IP routing table</p> <p>Destination Gateway Genmask Flags Metric Ref Use Iface</p> <p>0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777736</p> <p>192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736</p> <p>192.168.2.0 192.168.1.1 255.255.255.0 UG 0 0 0 eno16777736</p> <p># 最后一条为新加网络路由;</p> <p>添加默认路由:</p> <p></p> <p>[root@localhost ~]# route add default gw 192.168.1.1 dev eno16777736</p> <p># 注意使用default选项;最后应加上dev名;</p> <p></p> <p>删除一条路由:</p> <p>[root@localhost ~]# route del -host 192.168.1.3</p> <p>删除网络路由,默认路由同理</p> <p><strong>注意: route命令修改的内容也是临时有效,重启失效。</strong></p> <p></p> <p>3. netstat命令</p> <p></p> <p>netstat命令用于查看网络状态,常用选项有:</p> <p></p> <p>-t: 查看tcp连接</p> <p></p> <p>-u:查看udp连接</p> <p></p> <p>-n:以数字方式查看端口和IP</p> <p></p> <p>-a:显示所有状态</p> <p></p> <p>-l:查看处于监听状态的连接</p> <p></p> <p>常用选项组合:</p> <p></p> <p>[root@localhost ~]# netstat -tan 查看所有TCP连接状态</p> <p>Active Internet connections (servers and established)</p> <p>Proto Recv-Q Send-Q Local Address Foreign Address State </p> <p>tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN </p> <p>tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN </p> <p>tcp 0 52 192.168.1.200:22 192.168.1.108:5141 ESTABLISHED</p> <p>tcp6 0 0 :::22 :::* LISTEN </p> <p>tcp 0 0 ::1:25 :::* LISTEN </p> <p>[root@localhost ~]# netstat -uan 查看所有UDP连接状态</p> <p>Active Internet connections (servers and established)</p> <p>Proto Recv-Q Send-Q Local Address Foreign Address State </p> <p>udp 0 0 127.0.0.1:323 0.0.0.0:* </p> <p>udp6 0 0 ::1:323 :::* </p> <p>4. ip命令的使用方法:</p> <p></p> <p>ip [ OPTIONS ] OBJECT { COMMAND | help }</p> <p>常用的OBJECT有:link,addr,route;</p> <p></p> <p>每个OBJECT对应不同的COMMAND;</p> <p></p> <p>可以对每个OBJECT查看其man手册,也可以查看其帮助:</p> <p></p> <p>如:man ip link;</p> <p></p> <p>ip link help;</p> <p></p> <p>ip link常用于开启或关闭某个网络接口,及显示其信息:</p> <p></p> <p>[root@localhost ~]# ip link set eno16777736 up</p> <p>[root@localhost ~]# ip link show dev eno16777736 </p> <p>2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT </p> <p>qlen 1000 link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff</p> <p>ip addr常用于查看IP地址,增加IP地址,删除IP地址</p> <p></p> <p>[root@localhost ~]# ip addr add 192.168.1.108/24 dev eno16777736</p> <p># 为eno16777736增加一个IP;</p> <p># 注意使用了ip addr下的次级命令add,add后面是IP/MASK,最后是dev+网络接口号;</p> <p>[root@localhost ~]# ip addr show dev eno16777736 </p> <p># ip addr show dev INTERFACE命令用于查看特定INTERFACE的信息;</p> <p>2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000</p> <p>link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff</p> <p>inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic eno16777736</p> <p>valid_lft 4694sec preferred_lft 4694sec</p> <p>inet 192.168.1.108/24 scope global secondary eno16777736</p> <p># 注意此条IP是新加的;</p> <p>valid_lft forever preferred_lft forever</p> <p>inet6 fe80::20c:29ff:fedf:394e/64 scope link </p> <p>valid_lft forever preferred_lft forever</p> <p>[root@localhost ~]# ip addr del 192.168.1.108/24</p> <p># 删除IP,后面不带INTERFACE参数是不能删除IP的,因为没有操作对象;</p> <p>Not enough information: "dev" argument is required.</p> <p>[root@localhost ~]# ip addr del 192.168.1.108/24 dev eno16777736</p> <p># 此为删除IP的正确操作;</p> <p>[root@localhost ~]# ip addr show</p> <p># 这条命令最后不带INTERFACE参数,默认显示所有INTERFACE的信息;</p> <p>1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN </p> <p>link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</p> <p>inet 127.0.0.1/8 scope host lo</p> <p>valid_lft forever preferred_lft forever</p> <p>inet6 ::1/128 scope host </p> <p>valid_lft forever preferred_lft forever</p> <p>2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000</p> <p>link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff</p> <p>inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic eno16777736</p> <p>valid_lft 4599sec preferred_lft 4599sec</p> <p>inet6 fe80::20c:29ff:fedf:394e/64 scope link </p> <p>valid_lft forever preferred_lft forever</p> <p></p> <p>ip route 是路由管理命令:</p> <p>[root@localhost ~]# ip route add 192.168.1.109 via 192.168.1.33</p> <p># 使用格式1:ip route add 主机路由IP via 网关</p> <p>[root@localhost ~]# ip route show</p> <p># 查看路由;</p> <p>default via 192.168.1.33 dev eno16777736 proto static metric 100 </p> <p>192.168.1.0/24 dev eno16777736 proto kernel scope link src 192.168.1.105 metric 100 </p> <p>192.168.1.109 via 192.168.1.33 dev eno16777736 </p> <p># 添加网络路由;</p> <p>[root@localhost ~]# ip route add 192.168.2.0/24 via 192.168.1.33</p> <p># 删除一条主机路由;</p> <p>[root@localhost ~]# ip route delete 192.168.1.111</p> <p># 删除一条网络路由;</p> <p>[root@localhost ~]# ip route delete 192.168.2.0/24</p> <p></p> <p><strong>注意:IP命令的修改同样也非永久有效。</strong></p> <p></p> <p>5. ss 与netstat用法差不多。</p> <p> ss [OPTION]… [FILTER]</p> <p><span class="Apple-tab-span"></span>选项:</p> <p><span class="Apple-tab-span"></span> -t: tcp协议相关</p> <p> -u: udp协议相关</p> <p><span class="Apple-tab-span"> </span>-w: 裸套接字相关</p> <p><span class="Apple-tab-span"> </span>-x:unix sock相关</p> <p><span class="Apple-tab-span"> </span>-l: listen状态的连接</p> <p><span class="Apple-tab-span"> </span>-a: 所有</p> <p><span class="Apple-tab-span"> </span>-n: 数字格式</p> <p><span class="Apple-tab-span"> </span>-p: 相关的程序及PID</p> <p><span class="Apple-tab-span"> </span>-e: 扩展的信息</p> <p><span class="Apple-tab-span"> </span>-m:内存用量</p> <p><span class="Apple-tab-span"> </span>-o:计时器信息</p> <p> FILTER := [ state TCP-STATE ] [ EXPRESSION ]</p> <p> 如:[root@localhost ~]# ss state established 'dport = :ssh or sport = :ssh'</p> <p> [root@localhost ~]# ss state established 'dport = :22 or sport = :22'</p> <p> [root@localhost ~]# ss state time-wait</p> <p>6.nmcli命令:NetworkManager Command Line,此命令所做的修改会永久有效,不需要再修改配置文件。</p> <p></p> <p>nmcli [ OPTIONS ] OBJECT { COMMAND | help }</p> <p>其中,OPTIONS不常用。</p> <p></p> <p>OBJECT是必须项,常用的有:</p> <p></p> <p> 1)、general 注意用于查看网络状态,主机名等</p> <p></p> <p>nmcli general help:查看nmcli general帮助;</p> <p></p> <p>[root@localhost network-scripts]# nmcli general</p> <p># 查看网络接口状态;</p> <p>STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN </p> <p>connected full enabled enabled enabled enabled </p> <p>[root@localhost network-scripts]# nmcli g status</p> <p># general可以简写为g;</p> <p>STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN </p> <p>connected full enabled enabled enabled enabled </p> <p>[root@localhost ~]# nmcli general hostname</p> <p># 查看主机名</p> <p>localhost.localdomain</p> <p>[root@localhost ~]# nmcli general hostname mylinux</p> <p># 修改主机名,注意将要修改的主机名作为参数传递进来;会永久生效</p> <p> 2)、connection</p> <p>nmcli conn help 查看帮助</p> <p></p> <p>nmcli conn show 显示所有连接</p> <p></p> <p>[root@localhost ~]# nmcli conn modify eno16777736 ipv4.addresses 192.168.1.108/24 修改一个IP及MASK;</p> <p></p> <p>[root@localhost ~]# nmcli conn modify eno16777736 +ipv4.addresses 192.168.1.108/24 添加一个IP及MASK;</p> <p></p> <p>[root@localhost ~]# nmcli conn modify eno16777736 -ipv4.addresses 192.168.1.108/24 减去一个IP及MASK;</p> <p></p> <p>说明:ipv4.addresses为<setting>.<property>格式,可以man nm-settings查看所有可用组合格式。</p> <p></p> <p>注意:对connection所做的所有修改,均需重启connection生效,重启方法:</p> <p></p> <p>[root@localhost ~]# nmcli con down eno16777736; nmcli con up eno16777736</p> <p></p> <p> 3)、device 主要用于查看网络信息</p> <p>[root@mylinux ~]# nmcli device status</p> <p>DEVICE TYPE STATE CONNECTION </p> <p>eno16777736 ethernet connected eno16777736 </p> <p>lo loopback unmanaged — </p> <p>[root@mylinux ~]# nmcli device show</p> <p>GENERAL.DEVICE: eno16777736</p> <p>GENERAL.TYPE: ethernet</p> <p>GENERAL.HWADDR: 00:0C:29:DF:39:4E</p> <p>GENERAL.MTU: 1500</p> <p>GENERAL.STATE: 100 (connected)</p> <p>GENERAL.CONNECTION: eno16777736</p> <p>GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/8</p> <p>WIRED-PROPERTIES.CARRIER: on</p> <p>IP4.ADDRESS[1]: 192.168.1.105/24</p> <p>IP4.ADDRESS[2]: 192.168.1.108/24</p> <p>IP4.GATEWAY: 192.168.1.33</p> <p>IP4.DNS[1]: 10.64.101.209</p> <p>IP4.DNS[2]: 10.64.102.209</p> <p>IP6.ADDRESS[1]: fe80::20c:29ff:fedf:394e/64</p> <p>IP6.GATEWAY: </p> <p>GENERAL.DEVICE: lo</p> <p>GENERAL.TYPE: loopback</p> <p>GENERAL.HWADDR: 00:00:00:00:00:00</p> <p>GENERAL.MTU: 65536</p> <p>GENERAL.STATE: 10 (unmanaged)</p> <p>GENERAL.CONNECTION: —</p> <p>GENERAL.CON-PATH: —</p> <p>IP4.ADDRESS[1]: 127.0.0.1/8</p> <p>IP4.GATEWAY: </p> <p>IP6.ADDRESS[1]: ::1/128</p> <p># 注意status和show命令显示的信息不一样。</p> <p> 4)、networking 网络总开关</p> <p></p> <p>nmcli networking on 或者 off。</p> <p></p> <p>Linux除了提供命令行来管理网络接口之外,还提供了图形界面管理网络接口:</p> <p></p> <p>你可以直接在命令行中输入命令名称打开其操作界面。</p> <p></p> <p>常用的有:</p> <p></p> <p>nmtui</p> <p></p> <p>system-config-network-tui</p> <p></p> <p>这两个工具就不详细介绍了~~~</p> <p> </p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-family: 黑体, SimHei;font-size: 16px"> 其次:使用配置文件方法介绍 </span></p> <p></p> <p>linux下配置网络的方法还可以通过修改配置文件和使用nmcli命令来完成:</p> <p></p> <p>1. 修改配置文件:</p> <p></p> <p> 1)、网络接口的配置文件为:/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME</p> <p></p> <p>配置文件中可以修改的项有:</p> <p></p> <p>DEVICE: 此配置文件应用到的设备, 应于IFACE名一致</p> <p></p> <p>HWADDR: MAC地址</p> <p></p> <p>BOOTPROTO: 激活设备地址配置协议, dhcp, static, none, bootp</p> <p></p> <p>NM_CONTROLLED: NM是networkmanager的缩写; 此网卡是否接受NM控制; CentOS 6上建议为no</p> <p></p> <p>ONBOOT: 系统引导时是否激活此设备; yes|no</p> <p></p> <p>TYPE: 接口类型; Ethernet, Bridge;</p> <p></p> <p>UUID: 设备唯一标识</p> <p></p> <p>IPADDR: 指明IP地址(主地址)</p> <p></p> <p>NETMASK: 子网掩码</p> <p></p> <p>GATWAY: 默认网关</p> <p></p> <p>DNS1: 第一个DNS服务器地址</p> <p></p> <p>DNS2:</p> <p></p> <p>DNS3:</p> <p></p> <p>USERCTL: 普通用户是否可控制此设备; 尽量不允许</p> <p></p> <p>PEERDNS: 如果BOOPPROTO的值为dhcp, 是否运行dhcp服务器分配的DNS直接覆盖配置文件的设置</p> <p></p> <p>2)、路由配置文件:/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME</p> <p></p> <p> 两种定义方式:</p> <p></p> <p>1. TARGET via GW</p> <p></p> <p>TARGET:目标IP</p> <p></p> <p>GW:网关</p> <p></p> <p>2. 每三行定义一条路由</p> <p></p> <p>ADDRESS#=TARGET</p> <p></p> <p>NETMASK#=mask</p> <p></p> <p>GATEWAY#=GW</p> <p></p> <p>注:#为数字,表示第#组配置。</p> <p></p> <p>修改完成配置文件需要重启网络服务才能生效:service network restart。</p> <p></p> <p></p> </blockquote> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信