网络管理
查看网络接口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
启用、禁用网络接口
启用和禁用网络接口,常用的是 ifup
和 ifdown
,要使用root用户执行
Ubuntu 现在缺省是没有这两个命令的, 可以先运行 apt install ifupdown
安装一下。
● 启用网络接口
使用命令 ifup,比如下面的命令就是启用网络接口 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命令即可。
命令的格式如下
比如,你要 使用 user1 账号 远程登录 192.168.1.12 这台Linux机器,执行下面的命令
一般首次登录某个主机的时候,会出现如下提示:
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,应该这样写
接下来,会提示用户输入用户byhy2的密码,输入正确密码后,进行拷贝操作。
如果,我们要 在主机A上面,将主机B上面的文件/home/byhy2/123.txt 拷贝到主机A的/tmp/下面:
在windows机器上,我们可以使用 WinSCP 工具和远程Linux主机 进行文件的拷贝。
这个工具,安装好后,创建一个到远程Linux主机的连接,随后只要在界面拖动文件即可完成下载,上传文件。
wget下载
Linux中,要从网络下载文件,可以使用 wget。
wget就是一个下载文件的命令行工具。
例如:
防火墙
通常网站服务之类的产品运行在Ubuntu上,我们会开启防火墙。防止恶意的网络访问和攻击。
Ubuntu目前使用命令 ufw
(uncomplicated firewall) 管理防火墙功能。
缺省 ufw 是未被激活的,执行如下命令激活。
注意:这个命令最好是在 虚拟机终端执行。
如果是Putty远程登录,并且当前没有允许SSH访问的ufw规则,执行这个命令可能就会断开连接。
可以执行如下命令检查 当前的 防火墙设置
或者查看更详细的信息
● 开放端口
如果我们允许 外面从网络访问 本机的 SSH TCP 服务端口 22 ,应该这样执行命令
如果你知道端口对应的服务名,也可以使用名字。
比如下面的命令可以允许外面从网络访问 本机的 ssh 服务
比如下面的命令可以允许外面从网络访问 本机的 HTTP 服务端口 80
● 删除规则
要删除一个前面设定的规则,执行下面的命令