设置网络

开启网络的具体配置步骤为:

  1. 打开终端,切换到root账户(普通账户通常没有修改网络配置文件的权限,所以要切换到root账户)
  2. 切换到网卡配置文件的目录 cd /etc/sysconfig/network-scripts/
  3. 找到网卡的配置文件(centos7修改了网卡的命名规则,不再是我们熟悉的eth0了,而是ifcfg-eno+一串数字)
  4. 用 vi 打开这个文件
  5. 最后一行的onboot选项,把默认的no改成yes
  6. 用命令 :wq! 保存退出
  1. $ cat ifcfg-ens33
  2. TYPE=Ethernet
  3. BOOTPROTO=dhcp
  4. DEFROUTE=yes
  5. PEERDNS=yes
  6. PEERROUTES=yes
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_PEERDNS=yes
  12. IPV6_PEERROUTES=yes
  13. IPV6_FAILURE_FATAL=no
  14. IPV6_ADDR_GEN_MODE=stable-privacy
  15. NAME=ens33
  16. UUID=12509981-530b-403b-bbc0-493447de2d1f
  17. DEVICE=ens33
  18. ONBOOT=yes

查看端口映射

netstat命令 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

netstat命令各个参数说明如下:

  • -a : 显示所有连线中的 Socket
  • -t : 指明显示TCP端口
  • -u : 指明显示UDP端口
  • -x : 指明显示Unix端口
  • -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
  • -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
  • -n : 不显示主机,端口和用户名(host, port or user), 不进行DNS轮询(可以加速操作)

查看所有监听 TCP 端口

  1. $ sudo netstat -ntlp
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  4. tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 13696/java
  5. tcp 0 0 127.0.0.1:10249 0.0.0.0:* LISTEN 20073/kube-proxy
  6. tcp 0 0 0.0.0.0:5002 0.0.0.0:* LISTEN 14246/java
  7. tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 4048/redis-server
  8. tcp 0 0 0.0.0.0:8812 0.0.0.0:* LISTEN 13983/java
  9. tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
  10. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4095/nginx: master
  11. tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 13111/java
  12. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6071/sshd
  13. tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 13983/java
  14. tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 12865/java
  15. tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN 11491/java
  16. tcp 0 0 0.0.0.0:8003 0.0.0.0:* LISTEN 11878/java
  17. tcp6 0 0 :::3306 :::* LISTEN 5794/mysqld
  18. tcp6 0 0 :::111 :::* LISTEN 3298/rpcbind
  19. netstat -ntlp | grep 80 # 使用端口号过滤
  20. netstat -ntlp | grep java # 使用程序名过滤
  21. 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和端口的分隔符

统计信息

  1. netstat -s #显示所有端口的统计信息
  2. netstat -st #显示TCP端口的统计信息
  3. netstat -su #显示UDP端口的统计信息

查看当前系统下运行的所有端口

使用命令来查看当前系统下所运行的所有端口情况: sudo netstat -antup

  1. $ sudo netstat -antup
  2. [sudo] password for admin
  3. Active Internet connections (servers and established)
  4. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  5. tcp 0 0 127.0.0.1:10251 0.0.0.0:* LISTEN 10812/
  6. tcp 0 0 172.18.50.199:2379 0.0.0.0:* LISTEN 10717/etcd
  7. tcp 0 0 127.0.0.1:2379 0.0.0.0:* LISTEN 10717/etcd
  8. tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 12661/redis-server
  9. tcp 0 0 172.18.50.199:2380 0.0.0.0:* LISTEN 10717/etcd
  10. tcp 0 0 0.0.0.0:8812 0.0.0.0:* LISTEN 19954/java
  11. tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 17827/epmd
  12. tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 19846/java
  13. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 32542/sshd
  14. ...

:::warning 请在sudo的权限下查看,不然有部分的pid是查看不到的,我曾经就是因为没用使用root权限而绕了很多。 :::

测试端口通畅

使用 telnet 测试端口是否通畅

  1. telnet 127.0.0.1 80

如果测试通畅, 通过 [[Ctrl]] + [[]]] 退出测试, 再输入 q 退出 telnet 终端。

参考资料