常用网络管理命令
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
服务默认端口是 22http
服务默认端口是 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
: 指定网络方案,可为network
,NetworkManager
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
评论(0)