常用网络管理命令

ifconfig

查询本机网络信息, 如果不能使用这个命令, 要安装一下 net-tools :

[test@ubuntu: ~]$ sudo apt install -y net-tools

直接使用 ifconfig 命令查看网卡状态:

[test@ubuntu: ~]$ ifconfig

里面对我们来说有用的就是一个 IP,一个子网掩码,因为我们需要用 ip 来访问服务器

这个命令还可以临时设置ip, 格式是:

ifconfig 网卡名 ip

临时设置ip:

[test@ubuntu: ~]$ ifconfig enp0s8 192.168.10.22

临时设置ip, 重启后无效

route

route 命令可以查看网关, -n 参数不执行DNS反向查找,直接显示数字形式的IP地址:

[test@ubuntu: ~]$ route -n

ip

ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig 与 route 这两个命令,不过 ip 的功能更强大。

比如查看ip参数:

[test@ubuntu: ~]$ ip addr

比如查看路由网关:

[test@ubuntu: ~]$ ip route

ping

ping 命令可以探测网络是否通顺,-c 参数指定探测次数, 不写次数无限测试, 可以用 ctrl + c 终止,格式是:

ping -c 次数 ip(也可以是域名) 

如探测是否可以请求到百度:

[test@ubuntu: ~]$ ping -c 10 www.baidu.com

如果探测不通, 再换一个目标试试, 如果还是不通, 那可能是你的网络配置有问题

netstat

netstat 查看网络状态命令, 是用的比较频繁的一个命令, 在说这个命令之前, 我们先搞清楚几个概念

ip

门牌号, 每个设备都有一个唯一的ip(广域网中唯一,局域网中唯一), 通过ip, 可以定位到具体的一个设备, 比如某一台电脑(服务器)

端口号

在一个电脑(服务器)上, 运行着很多服务和应用程序, 比如 ssh 服务, ftp 服务, http 服务等等, 每个服务都会监听唯一的一个端口号

通过 ip 可以定位具体的电脑(服务器), 通过端口号,就可以指定要访问这台电脑(服务器)上的哪个服务

通过 ip + 端口号, 就能具体访问到一个电脑(服务器)上的一个具体的服务了

端口号的范围是 0---65535, 一些常用的服务有默认的端口号,比如:

  • ssh 服务默认端口是 22
  • http 服务默认端口是 80 (https是443)
  • mysql 服务默认端口是 3306

tcp

经过三次握手之后建立连接, 进行通讯

优点: 安全可靠

缺点: 慢

很像打电话,你在吗?我在啊, 我准备给你发信息,好发吧!

udp

不经过三次握手, 直接通讯

优点: 快

缺点: 不可靠

很暴躁,像发短信,直接扔数据给对方, 不管你收到收不到

搞清楚这几个概念之后, 再来看看 netstat 命令

常用参数有:

  • -t 查看tcp端口
  • -u 查看udp端口
  • -l 以ip和端口号显示,不用域名和服务名显示
  • -a 查询所有连

查询本机开启的所有端口:

[test@ubuntu: ~]$ netstat -tuln

比如查看22端口是否被占用:

[test@ubuntu: ~]$ netstat -tuln | grep 22

查询所有网络连接,包括监听的,包括已经连接的:

[test@ubuntu: ~]$ netstat  -an

假如有几百个人都在连接,我不能一个一个数吧?

这时候可以使用 wc 统计命令, 比如查看所有连接中的:

[test@ubuntu: ~]$ netstat -an | grep ESTABLISHED

配合 wc 统计命令统计行数, 一行就是一个连接:

[test@ubuntu: ~]$ netstat -an | grep ESTABLISHED | wc -l

-l 只统计行数

本机网络管理

Ubuntu 18.04 之前, 管理网络的服务是 network, 网卡的配置文件是 /etc/network/interfaces, 从 Ubuntu 18.04 以后, 包括 Ubuntu 18.04, 启用了新的网络管理 NetworkManager, 提供了netplan命令, 其配置文件是在 /etc/netplan/00-installer-config.yaml

