1. 查看 Linux 服务器的网络连接
1)查看主机名:
liuqian@ubuntu:~$ hostname
ubuntu
2)查看 ip 地址:
用 ifconfig 即可,这里介绍命令组合用法。
liuqian@ubuntu:~$ ifconfig eth0 | grep 'inet ' | awk -F[:' ']+ '{print $4}' 202.93.236.146
解释:eth0 ---- ifconfig 看到的网卡名称
grep 语句 ---- 找到写有 ip 地址的那行,怎么搜索都成
awk 语句 ---- 以空格和‘:’为分隔符分隔 grep 出来的行,然后打印出第4列。(索引从1开始)
3)显示网络连接、路由表和网络接口的信息
所用命令为:netstat
【所用参数说明】
-a 显示所有套接字的状态。在一般情况下不显示与服务器进程相关联的套接字。
-n 打印实际地址,而不是对地址的解释或显示主机、网络名之类的符号。
-r 带你路由选择表。
liuqian@ubuntu:~$ netstat -an | grep -v unix Active Interne connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 172.16.11.237:3306 172.16.11.249:56692 ESTABLISHED tcp 0 0 172.16.11.237:58264 172.16.8.69:22 ESTABLISHED tcp 0 0 127.0.0.1:49220 127.0.0.1:43922 ESTABLISHED tcp 1 0 172.16.11.237:41540 162.213.33.48:443 CLOSE_WAIT Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node path
【netstat -an 参数中 state 的含义】
- LISTEN 侦听来自远方的 TCP 端的连接请求。即服务器在等待进入呼叫。
- SYN_SENT 在发送连接请求后等待匹配的连接请求。即应用已经开始,打开一个连接。
- SYN_RECEIVED 在收到和发送一个连接请求后等待对方对连接请求的确认。即一个连接请求已经到达,等待确认。
- ESTABLISHED 代表一个打开的连接,我们常用此作为并发连接数。即数据传输状态。
- FIN_WAIT1 等待远程 TCP 连接中断请求,或先前的连接中断请求的确认。即应用说它已经完成。
- FIN_WAIT2 从远程 TCP 等待连接中断请求。即另一边已同意释放。
- CLOSE_WAIT 等待从本地用户发来的连接中断请求。
- CLOSING 等待远程 TCP 对连接中断的确认。即两边同时尝试关闭。
- LAST_ACK 等待原来发向远程 TCP 的连接中断请求的确认。即等待所有分组死掉。
- TIME_WAIT 等待足够的时间以确保远程 TCP 接收到连接中断请求的确认。即另一边已初始化一个释放。
- CLOSED 没有任何连接状态。即无连接是活动的或正在进行。
- 查看服务器网络连接状态并汇总信息:
liuqian@ubuntu:~$ netstat -an | awk '/^tcp/ { ++S[$NF]} END {for (a in S) print a, S[a]}' LISTEN 10 CLOSE_WAIT 3 TIME_WAIT 1 ESTABLISHED 6
- 查看系统的路由表:
liuqian@ubuntu:~$ netstat -rn 内核 IP 路由表 Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 172.16.101.1 0.0.0.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.16.101.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
所显示的内容中有‘UG’的这行即系统的默认网关。