设置网络
开启网络的具体配置步骤为:
- 打开终端,切换到root账户(普通账户通常没有修改网络配置文件的权限,所以要切换到root账户)
- 切换到网卡配置文件的目录
cd /etc/sysconfig/network-scripts/
- 找到网卡的配置文件(centos7修改了网卡的命名规则,不再是我们熟悉的eth0了,而是ifcfg-eno+一串数字)
- 用 vi 打开这个文件
- 最后一行的onboot选项,把默认的no改成yes
- 用命令 :wq! 保存退出
$ cat ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=12509981-530b-403b-bbc0-493447de2d1f
DEVICE=ens33
ONBOOT=yes
查看端口映射
netstat命令 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
netstat命令各个参数说明如下:
- -a : 显示所有连线中的 Socket
- -t : 指明显示TCP端口
- -u : 指明显示UDP端口
- -x : 指明显示Unix端口
- -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
- -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
- -n : 不显示主机,端口和用户名(host, port or user), 不进行DNS轮询(可以加速操作)
查看所有监听 TCP 端口
$ sudo netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 13696/java
tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 20073/kube-proxy
tcp 0 0 0.0.0.0:5002 0.0.0.0:* LISTEN 14246/java
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 4048/redis-server
tcp 0 0 0.0.0.0:8812 0.0.0.0:* LISTEN 13983/java
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4095/nginx: master
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 13111/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6071/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 13983/java
tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 12865/java
tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN 11491/java
tcp 0 0 0.0.0.0:8003 0.0.0.0:* LISTEN 11878/java
tcp6 0 0 :::3306 :::* LISTEN 5794/mysqld
tcp6 0 0 :::111 :::* LISTEN 3298/rpcbind
netstat -ntlp | grep 80 # 使用端口号过滤
netstat -ntlp | grep java # 使用程序名过滤
netstat -ntlp | grep 6071 # 使用PID过滤
- Local Address: 访问端口的方式,0.0.0.0 是对外开放端口,说明80端口外面可以访问;127.0.0.1 说明只能对本机访问,外面访问不了此端口
- Foregin Address:对外开放,一般都为0.0.0.0:*
- Program name:此端口是那个程序在用,程序挂载此端口, 注意非root用户还是得加 sudo, 否则看不到
PID/Program name
列
:::info
0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口
127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性
:::
:::
这三个: 的前两个::
,是0:0:0:0:0:0:0:0
的缩写,相当于IPv6的0.0.0.0
,就是本机的所有IPv6地址,第三个:是IP和端口的分隔符
统计信息
netstat -s #显示所有端口的统计信息
netstat -st #显示TCP端口的统计信息
netstat -su #显示UDP端口的统计信息
查看当前系统下运行的所有端口
使用命令来查看当前系统下所运行的所有端口情况: sudo netstat -antup
$ sudo netstat -antup
[sudo] password for admin
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:10251 0.0.0.0:* LISTEN 10812/
tcp 0 0 172.18.50.199:2379 0.0.0.0:* LISTEN 10717/etcd
tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 10717/etcd
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 12661/redis-server
tcp 0 0 172.18.50.199:2380 0.0.0.0:* LISTEN 10717/etcd
tcp 0 0 0.0.0.0:8812 0.0.0.0:* LISTEN 19954/java
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 17827/epmd
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 19846/java
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 32542/sshd
...
:::warning 请在sudo的权限下查看,不然有部分的pid是查看不到的,我曾经就是因为没用使用root权限而绕了很多。 :::
测试端口通畅
使用 telnet
测试端口是否通畅
telnet 127.0.0.1 80
如果测试通畅, 通过 [[Ctrl]] + [[]]] 退出测试, 再输入 q
退出 telnet 终端。