网络管理
查看网络接口IP地址
查看所有网络接口的IP地址,可以使用命令 ip addr
例如:
[root@localhost ~]# 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 pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:b2:95:a6 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.199/24 brd 192.168.10.255 scope global noprefixroute dynamic enp0s3
valid_lft 80268sec preferred_lft 80268sec
inet6 fe80::56e2:2975:7aea:744a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
上面显示了 两个网络接口 lo 和 enp0s3。其中 lo 是环回接口,我们关注的应该是 enp0s3 这个接口。
上面命令的结果显示:enp0s3 这个接口 的 IPv4 地址是 192.168.10.199
CentOS 6 以前的版本,通常显示的接口名为 eth0 这样的格式, CentOS 7 显示的是 enp0s3 格式
启用、禁用网络接口
启用和禁用网络接口,要使用root用户执行
● 启用网络接口
使用命令 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 查看网络状态
netstat - 查看各种与网络相关的状态信息,包括:网络的连接、状态、接口的统计信息、路由表、端口的监听情况
常用参数:
-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主机 进行文件的拷贝。
这个工具,安装好后,创建一个到远程Linux主机的连接,随后只要在界面拖动文件即可完成下载,上传文件。
wget下载
Linux中,要从网络下载文件,可以使用 wget。
wget就是一个下载文件的命令行工具。
例如:
wget https://mirrors.aliyun.com/centos/timestamp.txt
防火墙
iptables
在CentOS6 上, iptables 是 缺省的防火墙服务程序。
● 查看防火墙设置
执行命令 iptables –L
可以查看防火墙设置
iptable 命令需要root权限才能运行,例如
大家可以看到上面显示了 三个规则链 Chain INPUT、Chain FORWARD、Chain OUTPUT。
Chain INPUT 链下面的规则是针对目标地址为本机的网络包的,
Chain OUTPUT 链下面的规则是针对源地址为本机的网络包的。
Chain FORWARD 链下面的规则是针对通过本机路由的包的。
每个规则链后面的括号里面有 这个链的缺省规则。
这些规则,指明如果该链下面的规则和当前的网络包都不匹配的话,该进行怎样的处理。 上面的截图中的缺省规则都是 ACCEPT,表明缺省情况下允许包通过
● 开放端口
iptables -I INPUT -p TCP --dport 80 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT
/sbin/service iptables save
其中 -I 代表 insert 的意思。
最后别忘记了保存 对防火墙的设置,通过命令:service iptables save 进行保存。
● 禁用端口
iptables -I INPUT -p TCP --dport 3288 -j DROP
iptables -D INPUT 5
/sbin/service iptables save
第二行表示: 删除INPUT 链里面的第5条规则
FirewallD
在CentOS 7 上, FirewallD 是 缺省的防火墙服务程序。
● 开放端口
如果我们允许 任何 地址的 机器访问 本机的 TCP 协议 3306 端口,应该这样执行命令
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
第一行命令 在 配置文件中,设置打开端口3306
第二行命令将 配置文件的设置 重新加载,使配置立即生效。
可以执行如下命令检查 当前的 防火墙设置
firewall-cmd --list-ports
我们甚至可以 开放 一定范围内的 所以端口,如下
firewall-cmd --permanent --add-port=200-300/tcp
就打开了 200 到 300 所有的 tcp 端口。
● 关闭端口
要关闭 端口,执行下面的命令
firewall-cmd --permanent --remove-port=3306/tcp
firewall-cmd --reload
作业和练习
请使用 root 账号登录 Linux,依次执行下面的操作
-
查看你的Linux系统使用的IP地址
-
运行命令,检查你的Linux主机和网站 github.com 之间是否网络通畅
-
查看本机的22端口是否被占用,如果是,查看占用该端口的进程是什么
-
在Linux主机上下载下面链接对应的文件,并且拷贝到你的Windows主机上
-
根据你Linux主机的版本,使用适当的命令 打开防火墙 3306端口。