网络管理

查看网络接口IP地址


点击这里,看视频讲解,学习下面内容

查看所有网络接口的IP地址,可以使用命令 ip addr

例如:

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:e1:71:e8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.64/24 brd 192.168.50.255 scope global dynamic enp0s3
       valid_lft 86125sec preferred_lft 86125sec
    inet6 fe80::a00:27ff:fee1:71e8/64 scope link
       valid_lft forever preferred_lft forever

上面显示了 两个网络接口 lo 和 enp0s3。其中 lo 是环回接口,我们关注的应该是 enp0s3 这个接口。

上面命令的结果显示:enp0s3 这个接口 的 IPv4 地址是 192.168.50.64

启用、禁用网络接口

点击这里,看视频讲解,学习下面内容

启用和禁用网络接口,常用的是 ifupifdown ,要使用root用户执行

Ubuntu 现在缺省是没有这两个命令的, 可以先运行 apt install ifupdown 安装一下。


● 启用网络接口

使用命令 ifup,比如下面的命令就是启用网络接口 enp0s3

ifup enp0s3

● 禁用网络接口

使用命令 ifdown,比如下面的命令就是禁用网络接口 enp0s3

ifdown enp0s3

ping 检测网络连通性

我们经常需要检查是否可以从本机访问某个远程主机,这时应该使用 ping 命令

例如:

$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=0.158 ms
64 bytes from 192.168.100.1: icmp_seq=2 ttl=64 time=0.228 ms
64 bytes from 192.168.100.1: icmp_seq=3 ttl=64 time=0.281 ms

上面的结果就表示 本机 和 IP 为192.168.100.1 的设备(可能是计算机也可能是路由器)之间的网络是通畅的。

可以按 ctrl+C 终止 测试。


netstat 查看网络状态

点击这里,看视频讲解,学习下面内容

Ubuntu 现在缺省安装的查看网络状态的工具是 Socket Statistics, 命令名为 ss

但是 目前这个工具使用还不是特别广泛,目前查看网络状态大多数人还是会使用著名的 netstat


netstat 这个命令通常用来 查看各种与网络相关的状态信息,包括:网络的连接、状态、接口的统计信息、路由表、端口的监听情况。

但是 Ubuntu 现在缺省没有安装这个netstat, 可以使用命令 sudo apt install net-tools 安装 net-tools 工具包后,即可使用。

常用参数:

-a (all)显示所有选项,默认不显示LISTEN相关

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 不显示端口协议名,显示端口数字

-l 只显示 Listen (监听) 的状态端口

-p 显示建立相关链接的进程PID

-r 显示路由信息,路由表

Netstat 最常用的地方就是查看网络连接情况,比如查看22端口上的tcp网络连接情况

使用命令 netstat -anp|grep 22 |grep tcp

[root@localhost ~]# netstat -anp |grep 22 |grep tcp
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      977/sshd
tcp        0     52 192.168.10.199:22       192.168.10.92:63911     ESTABLISHED 2011/sshd: root@pts
tcp6       0      0 :::22                   :::*                    LISTEN      977/sshd


ssh(secure shell)登录远程机器


点击这里,看视频讲解,学习下面内容

之前我们使用的是Windows下面的终端模拟器PuTTY 远程登录Linux主机。

在Linux下,也可以远程登录其他Linux主机,只需要运行ssh命令即可。

命令的格式如下

ssh  用户名@IP地址或机器域名

比如,你要 使用 user1 账号 远程登录 192.168.1.12 这台Linux机器,执行下面的命令

[byhy@localhost ~]$ ssh user1@192.168.1.12

一般首次登录某个主机的时候,会出现如下提示:

The authenticity of host '192.168.1.12 (192.168.1.12)' can't be established.
RSA key fingerprint is cf:2c:22:d1:e8:4e:f3:16:43:09:9c:c6:fe:fc:9a:22.
Are you sure you want to continue connecting (yes/no)?

这是因为该远程机器没有被认证过(可能会有‘中间人’攻击的安全隐患),让你确认一下。这里如果是局域网里面的机器,一般安全没有什么问题,输入yes并回车即可。

接下来,会提示输入对应用户的密码,你输入正确的密码即可登录。

您需要高效学习,找工作? 点击咨询 报名实战班

点击查看学员就业情况

scp 拷贝文件

点击这里,看视频讲解,学习下面内容

在Linux上,可以直接使用scp命令 和远程Linux主机 进行文件的拷贝。

scp是secure copy的缩写,意为文件安全拷贝,它可以将远程Linux系统上的文件拷贝到本地计算机,也可以将本地计算机上的文件拷贝到远程Linux系统上。

比如:

我们已经登录到主机A上面,要将 /home/byhy1 目录下面的文件abc.txt,拷贝到主机B的/home/byhy2目录下面,主机B的IP地址为:192.168.1.12

我们要拷贝到 B主机, 必须要有B主机的用户账号, 假如B主机的账号是 byhy2,应该这样写

scp /home/byhy1/abc.txt byhy2@192.168.1.12:/home/byhy2

接下来,会提示用户输入用户byhy2的密码,输入正确密码后,进行拷贝操作。


如果,我们要 在主机A上面,将主机B上面的文件/home/byhy2/123.txt 拷贝到主机A的/tmp/下面:

scp byhy2@192.168.1.12:/home/byhy2/123.txt /tmp/

点击这里,看视频讲解,学习下面内容

在windows机器上,我们可以使用 WinSCP 工具和远程Linux主机 进行文件的拷贝。

点击这里下载WinSCP

这个工具,安装好后,创建一个到远程Linux主机的连接,随后只要在界面拖动文件即可完成下载,上传文件。


wget下载

点击这里,看视频讲解,学习下面内容

Linux中,要从网络下载文件,可以使用 wget。

wget就是一个下载文件的命令行工具。

例如:

wget https://mirrors.aliyun.com/centos/timestamp.txt

防火墙

通常网站服务之类的产品运行在Ubuntu上,我们会开启防火墙。防止恶意的网络访问和攻击。

Ubuntu目前使用命令 ufw (uncomplicated firewall) 管理防火墙功能。

缺省 ufw 是未被激活的,执行如下命令激活。

ufw enable

注意:这个命令最好是在 虚拟机终端执行。

如果是Putty远程登录,并且当前没有允许SSH访问的ufw规则,执行这个命令可能就会断开连接。


可以执行如下命令检查 当前的 防火墙设置

ufw status

或者查看更详细的信息

ufw status verbose

● 开放端口

如果我们允许 外面从网络访问 本机的 SSH TCP 服务端口 22 ,应该这样执行命令

ufw allow 22/tcp

如果你知道端口对应的服务名,也可以使用名字。

比如下面的命令可以允许外面从网络访问 本机的 ssh 服务

sudo ufw allow ssh

比如下面的命令可以允许外面从网络访问 本机的 HTTP 服务端口 80

ufw allow http

● 删除规则

要删除一个前面设定的规则,执行下面的命令

ufw delete allow http

作业和练习

请使用 root 账号登录 Linux,依次执行下面的操作

  • 查看你的Linux系统使用的IP地址

  • 运行命令,检查你的Linux主机和网站 github.com 之间是否网络通畅

  • 查看本机的22端口是否被占用,如果是,查看占用该端口的进程是什么

  • 在Linux主机上下载下面链接对应的文件,并且拷贝到你的Windows主机上

    https://nginx.org/download/nginx-1.16.0.zip

  • 根据你Linux主机的版本,使用适当的命令 打开防火墙 3306端口。

上一页