00-installer-config.yaml 每个机器的文件名不一定相同, 具体视情况而定

如果想修改网卡的配置, 可以编辑这个文件; 如果新增加了网卡, 也可以在这个这个文件进行配置

在讲系统的安装的时候, 有详细的说过, 可以回去看看

编辑 /etc/netplan/00-installer-config.yaml:

[test@ubuntu: ~]$ sudo vim /etc/netplan/00-installer-config.yaml

配置文件各参数说明:

  • renderer: 指定网络方案,可为networkNetworkManager
  • enp0s3:网络接口名称, 可以通过 ip addr 或者 ifconfig 查看
  • dhcp4和dhcp6:接受IPv4和IPv6接口的dhcp属性,yes或no, 是否自动分配 ip
  • addresses:接口的静态地址序列。
  • gateway4: 默认网关的IPv4地址。
  • Nameservers: Nameservers的IP地址序列。

注意: 在修改这个配置文件的时候, 一定要注意大小写和格式

各参数配置如图:

除非你有需要, 不然不要按照这个改, 这只是展示完整的配置给大家看, 不然网关配置不对, 不能访问公网ip了

修改完这个配置之后, 使用 natplan 命令让配置生效:

[test@ubuntu: ~]$ sudo sudo netplan apply

--debug 参数可以显示应用配置详情, 有问题可以直接看到:

[test@ubuntu: ~]$ sudo netplan --debug apply

防火墙

安装

Ubuntu20.04 一般都默认安装了 UFW(Uncomplicated Firewall),它是一款轻量化的工具,主要用于对输入输出的流量进行监控。如果没有安装,请用下面的命令安装:

[test@ubuntu: ~]$ sudo apt install ufw

查看状态

正常情况安装以后应该是默认禁止状态的,可以使用命令查看状态:

[test@ubuntu: ~]$ sudo ufw status

显示 Status: inactive, 不活动的, 说明未开启

开启/关闭

开启防火墙, 重启的时候也会自动启动:

[test@ubuntu: ~]$ sudo ufw enable

设置防火墙规则, 使用默认 allow 模式, 也即是只有运行的服务或者端口才能对外开放:

[test@ubuntu: ~]$ sudo ufw default deny

关闭防火墙命令:

[test@ubuntu: ~]$ sudo ufw disable

开放服务/端口

如果你需要开放某些服务,再使用sudo ufw allow 命令开启,举例如下:

sudo ufw allow service | port

例如开启 ssh 服务:

[test@ubuntu: ~]$ sudo ufw allow ssh

开放 3306 端口:

[test@ubuntu: ~]$ sudo ufw allow 3306

允许指定ip访问所有端口:

[test@ubuntu: ~]$ sudo ufw allow from 192.168.10.1

允许指定的IP段通过tcp协议访问特定端口:

[test@ubuntu: ~]$ sudo ufw allow proto tcp from 192.168.10.0/24 to any port 22

禁用服务/端口

把上面的 开放服务/端口 例子中的 allow 换成 deny 即可:

比如禁用 8080 端口:

[test@ubuntu: ~]$ sudo ufw deny 8080

关闭服务/端口

有两种方法可以删除 UFW 规则:

  • 按规则说明(添加规则时候的内容)
  • 按规则编号

按规则说明, 就是我们添加规则时候的输入的内容

比如删除 ssh 的允许规则:

[test@ubuntu: ~]$ sudo ufw delete allow ssh

比如删除 8080 的禁用规则:

[test@ubuntu: ~]$ sudo ufw delete deny 8080

但是有时候, 规则说明特别长的时候, 不是特别容易记住, 这时候可以通过查看, 得到规则编号, 然后删除指定编号的的规则

查看规则编号:

[test@ubuntu: ~]$ sudo ufw status numbered 

删除指定编号的规则:

[test@ubuntu: ~]$ sudo ufw delete 2

最后, 记得关闭防火墙, 因为我们现在处于学习阶段, 使用的虚拟机, 暂时不用开启防火墙

删除所有规则, 并关闭防火墙:

[test@ubuntu: ~]$ sudo ufw reset
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。